defmodule Phosphoricons do
  @moduledoc """
  Provides precompiled icon compiles from [heroicons.com v1.4.0](heroicons.com).

  Heroicons are designed by [Steve Schoger](https://twitter.com/steveschoger)

  ## Usage

  Hero icons come in three styles – outline (`24x24`), solid (`24x24`), and mini (`20x20`).

  By default, the icon components will use the outline style, but the `solid` or
  `mini` attributes may be passed to select styling, for example:

  ```heex
  <Heroicons.cake />
  <Heroicons.cake solid />
  <Heroicons.cake mini />
  ```

  You can also pass arbitrary HTML attributes to the components:

   ```heex
  <Heroicons.cake class="w-2 h-2" />
  <Heroicons.cake solid class="w-2 h-2" />
  ```

  ## Heroicons License Attribution

  MIT License

  Copyright (c) 2020 Refactoring UI Inc.

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
  """
  use Phoenix.Component

  defp svg(assigns) do
    case assigns do
      %{bold: false, duotone: false, fill: false, light: false, thin: false} ->
        ~H"<.svg_regular {@rest}><%= {:safe, @paths[:regular]} %></.svg_regular>"

      %{bold: true, duotone: false, fill: false, light: false, thin: false} ->
        ~H"<.svg_bold {@rest}><%= {:safe, @paths[:bold]} %></.svg_bold>"

      %{bold: false, duotone: true, fill: false, light: false, thin: false} ->
        ~H"<.svg_duotone {@rest}><%= {:safe, @paths[:duotone]} %></.svg_duotone>"

      %{bold: false, duotone: false, fill: true, light: false, thin: false} ->
        ~H"<.svg_fill {@rest}><%= {:safe, @paths[:fill]} %></.svg_fill>"

      %{bold: false, duotone: false, fill: false, light: true, thin: false} ->
        ~H"<.svg_light {@rest}><%= {:safe, @paths[:light]} %></.svg_light>"

      %{bold: false, duotone: false, fill: false, light: false, thin: true} ->
        ~H"<.svg_thin {@rest}><%= {:safe, @paths[:thin]} %></.svg_thin>"

      %{} ->
        raise ArgumentError,
              "expected one of bold, duotone, fill, light or thin, but got multiple."
    end
  end

  attr :rest, :global,
    default: %{
      "aria-hidden": "true",
      viewBox: "0 0 256 256",
      fill: "none",
      stroke: "currentColor"
    }

  slot(:inner_block, required: true)

  defp svg_regular(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  attr :rest, :global,
    default: %{
      "aria-hidden": "true",
      viewBox: "0 0 256 256",
      fill: "none",
      stroke: "currentColor"
    }

  slot(:inner_block, required: true)

  defp svg_bold(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  attr :rest, :global,
    default: %{
      "aria-hidden": "true",
      viewBox: "0 0 256 256",
      fill: "currentColor",
      stroke: "currentColor"
    }

  slot(:inner_block, required: true)

  defp svg_duotone(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  attr :rest, :global,
    default: %{"aria-hidden": "true", viewBox: "0 0 256 256", fill: "currentColor"}

  slot(:inner_block, required: true)

  defp svg_fill(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  attr :rest, :global,
    default: %{
      "aria-hidden": "true",
      viewBox: "0 0 256 256",
      fill: "none",
      stroke: "currentColor"
    }

  slot(:inner_block, required: true)

  defp svg_light(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  attr :rest, :global,
    default: %{
      "aria-hidden": "true",
      viewBox: "0 0 256 256",
      fill: "none",
      stroke: "currentColor"
    }

  slot(:inner_block, required: true)

  defp svg_thin(assigns) do
    ~H"""
    <svg xmlns="http://www.w3.org/2000/svg" {@rest}>
      <%= render_slot(@inner_block) %>
    </svg>
    """
  end

  @doc """
  Renders the `t_shirt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.t_shirt />
  <Heroicons.t_shirt class="w-4 h-4" />
  <Heroicons.t_shirt solid />
  <Heroicons.t_shirt mini />
  <Heroicons.t_shirt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def t_shirt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120h27.1a7.9,7.9,0,0,0,7.1-4.4l18.4-36.8a8.1,8.1,0,0,0-3.2-10.6L192,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,120H36.9a7.9,7.9,0,0,1-7.1-4.4L11.4,78.8a8.1,8.1,0,0,1,3.2-10.6L64,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,40a32,32,0,0,1-64,0H64V208a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120h26.7a8.1,8.1,0,0,0,7.4-4.9l15.3-36.8a8.1,8.1,0,0,0-3.2-9.9L192,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,120H37.3a8.1,8.1,0,0,1-7.4-4.9L14.6,78.3a8.1,8.1,0,0,1,3.2-9.9L64,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,40a32,32,0,0,1-64,0H64V208a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120h27.1a7.9,7.9,0,0,0,7.1-4.4l18.4-36.8a8.1,8.1,0,0,0-3.2-10.6L192,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,120H36.9a7.9,7.9,0,0,1-7.1-4.4L11.4,78.8a8.1,8.1,0,0,1,3.2-10.6L64,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,120h27.1a7.9,7.9,0,0,0,7.1-4.4l18.4-36.8a8.1,8.1,0,0,0-3.2-10.6L192,40Z" opacity="0.2"/><path d="M64,120H36.9a7.9,7.9,0,0,1-7.1-4.4L11.4,78.8a8.1,8.1,0,0,1,3.2-10.6L64,40Z" opacity="0.2"/><path d="M160,40a32,32,0,0,1-64,0H64V208a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M245.4,61.3,196,33.1h0a8,8,0,0,0-4-1.1H160a8,8,0,0,0-8,8,24,24,0,0,1-48,0,8,8,0,0,0-8-8H64a8,8,0,0,0-4,1.1h0L10.6,61.3a15.9,15.9,0,0,0-6.4,21l18.4,36.9A16,16,0,0,0,36.9,128H56v80a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V128h19.1a16,16,0,0,0,14.3-8.8l18.4-36.9A15.9,15.9,0,0,0,245.4,61.3ZM36.9,112,18.5,75.2,56,53.8V112Zm182.2,0H200V53.8l37.5,21.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120h27.1a7.9,7.9,0,0,0,7.1-4.4l18.4-36.8a8.1,8.1,0,0,0-3.2-10.6L192,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,120H36.9a7.9,7.9,0,0,1-7.1-4.4L11.4,78.8a8.1,8.1,0,0,1,3.2-10.6L64,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,40a32,32,0,0,1-64,0H64V208a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120h27.1a7.9,7.9,0,0,0,7.1-4.4l18.4-36.8a8.1,8.1,0,0,0-3.2-10.6L192,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,120H36.9a7.9,7.9,0,0,1-7.1-4.4L11.4,78.8a8.1,8.1,0,0,1,3.2-10.6L64,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,40a32,32,0,0,1-64,0H64V208a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `barcode` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.barcode />
  <Heroicons.barcode class="w-4 h-4" />
  <Heroicons.barcode solid />
  <Heroicons.barcode mini />
  <Heroicons.barcode outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def barcode(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="184 48 224 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 208 32 208 32 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 168 224 208 184 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 88 32 48 72 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="88" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="88" x2="144" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="112" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="180 52 220 52 220 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="76 204 36 204 36 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="220 164 220 204 180 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="36 92 36 52 76 52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="92" x2="88" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="92" x2="168" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="92" x2="128" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="184 48 224 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 208 32 208 32 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 168 224 208 184 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 88 32 48 72 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="88" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="88" x2="144" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="112" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,40H184a8,8,0,0,0,0,16h32V88a8,8,0,0,0,16,0V48A8,8,0,0,0,224,40Z"/><path d="M72,200H40V168a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H72a8,8,0,0,0,0-16Z"/><path d="M224,160a8,8,0,0,0-8,8v32H184a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,224,160Z"/><path d="M32,96a8,8,0,0,0,8-8V56H72a8,8,0,0,0,0-16H32a8,8,0,0,0-8,8V88A8,8,0,0,0,32,96Z"/><path d="M80,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,80,80Z"/><path d="M184,168V88a8,8,0,0,0-16,0v80a8,8,0,0,0,16,0Z"/><path d="M144,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,144,80Z"/><path d="M112,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,112,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="184 48 224 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="72 208 32 208 32 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 168 224 208 184 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="32 88 32 48 72 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="88" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="88" x2="144" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="88" x2="112" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="184 48 224 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="72 208 32 208 32 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 168 224 208 184 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="32 88 32 48 72 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="88" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="88" x2="144" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="88" x2="112" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bezier_curve` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bezier_curve />
  <Heroicons.bezier_curve class="w-4 h-4" />
  <Heroicons.bezier_curve solid />
  <Heroicons.bezier_curve mini />
  <Heroicons.bezier_curve outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bezier_curve(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="80" x2="104" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="80" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="40" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M151.8,83.3A88.1,88.1,0,0,1,214.6,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.4,152a88.1,88.1,0,0,1,62.8-68.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="80" x2="104" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="80" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="40" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="216" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M151.8,83.3A88.1,88.1,0,0,1,214.6,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M41.4,152a88.1,88.1,0,0,1,62.8-68.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="80" r="24" opacity="0.2"/><circle cx="40" cy="176" r="24" opacity="0.2"/><circle cx="216" cy="176" r="24" opacity="0.2"/><line x1="16" y1="80" x2="104" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="80" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="40" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M151.8,83.3A88.1,88.1,0,0,1,214.6,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.4,152a88.1,88.1,0,0,1,62.8-68.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221,144.4A95.9,95.9,0,0,0,181,88h59a8,8,0,0,0,0-16H159a32,32,0,0,0-62,0H16a8,8,0,0,0,0,16H75a95.9,95.9,0,0,0-40,56.4A32,32,0,1,0,71,184H185a32,32,0,1,0,36-39.6ZM40,192a16,16,0,1,1,16-16A16,16,0,0,1,40,192ZM128,64a16,16,0,1,1-16,16A16,16,0,0,1,128,64Zm88,128a16,16,0,1,1,16-16A16,16,0,0,1,216,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="80" x2="104" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="80" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="40" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="216" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M151.8,83.3A88.1,88.1,0,0,1,214.6,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M41.4,152a88.1,88.1,0,0,1,62.8-68.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="80" x2="104" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="80" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="40" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="216" cy="176" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M151.8,83.3A88.1,88.1,0,0,1,214.6,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M41.4,152a88.1,88.1,0,0,1,62.8-68.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `textbox` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.textbox />
  <Heroicons.textbox class="w-4 h-4" />
  <Heroicons.textbox solid />
  <Heroicons.textbox mini />
  <Heroicons.textbox outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def textbox(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="48" x2="112" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144,72h88a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,184H24a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="50" y1="112" x2="78" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="112" x2="64" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="48" x2="112" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,72h80a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112,184H24a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="50" y1="112" x2="78" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="112" x2="64" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="72" width="224" height="112" rx="8" opacity="0.2"/><line x1="112" y1="48" x2="112" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144,72h88a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,184H24a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="50" y1="112" x2="78" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="112" x2="64" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,80v96a16,16,0,0,1-16,16H144a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h88A16,16,0,0,1,248,80ZM120,48V208a8,8,0,0,1-16,0V192H24A16,16,0,0,1,8,176V80A16,16,0,0,1,24,64h80V48a8,8,0,0,1,16,0ZM86,112a8,8,0,0,0-8-8H50a8,8,0,0,0,0,16h6v28a8,8,0,0,0,16,0V120h6A8,8,0,0,0,86,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="48" x2="112" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M144,72h88a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,184H24a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="50" y1="112" x2="78" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="112" x2="64" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="48" x2="112" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M144,72h88a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,184H24a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="50" y1="112" x2="78" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="112" x2="64" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_down_left />
  <Heroicons.arrow_down_left class="w-4 h-4" />
  <Heroicons.arrow_down_left solid />
  <Heroicons.arrow_down_left mini />
  <Heroicons.arrow_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="64" x2="64" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 192 64 192 64 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="64" x2="64" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 192 64 192 64 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="64" x2="64" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 192 64 192 64 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M197.7,69.7,127.3,140l46.4,46.3a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,168,200H64a8,8,0,0,1-8-8V88a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7L116,128.7l70.3-70.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="64" x2="64" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 192 64 192 64 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="64" x2="64" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 192 64 192 64 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bank` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bank />
  <Heroicons.bank class="w-4 h-4" />
  <Heroicons.bank solid />
  <Heroicons.bank mini />
  <Heroicons.bank outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bank(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 96 232 96 128 32 24 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="56" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="96" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 96 232 96 128 32 24 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="96" x2="56" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="96" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="96" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="96" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 96 232 96 128 32 24 96" opacity="0.2"/><polygon points="24 96 232 96 128 32 24 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="56" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="96" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,208a8,8,0,0,1-8,8H16a8,8,0,0,1,0-16H240A8,8,0,0,1,248,208ZM16.3,98.2a8,8,0,0,1,3.5-9l104-64a7.9,7.9,0,0,1,8.4,0l104,64A8,8,0,0,1,232,104H208v64h16a8,8,0,0,1,0,16H32a8,8,0,0,1,0-16H48V104H24A8,8,0,0,1,16.3,98.2ZM144,160a8,8,0,0,0,16,0V112a8,8,0,0,0-16,0Zm-48,0a8,8,0,0,0,16,0V112a8,8,0,0,0-16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 96 232 96 128 32 24 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="96" x2="56" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="96" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="96" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="96" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 96 232 96 128 32 24 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="96" x2="56" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="96" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="96" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="96" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cpu` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cpu />
  <Heroicons.cpu class="w-4 h-4" />
  <Heroicons.cpu solid />
  <Heroicons.cpu mini />
  <Heroicons.cpu outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cpu(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="100" y="100" width="56" height="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="48" width="160" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="104" x2="232" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="152" x2="232" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="104" x2="48" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="152" x2="48" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="208" x2="152" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="208" x2="104" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="24" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="24" x2="104" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="100" y="100" width="56" height="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="48" y="48" width="160" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="104" x2="232" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="152" x2="232" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="104" x2="48" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="152" x2="48" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="208" x2="152" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="208" x2="104" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="24" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="24" x2="104" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,48H56a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V56A8,8,0,0,0,200,48ZM156,156H100V100h56Z" opacity="0.2"/><rect x="100" y="100" width="56" height="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="48" width="160" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="104" x2="232" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="152" x2="232" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="104" x2="48" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="152" x2="48" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="208" x2="152" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="208" x2="104" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="24" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="24" x2="104" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,144H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-68,12a8,8,0,0,1-8,8H100a8,8,0,0,1-8-8V100a8,8,0,0,1,8-8h56a8,8,0,0,1,8,8Zm-56-48h40v40H108Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="100" y="100" width="56" height="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="48" y="48" width="160" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="104" x2="232" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="152" x2="232" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="104" x2="48" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="152" x2="48" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="208" x2="152" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="208" x2="104" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="24" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="24" x2="104" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="100" y="100" width="56" height="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="48" y="48" width="160" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="104" x2="232" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="152" x2="232" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="104" x2="48" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="152" x2="48" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="208" x2="152" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="208" x2="104" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="24" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="24" x2="104" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `umbrella` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.umbrella />
  <Heroicons.umbrella class="w-4 h-4" />
  <Heroicons.umbrella solid />
  <Heroicons.umbrella mini />
  <Heroicons.umbrella outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def umbrella(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,136c0-72,40-104,40-104s40,32,40,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,136c0-72,40-104,40-104s40,32,40,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a103.9,103.9,0,0,1,103.6,95.3,7.9,7.9,0,0,1-7.9,8.7H168c0-72-40-104-40-104" opacity="0.2"/><path d="M128,32A103.9,103.9,0,0,0,24.4,127.3a7.9,7.9,0,0,0,7.9,8.7H88c0-72,40-104,40-104" opacity="0.2"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,136c0-72,40-104,40-104s40,32,40,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.6,126.6A112.1,112.1,0,0,0,128,24h0A112.1,112.1,0,0,0,16.4,126.6a15.7,15.7,0,0,0,4.2,12.2A15.9,15.9,0,0,0,32.3,144H120v56a32,32,0,0,0,64,0,8,8,0,0,0-16,0,16,16,0,0,1-32,0V144h87.7a15.9,15.9,0,0,0,11.7-5.2A15.7,15.7,0,0,0,239.6,126.6ZM32.3,128a95.9,95.9,0,0,1,75.9-85.9c-11.7,16-26.4,44-28,85.9Zm143.5,0c-1.6-41.9-16.3-69.9-28-85.9A95.9,95.9,0,0,1,223.7,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,136c0-72,40-104,40-104s40,32,40,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,136c0-72,40-104,40-104s40,32,40,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_double_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_double_up />
  <Heroicons.caret_double_up class="w-4 h-4" />
  <Heroicons.caret_double_up solid />
  <Heroicons.caret_double_up mini />
  <Heroicons.caret_double_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_double_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 208 128 128 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 128 128 48 208 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 208 128 128 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 128 128 48 208 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="48 208 128 128 208 208 48 208" opacity="0.2"/><polygon points="48 208 128 128 208 208 48 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 128 128 48 208 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M147.3,136H208a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8l-80-80a8.1,8.1,0,0,0-11.4,0l-80,80a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,48,136h60.7L42.3,202.3a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,48,216H208a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 208 128 128 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 128 128 48 208 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 208 128 128 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 128 128 48 208 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `music_note` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.music_note />
  <Heroicons.music_note class="w-4 h-4" />
  <Heroicons.music_note solid />
  <Heroicons.music_note mini />
  <Heroicons.music_note outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def music_note(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 184 128 40 208 64 208 112 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 184 128 40 208 64 208 112 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" opacity="0.2"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 184 128 40 208 64 208 112 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,56.3l-80-24a8.2,8.2,0,0,0-7.1,1.3A8.1,8.1,0,0,0,120,40V148.3A47.4,47.4,0,0,0,88,136a48,48,0,1,0,48,48V98.8l69.7,20.9a8.2,8.2,0,0,0,7.1-1.3A8.1,8.1,0,0,0,216,112V64A8.1,8.1,0,0,0,210.3,56.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 184 128 40 208 64 208 112 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 184 128 40 208 64 208 112 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_right_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_right_up />
  <Heroicons.arrow_elbow_right_up class="w-4 h-4" />
  <Heroicons.arrow_elbow_right_up solid />
  <Heroicons.arrow_elbow_right_up mini />
  <Heroicons.arrow_elbow_right_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_right_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 176 48 224 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 192 176 192 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 176 48 224 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="32 192 176 192 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 176 48 224 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 192 176 192 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.4,99.1A8,8,0,0,1,224,104H184v88a8,8,0,0,1-8,8H32a8,8,0,0,1,0-16H168V104H128a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48A8.4,8.4,0,0,1,231.4,99.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 176 48 224 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="32 192 176 192 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 176 48 224 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="32 192 176 192 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `face_mask` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.face_mask />
  <Heroicons.face_mask class="w-4 h-4" />
  <Heroicons.face_mask solid />
  <Heroicons.face_mask mini />
  <Heroicons.face_mask outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def face_mask(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136c0,51.5-74.4,69.2-86.4,71.7a8.6,8.6,0,0,1-3.2,0C114.4,205.2,40,187.5,40,136V77.6a7.9,7.9,0,0,1,5.3-7.5l80-29.1a8.3,8.3,0,0,1,5.4,0l80,29.1a7.9,7.9,0,0,1,5.3,7.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="144" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M213.4,152H224a23.9,23.9,0,0,0,24-24V104a23.9,23.9,0,0,0-24-24h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M42.6,152H32A23.9,23.9,0,0,1,8,128V104A23.9,23.9,0,0,1,32,80h8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,136c0,51-66.2,68.8-78.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,204.8,48,187,48,136V77.4A7.9,7.9,0,0,1,53,70l72-28.8a7.8,7.8,0,0,1,6,0L203,70a7.9,7.9,0,0,1,5,7.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="144" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M205.4,152H220a23.9,23.9,0,0,0,24-24V104a23.9,23.9,0,0,0-24-24H208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M50.6,152H36a23.9,23.9,0,0,1-24-24V104A23.9,23.9,0,0,1,36,80H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136c0,51.5-74.4,69.2-86.4,71.7a8.6,8.6,0,0,1-3.2,0C114.4,205.2,40,187.5,40,136V77.6a7.9,7.9,0,0,1,5.3-7.5l80-29.1a8.3,8.3,0,0,1,5.4,0l80,29.1a7.9,7.9,0,0,1,5.3,7.5Z" opacity="0.2"/><path d="M216,136c0,51.5-74.4,69.2-86.4,71.7a8.6,8.6,0,0,1-3.2,0C114.4,205.2,40,187.5,40,136V77.6a7.9,7.9,0,0,1,5.3-7.5l80-29.1a8.3,8.3,0,0,1,5.4,0l80,29.1a7.9,7.9,0,0,1,5.3,7.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="144" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M213.4,152H224a23.9,23.9,0,0,0,24-24V104a23.9,23.9,0,0,0-24-24h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M42.6,152H32A23.9,23.9,0,0,1,8,128V104A23.9,23.9,0,0,1,32,80h8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,72h-1a16,16,0,0,0-9.5-9.4l-80-29.1a16,16,0,0,0-11,0l-80,29.1A16,16,0,0,0,33,72H32A32.1,32.1,0,0,0,0,104v24a32.1,32.1,0,0,0,32,32h5.2c6.6,14.4,19.3,27,37.6,37.2,21.1,11.7,43.6,17,49.9,18.3l3.3.3,3.3-.3c6.3-1.3,28.8-6.6,49.9-18.3,18.3-10.2,31-22.8,37.6-37.2H224a32.1,32.1,0,0,0,32-32V104A32.1,32.1,0,0,0,224,72ZM32,144a16,16,0,0,1-16-16V104A16,16,0,0,1,32,88v48a52.9,52.9,0,0,0,.6,8Zm136,8H88a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Zm0-32H88a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Zm72,8a16,16,0,0,1-16,16h-.6a52.9,52.9,0,0,0,.6-8V88a16,16,0,0,1,16,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136c0,51.5-74.4,69.2-86.4,71.7a8.6,8.6,0,0,1-3.2,0C114.4,205.2,40,187.5,40,136V77.6a7.9,7.9,0,0,1,5.3-7.5l80-29.1a8.3,8.3,0,0,1,5.4,0l80,29.1a7.9,7.9,0,0,1,5.3,7.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="144" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M213.4,152H224a23.9,23.9,0,0,0,24-24V104a23.9,23.9,0,0,0-24-24h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M42.6,152H32A23.9,23.9,0,0,1,8,128V104A23.9,23.9,0,0,1,32,80h8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136c0,51.5-74.4,69.2-86.4,71.7a8.6,8.6,0,0,1-3.2,0C114.4,205.2,40,187.5,40,136V77.6a7.9,7.9,0,0,1,5.3-7.5l80-29.1a8.3,8.3,0,0,1,5.4,0l80,29.1a7.9,7.9,0,0,1,5.3,7.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="144" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M213.4,152H224a23.9,23.9,0,0,0,24-24V104a23.9,23.9,0,0,0-24-24h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M42.6,152H32A23.9,23.9,0,0,1,8,128V104A23.9,23.9,0,0,1,32,80h8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.x />
  <Heroicons.x class="w-4 h-4" />
  <Heroicons.x solid />
  <Heroicons.x mini />
  <Heroicons.x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="56" y2="56" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="200" x2="56" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="56" y2="56" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,128l66.4-66.3a8.1,8.1,0,0,0-11.4-11.4L128,116.7,61.7,50.3A8.1,8.1,0,0,0,50.3,61.7L116.7,128,50.3,194.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L128,139.3l66.3,66.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="200" x2="56" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="200" x2="56" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_plus />
  <Heroicons.folder_plus class="w-4 h-4" />
  <Heroicons.folder_plus solid />
  <Heroicons.folder_plus mini />
  <Heroicons.folder_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,80V52a8,8,0,0,1,8-8H92.4a8,8,0,0,1,6,2.7L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M98.3,50.3,128,80H32V56a8,8,0,0,1,8-8H92.7A7.9,7.9,0,0,1,98.3,50.3Z" opacity="0.2"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H131.3L104,44.7A16.1,16.1,0,0,0,92.7,40H40A16,16,0,0,0,24,56V200.6A15.4,15.4,0,0,0,39.4,216H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72ZM40,56H92.7l16,16H40Zm112,96H136v16a8,8,0,0,1-16,0V152H104a8,8,0,0,1,0-16h16V120a8,8,0,0,1,16,0v16h16a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_zero` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_zero />
  <Heroicons.number_circle_zero class="w-4 h-4" />
  <Heroicons.number_circle_zero solid />
  <Heroicons.number_circle_zero mini />
  <Heroicons.number_circle_zero outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_zero(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="24" ry="40"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,160c-27.6,0-40-28.1-40-56s12.4-56,40-56,40,28.1,40,56S155.6,184,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_krw` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_krw />
  <Heroicons.currency_krw class="w-4 h-4" />
  <Heroicons.currency_krw solid />
  <Heroicons.currency_krw mini />
  <Heroicons.currency_krw outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_krw(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 72 76 200 128 72 180 200 232 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="24 72 76 200 128 72 180 200 232 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 72 76 200 128 72 180 200 232 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,128H217.9l21.5-53a8,8,0,1,0-14.8-6l-24,59H159.4l-24-59a8,8,0,0,0-14.8,0l-24,59H55.4l-24-59a8,8,0,1,0-14.8,6l21.5,53H16a8,8,0,0,0,0,16H44.6l24,59a8,8,0,0,0,14.8,0l24-59h41.2l24,59a8,8,0,0,0,14.8,0l24-59H240a8,8,0,0,0,0-16ZM76,178.7,61.9,144H90.1ZM113.9,128,128,93.3,142.1,128ZM180,178.7,165.9,144h28.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="24 72 76 200 128 72 180 200 232 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="24 72 76 200 128 72 180 200 232 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `camera_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.camera_slash />
  <Heroicons.camera_slash class="w-4 h-4" />
  <Heroicons.camera_slash solid />
  <Heroicons.camera_slash mini />
  <Heroicons.camera_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def camera_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,43l2-3h64l16,24h32a16,16,0,0,1,16,16V186" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200.7,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H69.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.1,156.8a36,36,0,1,1-48.3-53.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200.7,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H69.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154.1,156.8a36,36,0,1,1-48.3-53.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M102.1,40H160l16,24h32a16,16,0,0,1,16,16v94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z" opacity="0.2"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,43l2-3h64l16,24h32a16,16,0,0,1,16,16V186" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200.7,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H69.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.1,156.8a36,36,0,1,1-48.3-53.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M39.4,18.6a7.9,7.9,0,0,0-11.3-.5,8,8,0,0,0-.6,11.3L51.7,56H48A24.1,24.1,0,0,0,24,80V192a24.1,24.1,0,0,0,24,24H197.2l19.4,21.4a8.2,8.2,0,0,0,5.9,2.6,7.8,7.8,0,0,0,5.4-2.1,8,8,0,0,0,.6-11.3ZM128,168a36,36,0,0,1-36-36,36.4,36.4,0,0,1,8.1-22.8L148,161.9A35.3,35.3,0,0,1,128,168Z"/><path d="M208,56H180.3L166.6,35.6A7.6,7.6,0,0,0,160,32H96a7.9,7.9,0,0,0-6.7,3.6l-2,3a8,8,0,0,0,.8,9.8l130,143A7.9,7.9,0,0,0,224,194a7.4,7.4,0,0,0,2.9-.5A8,8,0,0,0,232,186V80A24.1,24.1,0,0,0,208,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M94,43l2-3h64l16,24h32a16,16,0,0,1,16,16V186" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200.7,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H69.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.1,156.8a36,36,0,1,1-48.3-53.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M94,43l2-3h64l16,24h32a16,16,0,0,1,16,16V186" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200.7,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H69.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.1,156.8a36,36,0,1,1-48.3-53.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_up />
  <Heroicons.arrow_square_up class="w-4 h-4" />
  <Heroicons.arrow_square_up solid />
  <Heroicons.arrow_square_up mini />
  <Heroicons.arrow_square_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,208V48a16,16,0,0,0-16-16H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208A16,16,0,0,0,224,208Zm-56.4-80.4a8,8,0,0,1-11.3,0L136,107.3V168a8,8,0,0,1-16,0V107.3L99.7,127.6a8,8,0,0,1-11.3-11.3l33.9-33.9a8.7,8.7,0,0,1,2.6-1.8A8.5,8.5,0,0,1,128,80a7.7,7.7,0,0,1,3,.6,8,8,0,0,1,2.7,1.8l33.9,33.9A8,8,0,0,1,167.6,127.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_csv` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_csv />
  <Heroicons.file_csv class="w-4 h-4" />
  <Heroicons.file_csv solid />
  <Heroicons.file_csv mini />
  <Heroicons.file_csv outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_csv(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 168 192 216 212 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 164 198 220 220 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,215.6A24.2,24.2,0,0,1,62,220c-14.4,0-26-12.5-26-28s11.6-28,26-28a24.2,24.2,0,0,1,14,4.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 168 192 216 212 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.4,171.1l-20,48a8,8,0,0,1-14.8,0l-20-48a8,8,0,1,1,14.8-6.2L192,195.2l12.6-30.3a8,8,0,1,1,14.8,6.2ZM66,176a12.9,12.9,0,0,1,8.6,3.4,7.9,7.9,0,0,0,11.3-.6,8,8,0,0,0-.5-11.3A29.3,29.3,0,0,0,66,160c-16.5,0-30,14.4-30,32s13.5,32,30,32a29.3,29.3,0,0,0,19.4-7.5,8,8,0,0,0,.5-11.3,7.9,7.9,0,0,0-11.3-.6A12.9,12.9,0,0,1,66,208c-7.7,0-14-7.2-14-16S58.3,176,66,176Zm63.7,7.8c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,142,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,127,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,112,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,127,225c15.7,0,25-7.9,25-21S138,186,129.7,183.8ZM40,128V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88v40a8,8,0,0,1-8,8H48A8,8,0,0,1,40,128ZM152,88h44L152,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 168 192 216 212 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 168 192 216 212 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `apple_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.apple_logo />
  <Heroicons.apple_logo class="w-4 h-4" />
  <Heroicons.apple_logo solid />
  <Heroicons.apple_logo mini />
  <Heroicons.apple_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def apple_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.1,32.5A32,32,0,0,1,168,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M143.5,23.4A31.9,31.9,0,0,1,168,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" opacity="0.2"/><path d="M138.1,32.5A32,32,0,0,1,168,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M130.7,29.6A40.2,40.2,0,0,1,168,4a8,8,0,0,1,0,16,24.1,24.1,0,0,0-22.4,15.4,8,8,0,0,1-7.5,5.1,9.2,9.2,0,0,1-2.8-.5A8,8,0,0,1,130.7,29.6ZM222,155.8a40,40,0,0,1-2.7-70A8.2,8.2,0,0,0,221.5,74,68,68,0,0,0,128,61,68,68,0,0,0,20,116a135,135,0,0,0,22.9,74c14.4,21.3,32.7,34,49.1,34h72c22.5,0,47.9-23.9,61.9-58A7.9,7.9,0,0,0,222,155.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.1,32.5A32,32,0,0,1,168,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.1,32.5A32,32,0,0,1,168,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M218.5,162.9C205.9,193.7,183.1,216,164,216H92c-28,0-64-48-64-100A60,60,0,0,1,128,71.3h0a60,60,0,0,1,87.2,7.6h0a48,48,0,0,0,3.3,84Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `diamonds_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.diamonds_four />
  <Heroicons.diamonds_four class="w-4 h-4" />
  <Heroicons.diamonds_four solid />
  <Heroicons.diamonds_four mini />
  <Heroicons.diamonds_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def diamonds_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="99.7" y="35.7" width="56.6" height="56.57" rx="8" transform="translate(-7.8 109.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="163.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-34.3 173.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="35.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-71.8 82.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="99.7" y="163.7" width="56.6" height="56.57" rx="8" transform="translate(-98.3 146.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="101.1" y="35.1" width="53.7" height="53.74" rx="8" transform="translate(-6.4 108.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="167.1" y="101.1" width="53.7" height="53.74" rx="8" transform="translate(-33.7 174.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="35.1" y="101.1" width="53.7" height="53.74" rx="8" transform="translate(-72.4 81.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="101.1" y="167.1" width="53.7" height="53.74" rx="8" transform="translate(-99.7 147.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="99.7" y="35.7" width="56.6" height="56.57" rx="8" transform="translate(-7.8 109.3) rotate(-45)" opacity="0.2"/><rect x="163.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-34.3 173.3) rotate(-45)" opacity="0.2"/><rect x="35.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-71.8 82.7) rotate(-45)" opacity="0.2"/><rect x="99.7" y="163.7" width="56.6" height="56.57" rx="8" transform="translate(-98.3 146.7) rotate(-45)" opacity="0.2"/><rect x="99.7" y="35.7" width="56.6" height="56.57" rx="8" transform="translate(-7.8 109.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="163.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-34.3 173.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="35.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-71.8 82.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="99.7" y="163.7" width="56.6" height="56.57" rx="8" transform="translate(-98.3 146.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,75.3a16.1,16.1,0,0,1,0-22.6L116.7,24a15.9,15.9,0,0,1,22.6,0L168,52.7a16.1,16.1,0,0,1,0,22.6L139.3,104a15.9,15.9,0,0,1-22.6,0Zm144,41.4L203.3,88a15.9,15.9,0,0,0-22.6,0L152,116.7a16.1,16.1,0,0,0,0,22.6L180.7,168a15.9,15.9,0,0,0,22.6,0L232,139.3A16.1,16.1,0,0,0,232,116.7Zm-128,0L75.3,88a15.9,15.9,0,0,0-22.6,0L24,116.7a16.1,16.1,0,0,0,0,22.6L52.7,168a15.9,15.9,0,0,0,22.6,0L104,139.3A16.1,16.1,0,0,0,104,116.7ZM139.3,152a15.9,15.9,0,0,0-22.6,0L88,180.7a16.1,16.1,0,0,0,0,22.6L116.7,232a15.9,15.9,0,0,0,22.6,0L168,203.3a16.1,16.1,0,0,0,0-22.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="99.7" y="35.7" width="56.6" height="56.57" rx="8" transform="translate(-7.8 109.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="163.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-34.3 173.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="35.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-71.8 82.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="99.7" y="163.7" width="56.6" height="56.57" rx="8" transform="translate(-98.3 146.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="99.7" y="35.7" width="56.6" height="56.57" rx="8" transform="translate(-7.8 109.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="163.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-34.3 173.3) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="35.7" y="99.7" width="56.6" height="56.57" rx="8" transform="translate(-71.8 82.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="99.7" y="163.7" width="56.6" height="56.57" rx="8" transform="translate(-98.3 146.7) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chalkboard_teacher` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chalkboard_teacher />
  <Heroicons.chalkboard_teacher class="w-4 h-4" />
  <Heroicons.chalkboard_teacher solid />
  <Heroicons.chalkboard_teacher mini />
  <Heroicons.chalkboard_teacher outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chalkboard_teacher(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M53.4,208a56,56,0,0,1,101.2,0H216a8,8,0,0,0,8-8V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 176 192 176 192 80 64 80 64 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="188 172 188 84 68 84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M149.3,208H216a8,8,0,0,0,8-8V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H58.7a48.1,48.1,0,0,1,90.6,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,144a32,32,0,1,1,32,32h88V80H64v64Z" opacity="0.2"/><path d="M53.4,208a56,56,0,0,1,101.2,0H216a8,8,0,0,0,8-8V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 176 192 176 192 80 64 80 64 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H53.4a7.9,7.9,0,0,0,7.2-4.6,48.1,48.1,0,0,1,86.8,0,7.9,7.9,0,0,0,7.2,4.6H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM104,168a32,32,0,1,1,32-32A32.1,32.1,0,0,1,104,168Zm112,32H159.4a63.7,63.7,0,0,0-13.1-16H192a8,8,0,0,0,8-8V80a8,8,0,0,0-8-8H64a8,8,0,0,0-8,8v96a8,8,0,0,0,6,7.7A64.2,64.2,0,0,0,48.6,200H40V56H216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M53.4,208a56,56,0,0,1,101.2,0H216a8,8,0,0,0,8-8V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 176 192 176 192 80 64 80 64 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M53.4,208a56,56,0,0,1,101.2,0H216a8,8,0,0,0,8-8V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 176 192 176 192 80 64 80 64 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_rain` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_rain />
  <Heroicons.cloud_rain class="w-4 h-4" />
  <Heroicons.cloud_rain solid />
  <Heroicons.cloud_rain mini />
  <Heroicons.cloud_rain outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_rain(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="240" x2="154.3" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="98.7" y1="208" x2="130.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="240" x2="154.3" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="98.7" y1="208" x2="130.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" opacity="0.2"/><line x1="128" y1="240" x2="154.3" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="98.7" y1="208" x2="130.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160.9,204.4l-26.2,40A8.2,8.2,0,0,1,128,248a8,8,0,0,1-6.7-12.4l26.3-40a8,8,0,1,1,13.3,8.8ZM159.3,16.1A76.1,76.1,0,0,0,85,64.8h0a74.8,74.8,0,0,0-5,26.9,8.3,8.3,0,0,1-7.4,8.3A8,8,0,0,1,64,92a91.6,91.6,0,0,1,2.4-21.1,4,4,0,0,0-5-4.8A52.1,52.1,0,0,0,24,116.3C24.2,145,48.1,168,76.8,168h38.6L92.2,203.4A8,8,0,0,0,98.7,216a8,8,0,0,0,6.7-3.6L134.6,168H156a76,76,0,0,0,3.3-151.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="240" x2="154.3" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="98.7" y1="208" x2="130.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="240" x2="154.3" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="98.7" y1="208" x2="130.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `mouse` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.mouse />
  <Heroicons.mouse class="w-4 h-4" />
  <Heroicons.mouse solid />
  <Heroicons.mouse mini />
  <Heroicons.mouse outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def mouse(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52" y1="112" x2="204" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="52" y1="112" x2="204" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="112" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32H108A56,56,0,0,0,52,88v24h76Z" opacity="0.2"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52" y1="112" x2="204" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,24H108A64.1,64.1,0,0,0,44,88v80a64.1,64.1,0,0,0,64,64h40a64.1,64.1,0,0,0,64-64V88A64.1,64.1,0,0,0,148,24Zm48,64v16H136V40h12A48,48,0,0,1,196,88ZM108,40h12v64H60V88A48,48,0,0,1,108,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="52" y1="112" x2="204" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="112" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="52" y1="112" x2="204" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="112" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plus_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plus_minus />
  <Heroicons.plus_minus class="w-4 h-4" />
  <Heroicons.plus_minus solid />
  <Heroicons.plus_minus mini />
  <Heroicons.plus_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plus_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="72" x2="112" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="32" x2="72" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="72" x2="112" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="32" x2="72" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="72" x2="112" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="32" x2="72" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.7,50.3a8.1,8.1,0,0,0-11.4,0l-144,144a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0l144-144A8.1,8.1,0,0,0,205.7,50.3Z"/><path d="M64,112a8,8,0,0,0,16,0V80h32a8,8,0,0,0,0-16H80V32a8,8,0,0,0-16,0V64H32a8,8,0,0,0,0,16H64Z"/><path d="M224,176H144a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="72" x2="112" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="32" x2="72" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="72" x2="112" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="32" x2="72" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magnet` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magnet />
  <Heroicons.magnet class="w-4 h-4" />
  <Heroicons.magnet solid />
  <Heroicons.magnet mini />
  <Heroicons.magnet outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magnet(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M127.3,95a24.1,24.1,0,0,1,33.6-.3c9.7,9.3,9.5,25.1-.1,34.7l-67,64.9a8.1,8.1,0,0,0-.1,11.4l28.7,28.7a8.1,8.1,0,0,0,11.3.1l66.4-65.2c31.2-31.2,32.1-82,1.2-113.4a80,80,0,0,0-113.6-.5L21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="126.8" y1="162.4" x2="166.6" y2="202.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="54" y1="89.6" x2="93.7" y2="129.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M127.3,95a24.1,24.1,0,0,1,33.6-.3c9.7,9.3,9.5,25.1-.1,34.7l-67,64.9a8.1,8.1,0,0,0-.1,11.4l28.7,28.7a8.1,8.1,0,0,0,11.3.1l66.4-65.2c31.2-31.2,32.1-82,1.2-113.4a80,80,0,0,0-113.6-.5L21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="126.8" y1="162.4" x2="166.6" y2="202.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="54" y1="89.6" x2="93.7" y2="129.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M126.8,162.4l39.8,39.8-32.9,32.3a8.1,8.1,0,0,1-11.3-.1L93.7,205.7a8.1,8.1,0,0,1,.1-11.4Z" opacity="0.2"/><path d="M93.7,129.4,54,89.6,21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" opacity="0.2"/><path d="M127.3,95a24.1,24.1,0,0,1,33.6-.3c9.7,9.3,9.5,25.1-.1,34.7l-67,64.9a8.1,8.1,0,0,0-.1,11.4l28.7,28.7a8.1,8.1,0,0,0,11.3.1l66.4-65.2c31.2-31.2,32.1-82,1.2-113.4a80,80,0,0,0-113.6-.5L21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="126.8" y1="162.4" x2="166.6" y2="202.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="54" y1="89.6" x2="93.7" y2="129.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207,50.2A87.7,87.7,0,0,0,144.6,24h-.3A87.3,87.3,0,0,0,82,49.8L48.3,83.9h0L15.9,116.7a16.1,16.1,0,0,0,.1,22.6l28.6,28.6a15.6,15.6,0,0,0,11.3,4.7H56a15.8,15.8,0,0,0,11.4-4.8l32-32.8h0L133,100.7a16.1,16.1,0,0,1,22.4-.2,15.7,15.7,0,0,1,4.7,11.2,17,17,0,0,1-4.9,12l-34.1,33h0L88.3,188.6a15.9,15.9,0,0,0-.2,22.8l28.6,28.7a16.3,16.3,0,0,0,22.6.1l32.9-32.4h0l33.6-32.9C240.2,140.5,240.8,84.6,207,50.2ZM55.9,156.6,27.3,128,54,100.9l28.5,28.5Zm72.2,72.1L99.4,200.1l27.3-26.5,28.5,28.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M127.3,95a24.1,24.1,0,0,1,33.6-.3c9.7,9.3,9.5,25.1-.1,34.7l-67,64.9a8.1,8.1,0,0,0-.1,11.4l28.7,28.7a8.1,8.1,0,0,0,11.3.1l66.4-65.2c31.2-31.2,32.1-82,1.2-113.4a80,80,0,0,0-113.6-.5L21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="126.8" y1="162.4" x2="166.6" y2="202.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="54" y1="89.6" x2="93.7" y2="129.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M127.3,95a24.1,24.1,0,0,1,33.6-.3c9.7,9.3,9.5,25.1-.1,34.7l-67,64.9a8.1,8.1,0,0,0-.1,11.4l28.7,28.7a8.1,8.1,0,0,0,11.3.1l66.4-65.2c31.2-31.2,32.1-82,1.2-113.4a80,80,0,0,0-113.6-.5L21.6,122.3a8,8,0,0,0,0,11.3l28.7,28.7a8.1,8.1,0,0,0,11.4-.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="126.8" y1="162.4" x2="166.6" y2="202.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="54" y1="89.6" x2="93.7" y2="129.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_x />
  <Heroicons.cell_signal_x class="w-4 h-4" />
  <Heroicons.cell_signal_x solid />
  <Heroicons.cell_signal_x mini />
  <Heroicons.cell_signal_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="104" x2="176" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,173.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3V82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="104" x2="176" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,184v24a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" opacity="0.2"/><line x1="224" y1="104" x2="176" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,173.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3V82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,146.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L200,139.3l-18.3,18.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L188.7,128l-18.4-18.3a8.1,8.1,0,0,1,11.4-11.4L200,116.7l18.3-18.4a8.1,8.1,0,0,1,11.4,11.4L211.3,128Zm-26.9,18.5a3.9,3.9,0,0,0-5.6,0L193,169a24,24,0,0,1-17,7,23.6,23.6,0,0,1-17.2-7.3c-9.2-9.5-8.7-24.7.6-34.1l6.7-6.6-6.7-6.6c-9.5-9.6-9.7-25.4,0-34.7A24.1,24.1,0,0,1,193,87l4.2,4.2a3.9,3.9,0,0,0,5.6,0L207,87h0a2.9,2.9,0,0,0,1-2.3V43.8a16.6,16.6,0,0,0-9.2-15A15.9,15.9,0,0,0,180.7,32L16.3,196.4a16.3,16.3,0,0,0-4,17,15.9,15.9,0,0,0,15,10.6H192a16,16,0,0,0,16-16V171.2a3,3,0,0,0-1-2.2h0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="104" x2="176" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,173.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3V82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="104" x2="176" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,173.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3V82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `syringe` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.syringe />
  <Heroicons.syringe class="w-4 h-4" />
  <Heroicons.syringe solid />
  <Heroicons.syringe mini />
  <Heroicons.syringe outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def syringe(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="24" x2="232" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102" y1="98" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74" y1="126" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="88" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="24" x2="232" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="102" y1="98" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="74" y1="126" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="88" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="208" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116Z" opacity="0.2"/><line x1="184" y1="24" x2="232" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102" y1="98" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74" y1="126" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="88" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,77.7a8.2,8.2,0,0,1-11.4,0L208,59.3,179.3,88l34.4,34.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-6.3-6.4-84,84a16.1,16.1,0,0,1-11.3,4.7H51.3L29.7,237.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L40,204.7V155.3A16.1,16.1,0,0,1,44.7,144l11.2-11.2a4,4,0,0,1,5.6,0l28.8,28.9a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L72.8,121.5a4,4,0,0,1,0-5.6L91.9,96.8a4,4,0,0,1,5.6,0l28.8,28.9a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L108.8,85.5a4,4,0,0,1,0-5.6L128.7,60l-6.1-6.1a8.3,8.3,0,0,1-.4-11.4,8.1,8.1,0,0,1,11.5-.2L168,76.7,196.7,48,178.6,29.9a8.3,8.3,0,0,1-.4-11.4,8.1,8.1,0,0,1,11.5-.2l48,48A8.1,8.1,0,0,1,237.7,77.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="24" x2="232" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102" y1="98" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="74" y1="126" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="88" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="208" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="24" x2="232" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M140,60,50.3,149.7a7.9,7.9,0,0,0-2.3,5.6V208h52.7a7.9,7.9,0,0,0,5.6-2.3L196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102" y1="98" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="74" y1="126" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="88" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="208" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flower` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flower />
  <Heroicons.flower class="w-4 h-4" />
  <Heroicons.flower solid />
  <Heroicons.flower mini />
  <Heroicons.flower outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flower(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M115,103.2c-7.3-15.4-15-34.6-15-47.2a28,28,0,0,1,56,0c0,12.6-7.7,31.8-15,47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M100,126.8c-17-1.3-37.5-4.3-48.4-10.6a28,28,0,0,1,28-48.4C90.5,74,103.3,90.3,113,104.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M113,151.6c-9.7,14.1-22.5,30.4-33.4,36.6a28,28,0,1,1-28-48.4c10.9-6.3,31.4-9.3,48.4-10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M141,152.8c7.3,15.4,15,34.6,15,47.2a28,28,0,0,1-56,0c0-12.6,7.7-31.8,15-47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156,129.2c17,1.3,37.5,4.3,48.4,10.6a28,28,0,0,1-28,48.4c-10.9-6.2-23.7-22.5-33.4-36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M143,104.4c9.7-14.1,22.5-30.4,33.4-36.6a28,28,0,0,1,28,48.4c-10.9,6.3-31.4,9.3-48.4,10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M115,103.2c-7.3-15.4-15-34.6-15-47.2a28,28,0,0,1,56,0c0,12.6-7.7,31.8-15,47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M100,126.8c-17-1.3-37.5-4.3-48.4-10.6a28,28,0,0,1,28-48.4C90.5,74,103.3,90.3,113,104.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M113,151.6c-9.7,14.1-22.5,30.4-33.4,36.6a28,28,0,1,1-28-48.4c10.9-6.3,31.4-9.3,48.4-10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M141,152.8c7.3,15.4,15,34.6,15,47.2a28,28,0,0,1-56,0c0-12.6,7.7-31.8,15-47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M156,129.2c17,1.3,37.5,4.3,48.4,10.6a28,28,0,0,1-28,48.4c-10.9-6.2-23.7-22.5-33.4-36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M143,104.4c9.7-14.1,22.5-30.4,33.4-36.6a28,28,0,0,1,28,48.4c-10.9,6.3-31.4,9.3-48.4,10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M115,103.2a28,28,0,0,1,26,0h0c7.3-15.4,15-34.6,15-47.2a28,28,0,0,0-56,0c0,12.6,7.7,31.8,15,47.2Z" opacity="0.2"/><path d="M100,126.8a27.8,27.8,0,0,1,3.8-12.8,26.5,26.5,0,0,1,9.2-9.6h0C103.3,90.3,90.5,74,79.6,67.8a28,28,0,0,0-28,48.4c10.9,6.3,31.4,9.3,48.4,10.6Z" opacity="0.2"/><path d="M113,151.6a26.5,26.5,0,0,1-9.2-9.6,27.8,27.8,0,0,1-3.8-12.8h0c-17,1.3-37.5,4.3-48.4,10.6a28,28,0,1,0,28,48.4c10.9-6.2,23.7-22.5,33.4-36.6Z" opacity="0.2"/><path d="M141,152.8a28,28,0,0,1-26,0h0c-7.3,15.4-15,34.6-15,47.2a28,28,0,0,0,56,0c0-12.6-7.7-31.8-15-47.2Z" opacity="0.2"/><path d="M156,129.2a27.8,27.8,0,0,1-3.8,12.8,26.5,26.5,0,0,1-9.2,9.6h0c9.7,14.1,22.5,30.4,33.4,36.6a28,28,0,0,0,28-48.4c-10.9-6.3-31.4-9.3-48.4-10.6Z" opacity="0.2"/><path d="M143,104.4a26.5,26.5,0,0,1,9.2,9.6,27.8,27.8,0,0,1,3.8,12.8h0c17-1.3,37.5-4.3,48.4-10.6a28,28,0,0,0-28-48.4C165.5,74,152.7,90.3,143,104.4Z" opacity="0.2"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M115,103.2c-7.3-15.4-15-34.6-15-47.2a28,28,0,0,1,56,0c0,12.6-7.7,31.8-15,47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M100,126.8c-17-1.3-37.5-4.3-48.4-10.6a28,28,0,0,1,28-48.4C90.5,74,103.3,90.3,113,104.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M113,151.6c-9.7,14.1-22.5,30.4-33.4,36.6a28,28,0,1,1-28-48.4c10.9-6.3,31.4-9.3,48.4-10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M141,152.8c7.3,15.4,15,34.6,15,47.2a28,28,0,0,1-56,0c0-12.6,7.7-31.8,15-47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156,129.2c17,1.3,37.5,4.3,48.4,10.6a28,28,0,0,1-28,48.4c-10.9-6.2-23.7-22.5-33.4-36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M143,104.4c9.7-14.1,22.5-30.4,33.4-36.6a28,28,0,0,1,28,48.4c-10.9,6.3-31.4,9.3-48.4,10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.4,132.8a56.9,56.9,0,0,0-11.5-4.8,56.9,56.9,0,0,0,11.5-4.8,36,36,0,0,0-36-62.4,58.7,58.7,0,0,0-9.9,7.5A58.6,58.6,0,0,0,164,56a36,36,0,0,0-72,0,58.6,58.6,0,0,0,1.5,12.3,58.7,58.7,0,0,0-9.9-7.5,36,36,0,0,0-36,62.4A56.9,56.9,0,0,0,59.1,128a56.9,56.9,0,0,0-11.5,4.8,36,36,0,0,0,36,62.4,58.7,58.7,0,0,0,9.9-7.5A58.6,58.6,0,0,0,92,200a36,36,0,0,0,72,0,58.6,58.6,0,0,0-1.5-12.3,58.7,58.7,0,0,0,9.9,7.5,36,36,0,0,0,36-62.4ZM128,152a24,24,0,1,1,24-24A24.1,24.1,0,0,1,128,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M115,103.2c-7.3-15.4-15-34.6-15-47.2a28,28,0,0,1,56,0c0,12.6-7.7,31.8-15,47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M100,126.8c-17-1.3-37.5-4.3-48.4-10.6a28,28,0,0,1,28-48.4C90.5,74,103.3,90.3,113,104.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M113,151.6c-9.7,14.1-22.5,30.4-33.4,36.6a28,28,0,1,1-28-48.4c10.9-6.3,31.4-9.3,48.4-10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M141,152.8c7.3,15.4,15,34.6,15,47.2a28,28,0,0,1-56,0c0-12.6,7.7-31.8,15-47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M156,129.2c17,1.3,37.5,4.3,48.4,10.6a28,28,0,0,1-28,48.4c-10.9-6.2-23.7-22.5-33.4-36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M143,104.4c9.7-14.1,22.5-30.4,33.4-36.6a28,28,0,0,1,28,48.4c-10.9,6.3-31.4,9.3-48.4,10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M115,103.2c-7.3-15.4-15-34.6-15-47.2a28,28,0,0,1,56,0c0,12.6-7.7,31.8-15,47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M100,126.8c-17-1.3-37.5-4.3-48.4-10.6a28,28,0,0,1,28-48.4C90.5,74,103.3,90.3,113,104.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M113,151.6c-9.7,14.1-22.5,30.4-33.4,36.6a28,28,0,1,1-28-48.4c10.9-6.3,31.4-9.3,48.4-10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M141,152.8c7.3,15.4,15,34.6,15,47.2a28,28,0,0,1-56,0c0-12.6,7.7-31.8,15-47.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M156,129.2c17,1.3,37.5,4.3,48.4,10.6a28,28,0,0,1-28,48.4c-10.9-6.2-23.7-22.5-33.4-36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M143,104.4c9.7-14.1,22.5-30.4,33.4-36.6a28,28,0,0,1,28,48.4c-10.9,6.3-31.4,9.3-48.4,10.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `yin_yang` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.yin_yang />
  <Heroicons.yin_yang class="w-4 h-4" />
  <Heroicons.yin_yang solid />
  <Heroicons.yin_yang mini />
  <Heroicons.yin_yang outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def yin_yang(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="176" r="12"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="80" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="176" r="16"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="80" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96,96,96,0,0,1,0,192Z"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="176" r="12"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="80" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M140,80a12,12,0,1,1-12-12A12,12,0,0,1,140,80Zm92,48A104,104,0,1,1,128,24,104.2,104.2,0,0,1,232,128Zm-92,48a12,12,0,1,0-12,12A12,12,0,0,0,140,176Zm32-92a44,44,0,0,0-44-44A88,88,0,0,0,81.1,202.4,51.1,51.1,0,0,1,76,180a52,52,0,0,1,52-52A44,44,0,0,0,172,84Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="176" r="12"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="80" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="176" r="8"/><path d="M128,224a48,48,0,0,1,0-96,48,48,0,0,0,0-96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="80" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_right_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_right_down />
  <Heroicons.arrow_elbow_right_down class="w-4 h-4" />
  <Heroicons.arrow_elbow_right_down solid />
  <Heroicons.arrow_elbow_right_down mini />
  <Heroicons.arrow_elbow_right_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_right_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 176 208 224 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 64 176 64 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 176 208 224 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="32 64 176 64 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 176 208 224 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 64 176 64 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,165.7l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,128,152h40V72H32a8,8,0,0,1,0-16H176a8,8,0,0,1,8,8v88h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,229.7,165.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 176 208 224 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="32 64 176 64 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 176 208 224 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="32 64 176 64 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clock_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clock_clockwise />
  <Heroicons.clock_clockwise class="w-4 h-4" />
  <Heroicons.clock_clockwise solid />
  <Heroicons.clock_clockwise mini />
  <Heroicons.clock_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clock_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184.2 99.7 224.2 99.7 224.2 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="184.2 99.7 224.2 99.7 224.2 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" opacity="0.2"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184.2 99.7 224.2 99.7 224.2 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,80v43.4l37.6,21.7a8,8,0,0,1-4,14.9,7.1,7.1,0,0,1-4-1.1l-41.6-24h-.2l-.4-.2-.3-.3-.3-.2-.3-.3-.2-.2c-.2-.1-.3-.3-.4-.4l-.2-.2-.2-.4-.2-.3-.2-.3a.5.5,0,0,1-.2-.4l-.2-.3c0-.1-.1-.2-.1-.4a.4.4,0,0,1-.1-.3l-.2-.4a.4.4,0,0,0-.1-.3c0-.2,0-.3-.1-.4v-.4c0-.2-.1-.3-.1-.4V80a8,8,0,0,1,16,0Zm91.2-27.7a8,8,0,0,0-8.7,1.8L204.2,68.4l-8.3-8.3a96,96,0,1,0,0,135.8,8,8,0,0,0,0-11.3,7.9,7.9,0,0,0-11.3,0,80,80,0,1,1,0-113.2l8.3,8.3L178.5,94.1a8,8,0,0,0,5.7,13.6h40a8,8,0,0,0,8-8v-40A8.2,8.2,0,0,0,227.2,52.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="184.2 99.7 224.2 99.7 224.2 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="184.2 99.7 224.2 99.7 224.2 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_background` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_background />
  <Heroicons.selection_background class="w-4 h-4" />
  <Heroicons.selection_background solid />
  <Heroicons.selection_background mini />
  <Heroicons.selection_background outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_background(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="128" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,40h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="112" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,168h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,40H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="92" width="124" height="124" rx="7.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="40" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,40h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="112" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,168h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,40H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="128" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,40h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="112" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,168h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,40H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,40H96a8,8,0,0,0-8,8V88h72a8,8,0,0,1,8,8v72h40a8,8,0,0,0,8-8V48A8,8,0,0,0,208,40Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56V48A16,16,0,0,1,96,32h8a8,8,0,0,1,0,16H96v8a8,8,0,0,1-16,0Zm64-8h16a8,8,0,0,0,0-16H144a8,8,0,0,0,0,16Zm64-16h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,56a8,8,0,0,0-8,8v16a8,8,0,0,0,16,0V96A8,8,0,0,0,216,88Zm-40,8V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V96A16,16,0,0,1,48,80H160A16,16,0,0,1,176,96Zm-16,0H48V208H160Zm56,48a8,8,0,0,0-8,8v8h-8a8,8,0,0,0,0,16h8a16,16,0,0,0,16-16v-8A8,8,0,0,0,216,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="128" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="40" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,40h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="112" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,168h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,40H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="128" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="40" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,40h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="112" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,168h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,40H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_simple_ringing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_simple_ringing />
  <Heroicons.bell_simple_ringing class="w-4 h-4" />
  <Heroicons.bell_simple_ringing solid />
  <Heroicons.bell_simple_ringing mini />
  <Heroicons.bell_simple_ringing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_simple_ringing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="228" x2="160" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,52.6,14.1,64a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-28.2,14.1-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.7,17.2a111.1,111.1,0,0,1,40.8,45.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M27.5,62.6A111.1,111.1,0,0,1,68.3,17.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" opacity="0.2"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Zm39.8-112a79.7,79.7,0,0,0-79.2-80H128a79.9,79.9,0,0,0-79.8,80c0,34.3-7.1,53.7-13,63.9a16.2,16.2,0,0,0-.1,16.1A15.9,15.9,0,0,0,49,200H207a15.9,15.9,0,0,0,13.9-8,16.2,16.2,0,0,0-.1-16.1C214.9,165.7,207.8,146.3,207.8,112Zm20.7-49.4a111.7,111.7,0,0,0-40.8-45.4,8,8,0,0,0-8.5,13.6,97,97,0,0,1,35,38.8,7.9,7.9,0,0,0,7.2,4.5,9.3,9.3,0,0,0,3.5-.8A8,8,0,0,0,228.5,62.6Zm-186.7,7a97,97,0,0,1,35-38.8,8,8,0,0,0-8.5-13.6A111.7,111.7,0,0,0,27.5,62.6a8,8,0,0,0,3.6,10.7,9.3,9.3,0,0,0,3.5.8A7.9,7.9,0,0,0,41.8,69.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="95.9" y1="224" x2="159.9" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `record` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.record />
  <Heroicons.record class="w-4 h-4" />
  <Heroicons.record solid />
  <Heroicons.record mini />
  <Heroicons.record outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def record(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="128" r="64" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="64" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="128" r="64" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z"/><circle cx="128" cy="128" r="72"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pinterest_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pinterest_logo />
  <Heroicons.pinterest_logo class="w-4 h-4" />
  <Heroicons.pinterest_logo solid />
  <Heroicons.pinterest_logo mini />
  <Heroicons.pinterest_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pinterest_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="88" x2="88" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.5,156.6A80,80,0,1,1,208,112c0,44.2-32,72-64,72s-41.6-21.1-41.6-21.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="88" x2="88" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M61.5,156.6A80,80,0,1,1,208,112c0,44.2-32,72-64,72s-41.6-21.1-41.6-21.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="88" x2="88" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.5,156.6A80,80,0,1,1,208,112c0,44.2-32,72-64,72s-41.6-21.1-41.6-21.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,131.2c-1.7,54.5-45.8,98.9-100.3,100.7a103.7,103.7,0,0,1-28.6-2.9,4.1,4.1,0,0,1-2.9-4.9l8.9-35.4A50.5,50.5,0,0,0,136,196c37,0,66.7-33.5,63.8-73.4-2.6-35.9-32-64.6-68-66.5A72,72,0,0,0,56,128a73.3,73.3,0,0,0,5.2,27,8,8,0,0,0,14.9-6A55.5,55.5,0,0,1,72,128.9a56,56,0,1,1,112-.9c0,28.7-21.5,52-48,52-10.5,0-17.8-3.7-22.8-8l14.6-58.1a8,8,0,1,0-15.6-3.8L85.4,217.5a4,4,0,0,1-5.7,2.6A104,104,0,1,1,232,131.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="88" x2="88" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M61.5,156.6A80,80,0,1,1,208,112c0,44.2-32,72-64,72s-41.6-21.1-41.6-21.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="88" x2="88" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M61.5,156.6A80,80,0,1,1,208,112c0,44.2-32,72-64,72s-41.6-21.1-41.6-21.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `repeat_once` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.repeat_once />
  <Heroicons.repeat_once class="w-4 h-4" />
  <Heroicons.repeat_once solid />
  <Heroicons.repeat_once mini />
  <Heroicons.repeat_once outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def repeat_once(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="116 112 132 104 132 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="116 112 132 104 132 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="116 112 132 104 132 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128A72.1,72.1,0,0,1,96,56h96V40a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l24,24a8.1,8.1,0,0,1,0,11.4l-24,24A8.3,8.3,0,0,1,200,96a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,192,88V72H96a56,56,0,0,0-56,56,8,8,0,0,1-16,0Zm200-8a8,8,0,0,0-8,8,56,56,0,0,1-56,56H64V168a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-24,24a8.1,8.1,0,0,0,0,11.4l24,24A8.3,8.3,0,0,0,56,224a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,64,216V200h96a72.1,72.1,0,0,0,72-72A8,8,0,0,0,224,120Zm-92,40a8,8,0,0,0,8-8V104a7.9,7.9,0,0,0-3.8-6.8,8,8,0,0,0-7.8-.4l-16,8a8.2,8.2,0,0,0-3.6,10.8,8.1,8.1,0,0,0,10.8,3.5l4.4-2.2V152A8,8,0,0,0,132,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="116 112 132 104 132 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="116 112 132 104 132 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `android_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.android_logo />
  <Heroicons.android_logo class="w-4 h-4" />
  <Heroicons.android_logo solid />
  <Heroicons.android_logo mini />
  <Heroicons.android_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def android_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="156" r="12"/><circle cx="92" cy="156" r="12"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="56" x2="63.1" y2="87.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="56" x2="193.1" y2="86.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="156" r="16"/><circle cx="92" cy="156" r="16"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="56" x2="63.1" y2="87.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="56" x2="193.1" y2="86.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" opacity="0.2"/><circle cx="164" cy="156" r="12"/><circle cx="92" cy="156" r="12"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="56" x2="63.1" y2="87.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="56" x2="193.1" y2="86.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207.1,88.7l-2.3-2.2,24.9-24.8a8.1,8.1,0,0,0-11.4-11.4l-25.9,26a111.5,111.5,0,0,0-128.6.2L37.7,50.3A8.1,8.1,0,0,0,26.3,61.7l25.1,25A113.4,113.4,0,0,0,16,169.1V192a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V168A111.2,111.2,0,0,0,207.1,88.7ZM92,168a12,12,0,1,1,12-12A12,12,0,0,1,92,168Zm72,0a12,12,0,1,1,12-12A12,12,0,0,1,164,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="156" r="10"/><circle cx="92" cy="156" r="10"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="56" x2="63.1" y2="87.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="56" x2="193.1" y2="86.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="156" r="8"/><circle cx="92" cy="156" r="8"/><path d="M24,192V169.1C24,111.6,70.2,64.2,127.6,64A104,104,0,0,1,232,168v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="56" x2="63.1" y2="87.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="56" x2="193.1" y2="86.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brain` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brain />
  <Heroicons.brain class="w-4 h-4" />
  <Heroicons.brain solid />
  <Heroicons.brain mini />
  <Heroicons.brain outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brain(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,144a40,40,0,1,1-40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,144a40,40,0,1,0,40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,180H64A48,48,0,0,1,48,86.7V72a40,40,0,0,1,80,0V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,180h8a48,48,0,0,0,16-93.3V72a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,84v8a28,28,0,0,1-28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,84v8a28,28,0,0,0,28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,180H64A48,48,0,0,1,48,86.7V72a40,40,0,0,1,80,0V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,180h8a48,48,0,0,0,16-93.3V72a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,88v8a28,28,0,0,1-28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,88v8a28,28,0,0,0,28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,147.3A40,40,0,1,1,48,184v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,147.3A40,40,0,1,0,208,184v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,86.7V72a40,40,0,0,0-80,0,40,40,0,0,0-80,0V86.7a48.1,48.1,0,0,0,0,90.6h0V184a40,40,0,0,0,80,0,40,40,0,0,0,80,0v-6.7h0a48.1,48.1,0,0,0,0-90.6Z" opacity="0.2"/><line x1="128" y1="176" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,144a40,40,0,1,1-40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,144a40,40,0,1,0,40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,180H64A48,48,0,0,1,48,86.7V72a40,40,0,0,1,80,0V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,180h8a48,48,0,0,0,16-93.3V72a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,84v8a28,28,0,0,1-28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,84v8a28,28,0,0,0,28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,132a56,56,0,0,0-32-50.6V72a48,48,0,0,0-88-26.5A48,48,0,0,0,40,72v9.4a56,56,0,0,0,0,101.2V184a48,48,0,0,0,88,26.5A48,48,0,0,0,216,184v-1.4A56.1,56.1,0,0,0,248,132ZM88,216a32,32,0,0,1-31.8-28.6,49.3,49.3,0,0,0,7.8.6h8a8,8,0,0,0,0-16H64A40,40,0,0,1,50.7,94.3,8.1,8.1,0,0,0,56,86.7V72a32,32,0,0,1,64,0v76.3A47.4,47.4,0,0,0,88,136a8,8,0,0,0,0,16,32,32,0,0,1,0,64Zm104-44h-8a8,8,0,0,0,0,16h8a49.3,49.3,0,0,0,7.8-.6A32,32,0,1,1,168,152a8,8,0,0,0,0-16,47.4,47.4,0,0,0-32,12.3V72a32,32,0,0,1,64,0V86.7a8.1,8.1,0,0,0,5.3,7.6A40,40,0,0,1,192,172ZM60,128a8,8,0,0,1,0-16A20.1,20.1,0,0,0,80,92V84a8,8,0,0,1,16,0v8A36,36,0,0,1,60,128Zm144-8a8,8,0,0,1-8,8,36,36,0,0,1-36-36V84a8,8,0,0,1,16,0v8a20.1,20.1,0,0,0,20,20A8,8,0,0,1,204,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,144a40,40,0,1,1-40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,144a40,40,0,1,0,40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,180H64A48,48,0,0,1,48,86.7V72a40,40,0,0,1,80,0V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,180h8a48,48,0,0,0,16-93.3V72a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,84v8a28,28,0,0,1-28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,84v8a28,28,0,0,0,28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,144a40,40,0,1,1-40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,144a40,40,0,1,0,40,40v-6.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,180H64A48,48,0,0,1,48,86.7V72a40,40,0,0,1,80,0V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,180h8a48,48,0,0,0,16-93.3V72a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,84v8a28,28,0,0,1-28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,84v8a28,28,0,0,0,28,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `drop_half_bottom` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.drop_half_bottom />
  <Heroicons.drop_half_bottom class="w-4 h-4" />
  <Heroicons.drop_half_bottom solid />
  <Heroicons.drop_half_bottom mini />
  <Heroicons.drop_half_bottom outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def drop_half_bottom(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="49.3" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="49.6" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56.5" y1="180" x2="199.5" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48.1" y1="140" x2="207.9" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M49.3,128A105.7,105.7,0,0,0,48,144a80,80,0,0,0,160,0,105.7,105.7,0,0,0-1.3-16H49.3Z" opacity="0.2"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="49.3" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M174,47.8A259.4,259.4,0,0,0,132.6,9.4a8.1,8.1,0,0,0-9.2,0A259.4,259.4,0,0,0,82,47.8C54.5,79.3,40,112.6,40,144a88,88,0,0,0,176,0C216,112.6,201.5,79.3,174,47.8ZM128,26c14.2,11.1,56.9,47.8,68.8,94H59.2C71.1,73.8,113.8,37.1,128,26Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="49.3" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="49.6" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="49.3" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="49.6" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `corners_out` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.corners_out />
  <Heroicons.corners_out class="w-4 h-4" />
  <Heroicons.corners_out solid />
  <Heroicons.corners_out mini />
  <Heroicons.corners_out outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def corners_out(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48V88a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-40-40a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,168,40h40A8,8,0,0,1,216,48ZM53.7,162.3a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,40,168v40a8,8,0,0,0,8,8H88a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8Zm157.4-1.7a8.4,8.4,0,0,0-8.8,1.7l-40,40a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,168,216h40a8,8,0,0,0,8-8V168A8,8,0,0,0,211.1,160.6ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,4.9,7.4A8.5,8.5,0,0,0,48,96a8.3,8.3,0,0,0,5.7-2.3l40-40a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,88,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `signpost` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.signpost />
  <Heroicons.signpost class="w-4 h-4" />
  <Heroicons.signpost solid />
  <Heroicons.signpost mini />
  <Heroicons.signpost outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def signpost(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="32" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="152" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" opacity="0.2"/><line x1="128" y1="32" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M245.9,117.4l-36,40A8.1,8.1,0,0,1,204,160H136v64a8,8,0,0,1-16,0V160H40a16,16,0,0,1-16-16V80A16,16,0,0,1,40,64h80V32a8,8,0,0,1,16,0V64h68a8.1,8.1,0,0,1,5.9,2.6l36,40A8,8,0,0,1,245.9,117.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="32" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="152" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,152H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H204l36,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="32" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="152" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `traffic_cone` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.traffic_cone />
  <Heroicons.traffic_cone class="w-4 h-4" />
  <Heroicons.traffic_cone solid />
  <Heroicons.traffic_cone mini />
  <Heroicons.traffic_cone outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def traffic_cone(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216,110.1,37.4a8.2,8.2,0,0,1,7.6-5.4h20.6a8.2,8.2,0,0,1,7.6,5.4L208,216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="216" x2="24" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="166.3" y1="96" x2="89.7" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="188.5" y1="160" x2="67.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216,110.1,37.4a8.2,8.2,0,0,1,7.6-5.4h20.6a8.2,8.2,0,0,1,7.6,5.4L208,216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="216" x2="24" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="166.3" y1="96" x2="89.7" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="188.5" y1="160" x2="67.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="67.5 160 188.5 160 166.3 96 89.7 96 67.5 160" opacity="0.2"/><path d="M48,216,110.1,37.4a8.2,8.2,0,0,1,7.6-5.4h20.6a8.2,8.2,0,0,1,7.6,5.4L208,216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="216" x2="24" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="166.3" y1="96" x2="89.7" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="188.5" y1="160" x2="67.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,208H213.7L153.4,34.7A16,16,0,0,0,138.3,24H117.7a16,16,0,0,0-15.1,10.7L42.3,208H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16ZM95.4,104h65.2l16.7,48H78.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216,110.1,37.4a8.2,8.2,0,0,1,7.6-5.4h20.6a8.2,8.2,0,0,1,7.6,5.4L208,216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="216" x2="24" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="166.3" y1="96" x2="89.7" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="188.5" y1="160" x2="67.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216,110.1,37.4a8.2,8.2,0,0,1,7.6-5.4h20.6a8.2,8.2,0,0,1,7.6,5.4L208,216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="216" x2="24" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="166.3" y1="96" x2="89.7" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="188.5" y1="160" x2="67.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_out_line_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_out_line_vertical />
  <Heroicons.arrows_out_line_vertical class="w-4 h-4" />
  <Heroicons.arrows_out_line_vertical solid />
  <Heroicons.arrows_out_line_vertical mini />
  <Heroicons.arrows_out_line_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_out_line_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 48 128 16 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 208 128 240 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="88" x2="128" y2="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 44 128 12 96 44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="244" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 212 128 244 160 212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 48 128 16 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 208 128 240 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM96,56h24V96a8,8,0,0,0,16,0V56h24a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8l-32-32a8.1,8.1,0,0,0-11.4,0l-32,32a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,96,56Zm64,144H136V160a8,8,0,0,0-16,0v40H96a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8l32,32a8.2,8.2,0,0,0,11.4,0l32-32a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,160,200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 48 128 16 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 208 128 240 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 48 128 16 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 208 128 240 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `map_trifold` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.map_trifold />
  <Heroicons.map_trifold class="w-4 h-4" />
  <Heroicons.map_trifold solid />
  <Heroicons.map_trifold mini />
  <Heroicons.map_trifold outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def map_trifold(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 184 32 200 32 56 96 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="160 216 96 184 96 40 160 72 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 72 224 56 224 200 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 184 32 200 32 56 96 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="160 216 96 184 96 40 160 72 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 72 224 56 224 200 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 216 96 184 96 40 160 72 160 216" opacity="0.2"/><polyline points="96 184 32 200 32 56 96 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="160 216 96 184 96 40 160 72 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 72 224 56 224 200 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.9,49.7a8,8,0,0,0-6.8-1.5L160.9,63.5,99.6,32.8h-.1l-.8-.3h-.2l-.7-.2h-.3l-.7-.2H94.1l-64,16A8,8,0,0,0,24,56V200a7.8,7.8,0,0,0,3.1,6.3A7.9,7.9,0,0,0,32,208l1.9-.2,61.2-15.3,61.3,30.7h.1l.7.3h.1l.8.3h3.8l64-16A8,8,0,0,0,232,200V56A7.8,7.8,0,0,0,228.9,49.7ZM152,203.1l-48-24V52.9l48,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 184 32 200 32 56 96 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="160 216 96 184 96 40 160 72 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 72 224 56 224 200 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 184 32 200 32 56 96 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="160 216 96 184 96 40 160 72 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 72 224 56 224 200 160 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_x_eyes` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_x_eyes />
  <Heroicons.smiley_x_eyes class="w-4 h-4" />
  <Heroicons.smiley_x_eyes solid />
  <Heroicons.smiley_x_eyes mini />
  <Heroicons.smiley_x_eyes outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_x_eyes(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="184" y1="96" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="128" x2="152" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="72" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="96" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="128" x2="148" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="96" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="128" x2="76" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="180" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="184" y1="96" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="128" x2="152" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="72" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm-18.3,98.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L88,123.3,77.7,133.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L76.7,112,66.3,101.7A8.1,8.1,0,0,1,77.7,90.3L88,100.7,98.3,90.3a8.1,8.1,0,0,1,11.4,11.4L99.3,112ZM128,192a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm61.7-69.7a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L168,123.3l-10.3,10.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L156.7,112l-10.4-10.3a8.1,8.1,0,0,1,11.4-11.4L168,100.7l10.3-10.4a8.1,8.1,0,0,1,11.4,11.4L179.3,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="96" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="128" x2="152" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="96" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="128" x2="72" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="180" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="96" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="128" x2="152" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="96" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="128" x2="72" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="180" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_double_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_double_right />
  <Heroicons.caret_circle_double_right class="w-4 h-4" />
  <Heroicons.caret_circle_double_right solid />
  <Heroicons.caret_circle_double_right mini />
  <Heroicons.caret_circle_double_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_double_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 160 120 128 88 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 160 176 128 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="88 160 120 128 88 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144 160 176 128 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 160 120 128 88 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 160 176 128 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a104,104,0,1,0,0,147A103.9,103.9,0,0,0,201.5,54.5Zm-75.8,79.2-32,32a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L108.7,128,82.3,101.7A8.1,8.1,0,0,1,93.7,90.3l32,32A8.1,8.1,0,0,1,125.7,133.7Zm56,0-32,32a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L164.7,128l-26.4-26.3a8.1,8.1,0,0,1,11.4-11.4l32,32A8.1,8.1,0,0,1,181.7,133.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="88 160 120 128 88 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 160 176 128 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="88 160 120 128 88 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 160 176 128 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_medium />
  <Heroicons.battery_medium class="w-4 h-4" />
  <Heroicons.battery_medium solid />
  <Heroicons.battery_medium mini />
  <Heroicons.battery_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="164" x2="64" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="164" x2="100" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8Z"/><rect x="56" y="80" width="72" height="96" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chats_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chats_circle />
  <Heroicons.chats_circle class="w-4 h-4" />
  <Heroicons.chats_circle solid />
  <Heroicons.chats_circle mini />
  <Heroicons.chats_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chats_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M34.1,140.7a72.1,72.1,0,1,1,25.2,25.2h0L34.4,173a6,6,0,0,1-7.4-7.4l7.1-24.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M34.1,140.7a72.1,72.1,0,1,1,25.2,25.2h0L34.4,173a6,6,0,0,1-7.4-7.4l7.1-24.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6h0A70.2,70.2,0,0,1,168,104a72,72,0,0,1-72,72Z" opacity="0.2"/><path d="M34.1,140.7a72.1,72.1,0,1,1,25.2,25.2h0L34.4,173a6,6,0,0,1-7.4-7.4l7.1-24.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M230.5,189.8A80,80,0,0,0,169.6,72.6,80,80,0,1,0,25.5,141.8l-6.2,21.6a13.9,13.9,0,0,0,17.3,17.3l21.6-6.2a80.8,80.8,0,0,0,28.2,8.9,80,80,0,0,0,111.4,39.1l21.6,6.2a13.9,13.9,0,0,0,17.3-17.3Zm-15.4-5.1a7.6,7.6,0,0,0-.9,6.2l6.2,21.5-21.5-6.2a7.6,7.6,0,0,0-6.2.9,64.2,64.2,0,0,1-88.4-23.5A80.2,80.2,0,0,0,176,104a83.6,83.6,0,0,0-1.3-14.3A64,64,0,0,1,224,152,64.8,64.8,0,0,1,215.1,184.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M34.1,140.7a72.1,72.1,0,1,1,25.2,25.2h0L34.4,173a6,6,0,0,1-7.4-7.4l7.1-24.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M34.1,140.7a72.1,72.1,0,1,1,25.2,25.2h0L34.4,173a6,6,0,0,1-7.4-7.4l7.1-24.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.1,175.9a71.9,71.9,0,0,0,104.6,38h0l24.9,7.1a6,6,0,0,0,7.4-7.4l-7.1-24.9h0a71.9,71.9,0,0,0-58-108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_nonbinary` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_nonbinary />
  <Heroicons.gender_nonbinary class="w-4 h-4" />
  <Heroicons.gender_nonbinary solid />
  <Heroicons.gender_nonbinary mini />
  <Heroicons.gender_nonbinary outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_nonbinary(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="164" r="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="163.7" y1="68" x2="92.3" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92.3" y1="68" x2="163.7" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="164" r="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="163.7" y1="64" x2="92.3" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="92.3" y1="64" x2="163.7" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="96" x2="128" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="164" r="68" opacity="0.2"/><circle cx="128" cy="164" r="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="163.7" y1="68" x2="92.3" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92.3" y1="68" x2="163.7" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,88.4V59l23.3,15.6a7.2,7.2,0,0,0,4.4,1.4,8,8,0,0,0,4.5-14.6L142.3,44l25.9-17.4a8,8,0,1,0-8.9-13.2L128,34.4l-31.3-21a8,8,0,1,0-8.9,13.2L113.7,44,87.8,61.4A8,8,0,0,0,92.3,76a7.2,7.2,0,0,0,4.4-1.4L120,59V88.4a76,76,0,1,0,16,0ZM128,224a60,60,0,1,1,60-60A60,60,0,0,1,128,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="164" r="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="163.7" y1="68" x2="92.3" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="92.3" y1="68" x2="163.7" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="164" r="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="163.7" y1="68" x2="92.3" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="92.3" y1="68" x2="163.7" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_plus />
  <Heroicons.selection_plus class="w-4 h-4" />
  <Heroicons.selection_plus solid />
  <Heroicons.selection_plus mini />
  <Heroicons.selection_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="48" x2="116" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="208" x2="140" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,48h20a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="140" x2="208" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="116" x2="48" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,208H56a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,48H56a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="180" x2="208" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="208" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="48" x2="116" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="208" x2="140" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,48h20a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="140" x2="208" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="116" x2="48" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,208H56a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,48H56a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="180" x2="208" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="236" y1="208" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="48" x2="116" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="208" x2="140" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,48h20a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="140" x2="208" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="116" x2="48" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,208H56a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,48H56a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="180" x2="208" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="208" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,48a8,8,0,0,1-8,8H116a8,8,0,0,1,0-16h24A8,8,0,0,1,148,48Zm-8,152H116a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16ZM180,56h20V76a8,8,0,0,0,16,0V56a16,16,0,0,0-16-16H180a8,8,0,0,0,0,16Zm28,52a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V116A8,8,0,0,0,208,108ZM48,148a8,8,0,0,0,8-8V116a8,8,0,0,0-16,0v24A8,8,0,0,0,48,148Zm28,52H56V180a8,8,0,0,0-16,0v20a16,16,0,0,0,16,16H76a8,8,0,0,0,0-16ZM76,40H56A16,16,0,0,0,40,56V76a8,8,0,0,0,16,0V56H76a8,8,0,0,0,0-16ZM236,200H216V180a8,8,0,0,0-16,0v20H180a8,8,0,0,0,0,16h20v20a8,8,0,0,0,16,0V216h20a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="48" x2="116" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="116" y1="208" x2="140" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M180,48h20a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="140" x2="208" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="116" x2="48" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,208H56a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,48H56a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="180" x2="208" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="236" y1="208" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="48" x2="116" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="116" y1="208" x2="140" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M180,48h20a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="140" x2="208" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="116" x2="48" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,208H56a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,48H56a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="180" x2="208" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="236" y1="208" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `share` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.share />
  <Heroicons.share class="w-4 h-4" />
  <Heroicons.share solid />
  <Heroicons.share mini />
  <Heroicons.share outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def share(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,216H40a8,8,0,0,1-8-8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M75,176a96.1,96.1,0,0,1,93-72h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M192,216H40a8,8,0,0,1-8-8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M75,176a96.1,96.1,0,0,1,93-72h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,216H40a8,8,0,0,1-8-8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M75,176a96.1,96.1,0,0,1,93-72h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,109.7l-48,48A8.3,8.3,0,0,1,176,160a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,152V112a87.9,87.9,0,0,0-85.2,66,8.1,8.1,0,0,1-7.8,6l-2-.3a8,8,0,0,1-5.7-9.7A103.9,103.9,0,0,1,168,96V56a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,229.7,109.7ZM192,208H40V88a8,8,0,0,0-16,0V208a16,16,0,0,0,16,16H192a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M192,216H40a8,8,0,0,1-8-8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M75,176a96.1,96.1,0,0,1,93-72h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M192,216H40a8,8,0,0,1-8-8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M75,176a96.1,96.1,0,0,1,93-72h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_rectangle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_rectangle />
  <Heroicons.user_rectangle class="w-4 h-4" />
  <Heroicons.user_rectangle solid />
  <Heroicons.user_rectangle mini />
  <Heroicons.user_rectangle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_rectangle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60.1,208a72,72,0,0,1,135.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.5,208a72,72,0,0,1,129,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H60.1A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,67.9,48H216a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60.1,208a72,72,0,0,1,135.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="44"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H201.3a80.2,80.2,0,0,0-32-36.5,59.9,59.9,0,0,1-82.6,0,80.2,80.2,0,0,0-32,36.5H40V56H216V200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60.1,208a72,72,0,0,1,135.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60.1,208a72,72,0,0,1,135.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `database` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.database />
  <Heroicons.database class="w-4 h-4" />
  <Heroicons.database solid />
  <Heroicons.database mini />
  <Heroicons.database outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def database(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="80" rx="88" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,80v48c0,26.5,39.4,48,88,48s88-21.5,88-48V80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,128v48c0,26.5,39.4,48,88,48s88-21.5,88-48V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="80" rx="88" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,80v48c0,26.5,39.4,48,88,48s88-21.5,88-48V80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,128v48c0,26.5,39.4,48,88,48s88-21.5,88-48V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="80" rx="88" ry="48" opacity="0.2"/><ellipse cx="128" cy="80" rx="88" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,80v48c0,26.5,39.4,48,88,48s88-21.5,88-48V80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,128v48c0,26.5,39.4,48,88,48s88-21.5,88-48V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24C74.2,24,32,48.6,32,80v96c0,31.4,42.2,56,96,56s96-24.6,96-56V80C224,48.6,181.8,24,128,24Zm80,104c0,9.6-7.9,19.4-21.6,26.9C170.9,163.4,150.2,168,128,168s-42.9-4.6-58.4-13.1C55.9,147.4,48,137.6,48,128V111.4C65.1,126.3,94.2,136,128,136s62.9-9.7,80-24.6Zm-21.6,74.9C170.9,211.4,150.2,216,128,216s-42.9-4.6-58.4-13.1C55.9,195.4,48,185.6,48,176V159.4C65.1,174.3,94.2,184,128,184s62.9-9.7,80-24.6V176C208,185.6,200.1,195.4,186.4,202.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="80" rx="88" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,80v48c0,26.5,39.4,48,88,48s88-21.5,88-48V80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,128v48c0,26.5,39.4,48,88,48s88-21.5,88-48V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="80" rx="88" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,80v48c0,26.5,39.4,48,88,48s88-21.5,88-48V80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,128v48c0,26.5,39.4,48,88,48s88-21.5,88-48V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_align_center` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_align_center />
  <Heroicons.text_align_center class="w-4 h-4" />
  <Heroicons.text_align_center solid />
  <Heroicons.text_align_center mini />
  <Heroicons.text_align_center outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_align_center(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="108" x2="192" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="188" x2="192" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="108" x2="192" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="188" x2="192" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="108" x2="192" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="188" x2="192" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,76H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M64,100a8,8,0,0,0,0,16H192a8,8,0,0,0,0-16Z"/><path d="M216,140H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M192,180H64a8,8,0,0,0,0,16H192a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="108" x2="192" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="188" x2="192" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="108" x2="192" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="188" x2="192" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_warning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_warning />
  <Heroicons.shield_warning class="w-4 h-4" />
  <Heroicons.shield_warning solid />
  <Heroicons.shield_warning mini />
  <Heroicons.shield_warning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_warning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="172" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a14.3,14.3,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40ZM120,96a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paint_brush_broad` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paint_brush_broad />
  <Heroicons.paint_brush_broad class="w-4 h-4" />
  <Heroicons.paint_brush_broad solid />
  <Heroicons.paint_brush_broad mini />
  <Heroicons.paint_brush_broad outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paint_brush_broad(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M102.8,152H56a16,16,0,0,1-16-16V64A32,32,0,0,1,72,32H216V136a16,16,0,0,1-16,16H153.2a8,8,0,0,0-7.9,9.1L152,208a24,24,0,0,1-48,0l6.7-46.9A8,8,0,0,0,102.8,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="32" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="32" x2="176" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M156.6,152H200a16,16,0,0,0,16-16V32H72A32,32,0,0,0,40,64v72a16,16,0,0,0,16,16H99.4a8,8,0,0,1,8,8.6L104,208a24,24,0,0,0,48,0l-3.4-47.4A8,8,0,0,1,156.6,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,112H216v24a16,16,0,0,1-16,16H153.2a8,8,0,0,0-7.9,9.1L152,208a24,24,0,0,1-48,0l6.7-46.9a8,8,0,0,0-7.9-9.1H56a16,16,0,0,1-16-16Z" opacity="0.2"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M102.8,152H56a16,16,0,0,1-16-16V64A32,32,0,0,1,72,32H216V136a16,16,0,0,1-16,16H153.2a8,8,0,0,0-7.9,9.1L152,208a24,24,0,0,1-48,0l6.7-46.9A8,8,0,0,0,102.8,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="32" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,24H72A40,40,0,0,0,32,64v72a24.1,24.1,0,0,0,24,24h46.8l-6.7,46.9A3.7,3.7,0,0,0,96,208a32,32,0,0,0,64,0,3.7,3.7,0,0,0-.1-1.1L153.2,160H200a24.1,24.1,0,0,0,24-24V32A8,8,0,0,0,216,24ZM72,40H176V80a8,8,0,0,0,16,0V40h16v64H48V64A24.1,24.1,0,0,1,72,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M102.8,152H56a16,16,0,0,1-16-16V64A32,32,0,0,1,72,32H216V136a16,16,0,0,1-16,16H153.2a8,8,0,0,0-7.9,9.1L152,208a24,24,0,0,1-48,0l6.7-46.9A8,8,0,0,0,102.8,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="32" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M102.8,152H56a16,16,0,0,1-16-16V64A32,32,0,0,1,72,32H216V136a16,16,0,0,1-16,16H153.2a8,8,0,0,0-7.9,9.1L152,208a24,24,0,0,1-48,0l6.7-46.9A8,8,0,0,0,102.8,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="32" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chats_teardrop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chats_teardrop />
  <Heroicons.chats_teardrop class="w-4 h-4" />
  <Heroicons.chats_teardrop solid />
  <Heroicons.chats_teardrop mini />
  <Heroicons.chats_teardrop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chats_teardrop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,176H30a6,6,0,0,1-6-6V104A72,72,0,0,1,96,32h0a72,72,0,0,1,72,72h0A72,72,0,0,1,96,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.1,176A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,176H30a6,6,0,0,1-6-6V104A72,72,0,0,1,96,32h0a72,72,0,0,1,72,72h0A72,72,0,0,1,96,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92.1,176A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M163.9,80.1A70.2,70.2,0,0,1,168,104h0a72,72,0,0,1-72,72H92.1A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9Z" opacity="0.2"/><path d="M96,176H30a6,6,0,0,1-6-6V104A72,72,0,0,1,96,32h0a72,72,0,0,1,72,72h0A72,72,0,0,1,96,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.1,176A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M169.6,72.6A80,80,0,0,0,16,104v66a14,14,0,0,0,14,14H86.7A80.2,80.2,0,0,0,160,232h66a14,14,0,0,0,14-14V152A79.8,79.8,0,0,0,169.6,72.6ZM224,216H160a64.2,64.2,0,0,1-55.7-32.4A80.2,80.2,0,0,0,176,104a83.6,83.6,0,0,0-1.3-14.3A64,64,0,0,1,224,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,176H30a6,6,0,0,1-6-6V104A72,72,0,0,1,96,32h0a72,72,0,0,1,72,72h0A72,72,0,0,1,96,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.1,176A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,176H30a6,6,0,0,1-6-6V104A72,72,0,0,1,96,32h0a72,72,0,0,1,72,72h0A72,72,0,0,1,96,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.1,176A72,72,0,0,0,160,224h66a6,6,0,0,0,6-6V152a71.9,71.9,0,0,0-68.1-71.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `minus_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.minus_circle />
  <Heroicons.minus_circle class="w-4 h-4" />
  <Heroicons.minus_circle solid />
  <Heroicons.minus_circle mini />
  <Heroicons.minus_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def minus_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm40,112H88a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rug` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rug />
  <Heroicons.rug class="w-4 h-4" />
  <Heroicons.rug solid />
  <Heroicons.rug mini />
  <Heroicons.rug outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rug(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="48" width="144" height="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="48" x2="56" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="48" x2="200" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="232" x2="56" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="232" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="48" x2="152" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="232" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="232" x2="200" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 88 104 128 128 168 152 128 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="48" width="144" height="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="48" x2="56" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="48" x2="200" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="232" x2="56" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="232" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="48" x2="152" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="232" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="232" x2="200" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="128 88 104 128 128 168 152 128 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48V208H200V48Zm72,120-24-40,24-40,24,40Z" opacity="0.2"/><rect x="56" y="48" width="144" height="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="48" x2="56" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="48" x2="200" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="232" x2="56" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="232" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="48" x2="152" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="232" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="232" x2="200" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 88 104 128 128 168 152 128 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,16a8,8,0,0,0-8,8V40H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H64V24a8,8,0,0,0-16,0V232a8,8,0,0,0,16,0V216H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V24A8,8,0,0,0,200,16ZM64,56H192V200H64Zm57.1,116.1-24-40a8,8,0,0,1,0-8.2l24-40a8.1,8.1,0,0,1,13.8,0l24,40a8,8,0,0,1,0,8.2l-24,40a8.1,8.1,0,0,1-13.8,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="48" width="144" height="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="48" x2="56" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="48" x2="200" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="232" x2="56" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="232" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="48" x2="152" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="232" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="232" x2="200" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="128 88 104 128 128 168 152 128 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="48" width="144" height="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="48" x2="56" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="48" x2="200" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="232" x2="56" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="232" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="48" x2="152" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="232" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="232" x2="200" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="128 88 104 128 128 168 152 128 128 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `briefcase` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.briefcase />
  <Heroicons.briefcase class="w-4 h-4" />
  <Heroicons.briefcase solid />
  <Heroicons.briefcase mini />
  <Heroicons.briefcase outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def briefcase(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,126.3A191.3,191.3,0,0,1,128,152a190.3,190.3,0,0,1-96-25.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="120" x2="140" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="68" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,68V48a16,16,0,0,0-16-16H104A16,16,0,0,0,88,48V68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,122.3A191.3,191.3,0,0,1,128,148a190.3,190.3,0,0,1-96-25.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="112" x2="140" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,152a190.3,190.3,0,0,1-96-25.7V208a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V126.3A191.3,191.3,0,0,1,128,152Z" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,126.3A191.3,191.3,0,0,1,128,152a190.3,190.3,0,0,1-96-25.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="120" x2="140" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H176V56a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,56v8H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM96,56a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96ZM216,80v41.6A183.6,183.6,0,0,1,128,144a183.6,183.6,0,0,1-88-22.4V80ZM108,120a8,8,0,0,1,8-8h24a8,8,0,0,1,0,16H116A8,8,0,0,1,108,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,126.3A191.3,191.3,0,0,1,128,152a190.3,190.3,0,0,1-96-25.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="116" y1="120" x2="140" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,126.3A191.3,191.3,0,0,1,128,152a190.3,190.3,0,0,1-96-25.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="116" y1="120" x2="140" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplay` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplay />
  <Heroicons.airplay class="w-4 h-4" />
  <Heroicons.airplay solid />
  <Heroicons.airplay mini />
  <Heroicons.airplay outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplay(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 176 216 80 216 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,192H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16V176a16,16,0,0,1-16,16H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 176 216 80 216 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,192a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16V176a16,16,0,0,1-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,48H48A16,16,0,0,0,32,64V176a16,16,0,0,0,16,16h52.6L128,160l27.4,32H208a16,16,0,0,0,16-16V64A16,16,0,0,0,208,48Z" opacity="0.2"/><polygon points="128 160 176 216 80 216 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,192H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16V176a16,16,0,0,1-16,16H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M182.1,210.8A8,8,0,0,1,176,224H80a8,8,0,0,1-6.1-13.2l48-56a8,8,0,0,1,12.2,0ZM208,40H48A23.9,23.9,0,0,0,24,64V176a23.9,23.9,0,0,0,24,24H60.3a4.1,4.1,0,0,0,3-1.4l46.5-54.2a23.9,23.9,0,0,1,36.4,0l46.5,54.2a4.1,4.1,0,0,0,3,1.4H208a23.9,23.9,0,0,0,24-24V64A23.9,23.9,0,0,0,208,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 176 216 80 216 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,192H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16V176a16,16,0,0,1-16,16H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 176 216 80 216 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,192H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16V176a16,16,0,0,1-16,16H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lamp` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lamp />
  <Heroicons.lamp class="w-4 h-4" />
  <Heroicons.lamp solid />
  <Heroicons.lamp mini />
  <Heroicons.lamp outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lamp(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="216" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="152" x2="200" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="152" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="216" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="152" x2="200" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" opacity="0.2"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="216" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="152" x2="200" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.2,152.8a15.8,15.8,0,0,1-13.3,7.2H208v32a8,8,0,0,1-16,0V160H136v48h24a8,8,0,0,1,0,16H96a8,8,0,0,1,0-16h24V160H28.1a16.1,16.1,0,0,1-14.7-22.3l41.2-96A15.9,15.9,0,0,1,69.3,32H186.7a15.9,15.9,0,0,1,14.7,9.7l41.2,96A15.9,15.9,0,0,1,241.2,152.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="152" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="216" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="152" x2="200" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.3,40H186.7a8.1,8.1,0,0,1,7.4,4.8l41.1,96a8,8,0,0,1-7.3,11.2H28.1a8,8,0,0,1-7.3-11.2l41.1-96A8.1,8.1,0,0,1,69.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="152" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="216" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="152" x2="200" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_arc_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_arc_right />
  <Heroicons.arrow_arc_right class="w-4 h-4" />
  <Heroicons.arrow_arc_right solid />
  <Heroicons.arrow_arc_right mini />
  <Heroicons.arrow_arc_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_arc_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="163.9 148.1 227.9 148.1 227.9 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184a96,96,0,0,1,163.9-67.9l32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="163.9 148.1 227.9 148.1 227.9 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,184a96,96,0,0,1,163.9-67.9l32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="163.9 148.1 227.9 148.1 227.9 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184a96,96,0,0,1,163.9-67.9l32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235.9,84.1v64a8,8,0,0,1-8,8h-64a7.9,7.9,0,0,1-7.4-4.9,8,8,0,0,1,1.7-8.7l26.1-26.1A88,88,0,0,0,40,184a8,8,0,0,1-16,0A104.1,104.1,0,0,1,128,80a103.3,103.3,0,0,1,67.7,25l26.5-26.5a8,8,0,0,1,13.7,5.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="163.9 148.1 227.9 148.1 227.9 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,184a96,96,0,0,1,163.9-67.9l32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="163.9 148.1 227.9 148.1 227.9 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,184a96,96,0,0,1,163.9-67.9l32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_simple_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_simple_medium />
  <Heroicons.hourglass_simple_medium class="w-4 h-4" />
  <Heroicons.hourglass_simple_medium solid />
  <Heroicons.hourglass_simple_medium mini />
  <Heroicons.hourglass_simple_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_simple_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 128 176 80 80 80 128 128" opacity="0.2"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,128l34.4-34.3h0L208,59.3A16,16,0,0,0,196.7,32H59.3A16,16,0,0,0,48,59.3L116.7,128,48,196.7A16,16,0,0,0,59.3,224H196.7A16,16,0,0,0,208,196.7Zm57.4-80-24,24H83.3l-24-24ZM59.3,208,120,147.3V168a8,8,0,0,0,16,0V147.3L196.7,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `buildings` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.buildings />
  <Heroicons.buildings class="w-4 h-4" />
  <Heroicons.buildings solid />
  <Heroicons.buildings mini />
  <Heroicons.buildings outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def buildings(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,216V104a8,8,0,0,0-8-8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="136" x2="112" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="192" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="136" x2="192" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,216V104a8,8,0,0,0-8-8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="136" x2="108" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="176" x2="188" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="136" x2="188" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" opacity="0.2"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,216V104a8,8,0,0,0-8-8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="136" x2="112" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="192" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="136" x2="192" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,208h-8V104a16,16,0,0,0-16-16H152V40a16,16,0,0,0-16-16H40A16,16,0,0,0,24,40V208H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM120,136a8,8,0,0,1-8,8H80a8,8,0,0,1,0-16h32A8,8,0,0,1,120,136ZM64,64H96a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16Zm0,104H96a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16Zm88-64h64V208H152Z"/><path d="M192,168H176a8,8,0,0,0,0,16h16a8,8,0,0,0,0-16Z"/><path d="M176,144h16a8,8,0,0,0,0-16H176a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,216V104a8,8,0,0,0-8-8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="136" x2="112" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="176" x2="192" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="136" x2="192" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M144,216V40a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,216V104a8,8,0,0,0-8-8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="136" x2="112" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="176" x2="192" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="136" x2="192" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `music_note_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.music_note_simple />
  <Heroicons.music_note_simple class="w-4 h-4" />
  <Heroicons.music_note_simple solid />
  <Heroicons.music_note_simple mini />
  <Heroicons.music_note_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def music_note_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 184 128 40 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 184 128 40 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" opacity="0.2"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 184 128 40 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,56.3l-80-24a8.2,8.2,0,0,0-7.1,1.3A8.1,8.1,0,0,0,120,40V148.3A47.4,47.4,0,0,0,88,136a48,48,0,1,0,48,48V50.8l69.7,20.9a8,8,0,1,0,4.6-15.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 184 128 40 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="184" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 184 128 40 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `check` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.check />
  <Heroicons.check class="w-4 h-4" />
  <Heroicons.check solid />
  <Heroicons.check mini />
  <Heroicons.check outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def check(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 72 104 184 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 72 104 184 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 72 104 184 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,192a8.5,8.5,0,0,1-5.7-2.3l-56-56a8.1,8.1,0,0,1,11.4-11.4L104,172.7,210.3,66.3a8.1,8.1,0,0,1,11.4,11.4l-112,112A8.5,8.5,0,0,1,104,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 72 104 184 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 72 104 184 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `book` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.book />
  <Heroicons.book class="w-4 h-4" />
  <Heroicons.book solid />
  <Heroicons.book mini />
  <Heroicons.book outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def book(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,208a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 208 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" opacity="0.2"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,32V192a8,8,0,0,1-8,8H72a16,16,0,0,0-16,16H192a8,8,0,0,1,0,16H48a8,8,0,0,1-8-8V56A32.1,32.1,0,0,1,72,24H208A8,8,0,0,1,216,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rectangle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rectangle />
  <Heroicons.rectangle class="w-4 h-4" />
  <Heroicons.rectangle solid />
  <Heroicons.rectangle mini />
  <Heroicons.rectangle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rectangle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="40" width="208" height="176" rx="16"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `reddit_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.reddit_logo />
  <Heroicons.reddit_logo class="w-4 h-4" />
  <Heroicons.reddit_logo solid />
  <Heroicons.reddit_logo mini />
  <Heroicons.reddit_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def reddit_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="32" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161,176a71.9,71.9,0,0,1-66,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 72 136 24 172.2 29.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.4,89.9C77.7,78.7,101.7,72,128,72s50.3,6.7,68.6,17.9h0a24,24,0,1,1,31.6,34.8h0A50.7,50.7,0,0,1,232,144c0,39.8-46.6,72-104,72S24,183.8,24,144a50.7,50.7,0,0,1,3.8-19.3h0A24,24,0,1,1,59.4,89.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="132" r="16"/><circle cx="168" cy="132" r="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="32" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M161,172a71.9,71.9,0,0,1-66,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.4,89.9C77.7,78.7,101.7,72,128,72s50.3,6.7,68.6,17.9h0a24,24,0,1,1,31.6,34.8h0A50.7,50.7,0,0,1,232,144c0,39.8-46.6,72-104,72S24,183.8,24,144a50.7,50.7,0,0,1,3.8-19.3h0A24,24,0,1,1,59.4,89.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 72 136 24 176.1 30.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="88" cy="128" r="20"/><circle cx="168" cy="128" r="20"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,104a24,24,0,0,0-43.4-14.1h0C178.3,78.7,154.3,72,128,72S77.7,78.7,59.4,89.9h0a24,24,0,1,0-31.6,34.8h0A50.7,50.7,0,0,0,24,144c0,39.8,46.6,72,104,72s104-32.2,104-72a50.7,50.7,0,0,0-3.8-19.3h0A24,24,0,0,0,240,104Z" opacity="0.2"/><circle cx="188" cy="32" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161,176a71.9,71.9,0,0,1-66,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 72 136 24 172.2 29.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.4,89.9C77.7,78.7,101.7,72,128,72s50.3,6.7,68.6,17.9h0a24,24,0,1,1,31.6,34.8h0A50.7,50.7,0,0,1,232,144c0,39.8-46.6,72-104,72S24,183.8,24,144a50.7,50.7,0,0,1,3.8-19.3h0A24,24,0,1,1,59.4,89.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="132" r="16"/><circle cx="168" cy="132" r="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,104a32,32,0,0,0-52.9-24.2c-16.8-8.9-36.8-14.3-57.7-15.5l5.2-31.2,21.8,3.4a24.2,24.2,0,1,0,2.5-15.8l-29.7-4.6a8,8,0,0,0-9.1,6.6l-6.9,41.5c-21.8.9-42.8,6.3-60.3,15.6a32,32,0,0,0-42.6,47.7A61.4,61.4,0,0,0,16,144c0,21.9,12,42.4,33.9,57.5S98.6,224,128,224s57.1-8,78.1-22.5S240,165.9,240,144a60.1,60.1,0,0,0-2.3-16.4A32.4,32.4,0,0,0,248,104ZM72,132a16,16,0,1,1,16,16A16,16,0,0,1,72,132Zm92.7,51.1a80.1,80.1,0,0,1-73.4,0,8,8,0,0,1,7.3-14.2,64.2,64.2,0,0,0,58.8,0,8,8,0,0,1,7.3,14.2ZM168,148a16,16,0,1,1,16-16A16,16,0,0,1,168,148Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="32" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M161,176a71.9,71.9,0,0,1-66,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 72 136 24 172.2 29.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59.4,89.9C77.7,78.7,101.7,72,128,72s50.3,6.7,68.6,17.9h0a24,24,0,1,1,31.6,34.8h0A50.7,50.7,0,0,1,232,144c0,39.8-46.6,72-104,72S24,183.8,24,144a50.7,50.7,0,0,1,3.8-19.3h0A24,24,0,1,1,59.4,89.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="88" cy="132" r="14"/><circle cx="168" cy="132" r="14"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="32" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M161,176a71.9,71.9,0,0,1-66,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 72 136 24 172.2 29.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59.4,89.9C77.7,78.7,101.7,72,128,72s50.3,6.7,68.6,17.9h0a24,24,0,1,1,31.6,34.8h0A50.7,50.7,0,0,1,232,144c0,39.8-46.6,72-104,72S24,183.8,24,144a50.7,50.7,0,0,1,3.8-19.3h0A24,24,0,1,1,59.4,89.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="88" cy="132" r="12"/><circle cx="168" cy="132" r="12"/>|
        }
      )
    )
  end

  @doc """
  Renders the `desktop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.desktop />
  <Heroicons.desktop class="w-4 h-4" />
  <Heroicons.desktop solid />
  <Heroicons.desktop mini />
  <Heroicons.desktop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def desktop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="140" rx="16" transform="translate(256 236) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="148" x2="224" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,152V64A16,16,0,0,1,48,48H208a16,16,0,0,1,16,16v88Z" opacity="0.2"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A24.1,24.1,0,0,0,24,64V176a24.1,24.1,0,0,0,24,24h72v16H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16H136V200h72a24.1,24.1,0,0,0,24-24V64A24.1,24.1,0,0,0,208,40Zm0,144H48a8,8,0,0,1-8-8V160H216v16A8,8,0,0,1,208,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_outdent` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_outdent />
  <Heroicons.text_outdent class="w-4 h-4" />
  <Heroicons.text_outdent solid />
  <Heroicons.text_outdent mini />
  <Heroicons.text_outdent outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_outdent(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 56 32 96 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="72 56 32 96 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 56 32 96 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H120a8,8,0,0,1,0-16h96A8,8,0,0,1,224,128ZM120,72h96a8,8,0,0,0,0-16H120a8,8,0,0,0,0,16Zm96,112H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM72,144a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,80,136V56a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-40,40a8.1,8.1,0,0,0,0,11.4l40,40A8.3,8.3,0,0,0,72,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="72 56 32 96 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="72 56 32 96 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shower` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shower />
  <Heroicons.shower class="w-4 h-4" />
  <Heroicons.shower solid />
  <Heroicons.shower mini />
  <Heroicons.shower outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shower(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="228" r="12"/><circle cx="88" cy="200" r="12"/><circle cx="28" cy="196" r="12"/><circle cx="56" cy="168" r="12"/><path d="M248,40H219.3a7.9,7.9,0,0,0-5.6,2.3L184,72,55.3,93.4A8,8,0,0,0,51,107l98,98a8,8,0,0,0,13.6-4.3L184,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="228" r="16"/><circle cx="92" cy="196" r="16"/><circle cx="28" cy="196" r="16"/><circle cx="60" cy="164" r="16"/><path d="M244,40H219.3a7.9,7.9,0,0,0-5.6,2.3L184,72,64.4,86.1a8,8,0,0,0-4.7,13.6l96.6,96.6a8,8,0,0,0,13.6-4.7L184,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,72,55.3,93.4A8,8,0,0,0,51,107l98,98a8,8,0,0,0,13.6-4.3Z" opacity="0.2"/><circle cx="60" cy="228" r="12"/><circle cx="88" cy="200" r="12"/><circle cx="28" cy="196" r="12"/><circle cx="56" cy="168" r="12"/><path d="M248,40H219.3a7.9,7.9,0,0,0-5.6,2.3L184,72,55.3,93.4A8,8,0,0,0,51,107l98,98a8,8,0,0,0,13.6-4.3L184,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,228a12,12,0,1,1-12-12A12,12,0,0,1,72,228Zm16-40a12,12,0,1,0,12,12A12,12,0,0,0,88,188Zm-60-4a12,12,0,1,0,12,12A12,12,0,0,0,28,184Zm40-16a12,12,0,1,0-12,12A12,12,0,0,0,68,168ZM248,32H219.3A15.9,15.9,0,0,0,208,36.7L180.2,64.5,54,85.6A15.7,15.7,0,0,0,41.4,96.5a16,16,0,0,0,3.9,16.1l98.1,98.1a16,16,0,0,0,11.2,4.7,16.2,16.2,0,0,0,4.9-.8A15.7,15.7,0,0,0,170.4,202L191.5,75.8h0L219.3,48H248a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="228" r="10"/><circle cx="88" cy="200" r="10"/><circle cx="28" cy="196" r="10"/><circle cx="56" cy="168" r="10"/><path d="M248,40H219.3a7.9,7.9,0,0,0-5.6,2.3L184,72,55.3,93.4A8,8,0,0,0,51,107l98,98a8,8,0,0,0,13.6-4.3L184,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="228" r="8"/><circle cx="88" cy="200" r="8"/><circle cx="28" cy="196" r="8"/><circle cx="56" cy="168" r="8"/><path d="M248,40H219.3a7.9,7.9,0,0,0-5.6,2.3L184,72,55.3,93.4A8,8,0,0,0,51,107l98,98a8,8,0,0,0,13.6-4.3L184,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `map_pin` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.map_pin />
  <Heroicons.map_pin class="w-4 h-4" />
  <Heroicons.map_pin solid />
  <Heroicons.map_pin mini />
  <Heroicons.map_pin outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def map_pin(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z" opacity="0.2"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,16a88.1,88.1,0,0,0-88,88c0,75.3,80,132.2,83.4,134.6a8.3,8.3,0,0,0,9.2,0C136,236.2,216,179.3,216,104A88.1,88.1,0,0,0,128,16Zm0,56a32,32,0,1,1-32,32A32,32,0,0,1,128,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rss` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rss />
  <Heroicons.rss class="w-4 h-4" />
  <Heroicons.rss solid />
  <Heroicons.rss mini />
  <Heroicons.rss outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rss(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,144a63.8,63.8,0,0,1,64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,96A112,112,0,0,1,160,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,48A159.1,159.1,0,0,1,161.1,94.9,159.1,159.1,0,0,1,208,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,144a64,64,0,0,1,64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,96A112,112,0,0,1,160,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,48A159.1,159.1,0,0,1,161.1,94.9,159.1,159.1,0,0,1,208,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="204" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,144a64,64,0,0,1,64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,96A112,112,0,0,1,160,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,48A159.1,159.1,0,0,1,161.1,94.9,159.1,159.1,0,0,1,208,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M98.9,157.1A71.6,71.6,0,0,1,120,208a8,8,0,0,1-16,0,56,56,0,0,0-56-56,8,8,0,0,1,0-16A71.6,71.6,0,0,1,98.9,157.1ZM48,88a8,8,0,0,0,0,16,102.9,102.9,0,0,1,73.5,30.5A102.9,102.9,0,0,1,152,208a8,8,0,0,0,16,0,119.2,119.2,0,0,0-35.2-84.9A119.3,119.3,0,0,0,48,88Zm118.8,1.2A166.9,166.9,0,0,0,48,40a8,8,0,0,0,0,16,151.1,151.1,0,0,1,107.5,44.5A151.1,151.1,0,0,1,200,208a8,8,0,0,0,16,0A166.9,166.9,0,0,0,166.8,89.2ZM52,192a12,12,0,1,0,12,12A12,12,0,0,0,52,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,144a64,64,0,0,1,64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,96A112,112,0,0,1,160,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,48A159.1,159.1,0,0,1,161.1,94.9,159.1,159.1,0,0,1,208,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="52" cy="204" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,144a64,64,0,0,1,64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,96A112,112,0,0,1,160,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,48A159.1,159.1,0,0,1,161.1,94.9,159.1,159.1,0,0,1,208,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="52" cy="204" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_up />
  <Heroicons.arrow_fat_up class="w-4 h-4" />
  <Heroicons.arrow_fat_up solid />
  <Heroicons.arrow_fat_up mini />
  <Heroicons.arrow_fat_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" opacity="0.2"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.4,123.1A8,8,0,0,1,224,128H184v80a16,16,0,0,1-16,16H88a16,16,0,0,1-16-16V128H32a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l96-96a8.1,8.1,0,0,1,11.4,0l96,96A8.4,8.4,0,0,1,231.4,123.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120l96-96,96,96H176v88a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `presentation_chart` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.presentation_chart />
  <Heroicons.presentation_chart class="w-4 h-4" />
  <Heroicons.presentation_chart solid />
  <Heroicons.presentation_chart mini />
  <Heroicons.presentation_chart outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def presentation_chart(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="88" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="92" y1="120" x2="92" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="88" x2="164" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="88" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H136V24a8,8,0,0,0-16,0V40H40A16,16,0,0,0,24,56V176a16,16,0,0,0,16,16H79.4L57.8,219A8,8,0,0,0,64,232a7.8,7.8,0,0,0,6.2-3l29.6-37h56.4l29.6,37a7.8,7.8,0,0,0,6.2,3,8,8,0,0,0,6.2-13l-21.6-27H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM104,144a8,8,0,0,1-16,0V120a8,8,0,0,1,16,0Zm32,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm32,0a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="120" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="88" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="120" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="88" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `function` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.function />
  <Heroicons.function class="w-4 h-4" />
  <Heroicons.function solid />
  <Heroicons.function mini />
  <Heroicons.function outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def function(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,216H85.3a32.1,32.1,0,0,0,31.5-26.3L139.2,66.3A32.1,32.1,0,0,1,170.7,40H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,216H85.3a32.1,32.1,0,0,0,31.5-26.3L139.2,66.3A32.1,32.1,0,0,1,170.7,40H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,216H85.3a32.1,32.1,0,0,0,31.5-26.3L139.2,66.3A32.1,32.1,0,0,1,170.7,40H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40a8,8,0,0,1-8,8H170.7a24,24,0,0,0-23.6,19.7L137.6,120H184a8,8,0,0,1,0,16H134.7l-10.1,55.2A39.9,39.9,0,0,1,85.3,224H56a8,8,0,0,1,0-16H85.3a24,24,0,0,0,23.6-19.7l9.5-52.3H72a8,8,0,0,1,0-16h49.3l10.1-55.2A39.9,39.9,0,0,1,170.7,32H200A8,8,0,0,1,208,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,216H85.3a32.1,32.1,0,0,0,31.5-26.3L139.2,66.3A32.1,32.1,0,0,1,170.7,40H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,216H85.3a32.1,32.1,0,0,0,31.5-26.3L139.2,66.3A32.1,32.1,0,0,1,170.7,40H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `anchor` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.anchor />
  <Heroicons.anchor class="w-4 h-4" />
  <Heroicons.anchor solid />
  <Heroicons.anchor mini />
  <Heroicons.anchor outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def anchor(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,144a48,48,0,0,0,48,48,40,40,0,0,1,40,40,40,40,0,0,1,40-40,48,48,0,0,0,48-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,144a48,48,0,0,0,48,48,40,40,0,0,1,40,40,40,40,0,0,1,40-40,48,48,0,0,0,48-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,144a48,48,0,0,0,48,48,40,40,0,0,1,40,40,40,40,0,0,1,40-40,48,48,0,0,0,48-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136a8,8,0,0,0-8,8,40,40,0,0,1-40,40,47.9,47.9,0,0,0-32,12.3V120h32a8,8,0,0,0,0-16H136V78.8a28,28,0,1,0-16,0V104H88a8,8,0,0,0,0,16h32v76.3A47.9,47.9,0,0,0,88,184a40,40,0,0,1-40-40,8,8,0,0,0-16,0,56,56,0,0,0,56,56,32.1,32.1,0,0,1,32,32,8,8,0,0,0,16,0,32.1,32.1,0,0,1,32-32,56,56,0,0,0,56-56A8,8,0,0,0,216,136ZM116,52a12,12,0,1,1,12,12A12,12,0,0,1,116,52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,144a48,48,0,0,0,48,48,40,40,0,0,1,40,40,40,40,0,0,1,40-40,48,48,0,0,0,48-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="112" x2="168" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,144a48,48,0,0,0,48,48,40,40,0,0,1,40,40,40,40,0,0,1,40-40,48,48,0,0,0,48-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplane` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplane />
  <Heroicons.airplane class="w-4 h-4" />
  <Heroicons.airplane solid />
  <Heroicons.airplane mini />
  <Heroicons.airplane outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplane(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" opacity="0.2"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.2,136v32a7.8,7.8,0,0,1-2.9,6.2,7.9,7.9,0,0,1-6.6,1.6l-70.5-14v26.9l13.5,13.7A7.9,7.9,0,0,1,176,208v24a7.9,7.9,0,0,1-3.5,6.6A8.2,8.2,0,0,1,168,240a8,8,0,0,1-3-.6l-37-14.8L91,239.4a8,8,0,0,1-7.5-.8A7.9,7.9,0,0,1,80,232V208a8.1,8.1,0,0,1,2.3-5.7L96,188.7V161.8l-70.4,14A7.9,7.9,0,0,1,16,168V136a8.2,8.2,0,0,1,4.4-7.2L96,91V48a32,32,0,0,1,64,0V91l75.6,37.8A8.2,8.2,0,0,1,240.2,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216,88,232V200l16-16V152L24,168V136l80-40V48a24,24,0,0,1,48,0V96l80,40v32l-80-16v32L168,200v32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_bottom_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_bottom_simple />
  <Heroicons.align_bottom_simple class="w-4 h-4" />
  <Heroicons.align_bottom_simple solid />
  <Heroicons.align_bottom_simple mini />
  <Heroicons.align_bottom_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_bottom_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="32" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="88" y="32" width="80" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="32" width="80" height="168" rx="8" opacity="0.2"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="32" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,232a8,8,0,0,1-8,8H56a8,8,0,0,1,0-16H200A8,8,0,0,1,208,232ZM96,208h64a16,16,0,0,0,16-16V40a16,16,0,0,0-16-16H96A16,16,0,0,0,80,40V192A16,16,0,0,0,96,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="88" y="32" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="88" y="32" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `floppy_disk_back` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.floppy_disk_back />
  <Heroicons.floppy_disk_back class="w-4 h-4" />
  <Heroicons.floppy_disk_back solid />
  <Heroicons.floppy_disk_back mini />
  <Heroicons.floppy_disk_back outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def floppy_disk_back(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 80 160 80 160 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 80 160 80 160 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48A8,8,0,0,0,208,40ZM128,176a28,28,0,1,1,28-28A28,28,0,0,1,128,176Z" opacity="0.2"/><path d="M40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 80 160 80 160 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H172a4,4,0,0,0-4,4V80a8,8,0,0,1-8,8H96.3A8.2,8.2,0,0,1,88,80.5,8,8,0,0,1,96,72h56V36a4,4,0,0,0-4-4H91.3A15.9,15.9,0,0,0,80,36.7L36.7,80A15.9,15.9,0,0,0,32,91.3V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM128,176a28,28,0,1,1,28-28A28.1,28.1,0,0,1,128,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 80 160 80 160 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,91.3V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H91.3a7.9,7.9,0,0,0-5.6,2.3L42.3,85.7A7.9,7.9,0,0,0,40,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 80 160 80 160 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_female` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_female />
  <Heroicons.gender_female class="w-4 h-4" />
  <Heroicons.gender_female solid />
  <Heroicons.gender_female mini />
  <Heroicons.gender_female outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_female(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="208" x2="168" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="208" x2="168" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" opacity="0.2"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="208" x2="168" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,96a80,80,0,1,0-88,79.6V200H88a8,8,0,0,0,0,16h32v24a8,8,0,0,0,16,0V216h32a8,8,0,0,0,0-16H136V175.6A80.1,80.1,0,0,0,208,96ZM64,96a64,64,0,1,1,64,64A64.1,64.1,0,0,1,64,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="208" x2="168" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="208" x2="168" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calendar_blank` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calendar_blank />
  <Heroicons.calendar_blank class="w-4 h-4" />
  <Heroicons.calendar_blank solid />
  <Heroicons.calendar_blank mini />
  <Heroicons.calendar_blank outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calendar_blank(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="20" x2="176" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="20" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,88H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,48H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list_bullets` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list_bullets />
  <Heroicons.list_bullets class="w-4 h-4" />
  <Heroicons.list_bullets solid />
  <Heroicons.list_bullets mini />
  <Heroicons.list_bullets outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list_bullets(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="44" cy="64" r="12"/><circle cx="44" cy="128" r="12"/><circle cx="44" cy="192" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="44" cy="128" r="16"/><circle cx="44" cy="64" r="16"/><circle cx="44" cy="192" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="44" cy="64" r="12"/><circle cx="44" cy="128" r="12"/><circle cx="44" cy="192" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H88A8,8,0,0,1,80,64Zm136,56H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm0,64H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM44,116a12,12,0,1,0,12,12A12,12,0,0,0,44,116Zm0-64A12,12,0,1,0,56,64,12,12,0,0,0,44,52Zm0,128a12,12,0,1,0,12,12A12,12,0,0,0,44,180Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="44" cy="64" r="10"/><circle cx="44" cy="192" r="10"/><circle cx="44" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="44" cy="128" r="8"/><circle cx="44" cy="64" r="8"/><circle cx="44" cy="192" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chats` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chats />
  <Heroicons.chats class="w-4 h-4" />
  <Heroicons.chats solid />
  <Heroicons.chats mini />
  <Heroicons.chats outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chats(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.6,144,32,176V48a8,8,0,0,1,8-8H168a8,8,0,0,1,8,8v88a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.6,144,32,176V48a8,8,0,0,1,8-8H168a8,8,0,0,1,8,8v88a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176v48a8,8,0,0,1-8,8Z" opacity="0.2"/><path d="M71.6,144,32,176V48a8,8,0,0,1,8-8H168a8,8,0,0,1,8,8v88a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,96a16,16,0,0,0-16-16H184V48a16,16,0,0,0-16-16H40A16,16,0,0,0,24,48V176a7.9,7.9,0,0,0,4.6,7.2,7.8,7.8,0,0,0,8.4-1l35-28.3V184a16,16,0,0,0,16,16h93.6L219,230.2a7.8,7.8,0,0,0,8.4,1A7.9,7.9,0,0,0,232,224Zm-42.6,89.8a7.7,7.7,0,0,0-5-1.8H88V152h80a16,16,0,0,0,16-16V96h32V207.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.6,144,32,176V48a8,8,0,0,1,8-8H168a8,8,0,0,1,8,8v88a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.6,144,32,176V48a8,8,0,0,1,8-8H168a8,8,0,0,1,8,8v88a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,144v40a8,8,0,0,0,8,8h96.4L224,224V96a8,8,0,0,0-8-8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calendar` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calendar />
  <Heroicons.calendar class="w-4 h-4" />
  <Heroicons.calendar solid />
  <Heroicons.calendar mini />
  <Heroicons.calendar outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calendar(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,128h28l-16,20a16,16,0,1,1-11.3,27.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 140 160 128 160 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="20" x2="176" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="20" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,128h28l-16,20a16,16,0,1,1-11.3,27.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 140 164 128 164 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,88H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,128h28l-16,20a16,16,0,1,1-11.3,27.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 140 160 128 160 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM104,188a24.2,24.2,0,0,1-17-7,8,8,0,0,1,0-11.3,7.9,7.9,0,0,1,11.3,0A8.3,8.3,0,0,0,104,172a8,8,0,0,0,0-16h-2.5l-.4-.2h-.3l-.5-.2h-.1l-.6-.4h-.2l-.4-.3h0l-.4-.3-.2-.2-.3-.3a8.6,8.6,0,0,1-1.3-2,5.8,5.8,0,0,1-.6-1.7h0c-.1-.1-.1-.2-.1-.4a.4.4,0,0,0-.1-.3V148h0v-.7c0-.2.1-.3.1-.4v-.4a.6.6,0,0,0,.1-.4c.1-.1.1-.2.1-.4l.2-.3c0-.2,0-.3.1-.4l.2-.4v-.3l.2-.4.2-.3.3-.4.2-.2,5.6-7H92a8,8,0,0,1,0-16h28a8,8,0,0,1,6.2,13l-8.8,11.1A24,24,0,0,1,104,188Zm64-8a8,8,0,0,1-16,0V144l-3.2,2.4a8.1,8.1,0,0,1-11.2-1.6,8,8,0,0,1,1.6-11.2l16-12A8,8,0,0,1,168,128ZM208,80H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,128h28l-16,20a16,16,0,1,1-11.3,27.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 140 160 128 160 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,128h28l-16,20a16,16,0,1,1-11.3,27.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 140 160 128 160 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `address_book` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.address_book />
  <Heroicons.address_book class="w-4 h-4" />
  <Heroicons.address_book solid />
  <Heroicons.address_book mini />
  <Heroicons.address_book outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def address_book(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="136" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="108" x2="56" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="68" x2="56" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="148" x2="56" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="188" x2="56" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,168a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="192" height="160" rx="8" transform="translate(264 -8) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="136" cy="116" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="108" x2="56" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="68" x2="56" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="148" x2="56" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="188" x2="56" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="48" width="192" height="160" rx="8" transform="translate(264 -8) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,167.2a60,60,0,0,1,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="136" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,32H64a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V40A8,8,0,0,0,208,32ZM136,144a32,32,0,1,1,32-32A32,32,0,0,1,136,144Z" opacity="0.2"/><line x1="32" y1="108" x2="56" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="68" x2="56" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="148" x2="56" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="188" x2="56" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,168a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="192" height="160" rx="8" transform="translate(264 -8) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,112a24,24,0,1,1-24-24A24.1,24.1,0,0,1,160,112Zm64-72V216a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V196H32a8,8,0,0,1,0-16H48V156H32a8,8,0,0,1,0-16H48V116H32a8,8,0,0,1,0-16H48V76H32a8,8,0,0,1,0-16H48V40A16,16,0,0,1,64,24H208A16,16,0,0,1,224,40ZM190.4,163.2A67.8,67.8,0,0,0,163,141.5a40,40,0,1,0-54,0,67.8,67.8,0,0,0-27.4,21.7,8,8,0,0,0,1.6,11.2A7.7,7.7,0,0,0,88,176a8,8,0,0,0,6.4-3.2,52,52,0,0,1,83.2,0,8.1,8.1,0,0,0,11.2,1.6A8,8,0,0,0,190.4,163.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="136" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="108" x2="56" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="68" x2="56" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="148" x2="56" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="188" x2="56" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,168a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="48" width="192" height="160" rx="8" transform="translate(264 -8) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="136" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="108" x2="56" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="68" x2="56" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="148" x2="56" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="188" x2="56" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,168a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="48" width="192" height="160" rx="8" transform="translate(264 -8) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_right />
  <Heroicons.arrow_right class="w-4 h-4" />
  <Heroicons.arrow_right solid />
  <Heroicons.arrow_right mini />
  <Heroicons.arrow_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 216 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144 56 216 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 216 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.7,133.7l-72,72A8.3,8.3,0,0,1,144,208a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,136,200V136H40a8,8,0,0,1,0-16h96V56a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l72,72A8.1,8.1,0,0,1,221.7,133.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 56 216 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 56 216 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `voicemail` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.voicemail />
  <Heroicons.voicemail class="w-4 h-4" />
  <Heroicons.voicemail solid />
  <Heroicons.voicemail mini />
  <Heroicons.voicemail outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def voicemail(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="56" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="196" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60" y1="176" x2="196" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="56" cy="128" r="48" opacity="0.2"/><circle cx="200" cy="128" r="48" opacity="0.2"/><circle cx="56" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,72a55.9,55.9,0,0,0-39.1,96H95.1A55.9,55.9,0,1,0,56,184H200a56,56,0,0,0,0-112ZM16,128a40,40,0,1,1,40,40A40,40,0,0,1,16,128Zm184,40a40,40,0,1,1,40-40A40,40,0,0,1,200,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="56" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="200" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="56" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="200" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `infinity` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.infinity />
  <Heroicons.infinity class="w-4 h-4" />
  <Heroicons.infinity solid />
  <Heroicons.infinity mini />
  <Heroicons.infinity outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def infinity(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M106.6,152.1l-8.7,9.8a47.9,47.9,0,1,1,0-67.8l60.2,67.8a47.9,47.9,0,1,0,0-67.8l-8.7,9.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M101.3,158.2l-3.4,3.7a47.9,47.9,0,1,1,0-67.8l60.2,67.8a47.9,47.9,0,1,0,0-67.8l-3.4,3.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M106.6,152.1l-8.7,9.8a47.9,47.9,0,1,1,0-67.8l60.2,67.8a47.9,47.9,0,1,0,0-67.8l-8.7,9.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,128a56,56,0,0,1-95.6,39.6l-.3-.4-60-67.6A39.5,39.5,0,0,0,64,88a40,40,0,1,0,0,80,39.5,39.5,0,0,0,28.1-11.6l8.5-9.6a8,8,0,0,1,12,10.6l-8.7,9.8-.3.4a56,56,0,0,1-79.2,0A56,56,0,0,1,64,72a55.5,55.5,0,0,1,39.6,16.4l.3.4,60,67.6A39.5,39.5,0,0,0,192,168a40,40,0,1,0,0-80,39.5,39.5,0,0,0-28.1,11.6l-8.5,9.6a8,8,0,0,1-12-10.6l8.7-9.8.3-.4A56,56,0,0,1,248,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M106.6,152.1l-8.7,9.8a47.9,47.9,0,1,1,0-67.8l60.2,67.8a47.9,47.9,0,1,0,0-67.8l-8.7,9.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M106.6,152.1l-8.7,9.8a47.9,47.9,0,1,1,0-67.8l60.2,67.8a47.9,47.9,0,1,0,0-67.8l-8.7,9.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_down />
  <Heroicons.arrow_down class="w-4 h-4" />
  <Heroicons.arrow_down solid />
  <Heroicons.arrow_down mini />
  <Heroicons.arrow_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 216 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 144 128 216 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 216 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.7,149.7l-72,72a8.2,8.2,0,0,1-11.4,0l-72-72a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,205.7,149.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 144 128 216 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 144 128 216 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `suitcase_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.suitcase_simple />
  <Heroicons.suitcase_simple class="w-4 h-4" />
  <Heroicons.suitcase_simple solid />
  <Heroicons.suitcase_simple mini />
  <Heroicons.suitcase_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def suitcase_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="160" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="68" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,68V48a16,16,0,0,0-16-16H104A16,16,0,0,0,88,48V68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="160" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,160v48a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V160" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="160" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H176V56a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,56v8H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM96,56a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96ZM216,80v72H40V80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="160" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="160" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `closed_captioning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.closed_captioning />
  <Heroicons.closed_captioning class="w-4 h-4" />
  <Heroicons.closed_captioning solid />
  <Heroicons.closed_captioning mini />
  <Heroicons.closed_captioning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def closed_captioning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M116,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M113,152.8a28.4,28.4,0,0,1-13,3.2,28,28,0,0,1,0-56,28.4,28.4,0,0,1,13,3.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M185,152.8a28.4,28.4,0,0,1-13,3.2,28,28,0,0,1,0-56,28.4,28.4,0,0,1,13,3.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M116,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM96,148a19.8,19.8,0,0,0,14.3-6,8,8,0,0,1,11.4,11.2A35.4,35.4,0,0,1,96,164a36,36,0,0,1,0-72,35.4,35.4,0,0,1,25.7,10.8A8,8,0,0,1,110.3,114,19.8,19.8,0,0,0,96,108a20,20,0,0,0,0,40Zm72,0a19.8,19.8,0,0,0,14.3-6,8,8,0,0,1,11.4,11.2A35.4,35.4,0,0,1,168,164a36,36,0,0,1,0-72,35.4,35.4,0,0,1,25.7,10.8A8,8,0,0,1,182.3,114a19.8,19.8,0,0,0-14.3-6,20,20,0,0,0,0,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M116,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M116,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,147.6a28,28,0,1,1,0-39.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pill` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pill />
  <Heroicons.pill class="w-4 h-4" />
  <Heroicons.pill solid />
  <Heroicons.pill mini />
  <Heroicons.pill outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pill(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="14.9" y="82.7" width="226.3" height="90.51" rx="45.3" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160.1" y1="112.1" x2="184.5" y2="88.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="14.9" y="82.7" width="226.3" height="90.51" rx="45.3" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160.1" y1="104.1" x2="176.5" y2="88.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208a45.2,45.2,0,0,1-64,0h0a45.2,45.2,0,0,1,0-64L96,96l64,64Z" opacity="0.2"/><rect x="14.9" y="82.7" width="226.3" height="90.51" rx="45.3" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160.1" y1="112.1" x2="184.5" y2="88.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,42.3a53.4,53.4,0,0,0-75.4,0l-96,96a53.3,53.3,0,0,0,75.4,75.4l96-96A53.5,53.5,0,0,0,213.7,42.3Zm-11.4,64L160,148.7,107.3,96l42.4-42.3a36.9,36.9,0,0,1,52.6,0A37.1,37.1,0,0,1,202.3,106.3ZM190.2,82.9a7.9,7.9,0,0,1-.2,11.3l-24.4,23.6a7.9,7.9,0,0,1-11.3-.2,7.9,7.9,0,0,1,.2-11.3l24.4-23.6A8,8,0,0,1,190.2,82.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="14.9" y="82.7" width="226.3" height="90.51" rx="45.3" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160.1" y1="112.1" x2="184.5" y2="88.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="14.9" y="82.7" width="226.3" height="90.51" rx="45.3" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160.1" y1="112.1" x2="184.5" y2="88.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_circle />
  <Heroicons.chat_circle class="w-4 h-4" />
  <Heroicons.chat_circle solid />
  <Heroicons.chat_circle mini />
  <Heroicons.chat_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" opacity="0.2"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,0,0,36.8,178l-8.5,30A15.9,15.9,0,0,0,48,227.7l30-8.5A104,104,0,1,0,128,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_left_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_left_down />
  <Heroicons.arrow_bend_left_down class="w-4 h-4" />
  <Heroicons.arrow_bend_left_down solid />
  <Heroicons.arrow_bend_left_down mini />
  <Heroicons.arrow_bend_left_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_left_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 176 104 224 56 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,32a96,96,0,0,0-96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 176 104 224 56 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,32a96,96,0,0,0-96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 176 104 224 56 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,32a96,96,0,0,0-96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32a8,8,0,0,1-8,8,88.1,88.1,0,0,0-88,88v40h40a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,56,168H96V128A104.2,104.2,0,0,1,200,24,8,8,0,0,1,208,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 176 104 224 56 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,32a96,96,0,0,0-96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 176 104 224 56 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,32a96,96,0,0,0-96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paint_brush` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paint_brush />
  <Heroicons.paint_brush class="w-4 h-4" />
  <Heroicons.paint_brush solid />
  <Heroicons.paint_brush mini />
  <Heroicons.paint_brush outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paint_brush(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20,216H92a52,52,0,1,0-52-52C40,200,20,216,20,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.4,116.2C131.6,90.3,180.4,31,225,31c0,44.6-59.3,93.4-85.2,112.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133,90.6A85.4,85.4,0,0,1,165.4,123" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20,216H92a52,52,0,1,0-52-52C40,200,20,216,20,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112.4,116.2C131.6,90.3,180.4,31,225,31c0,44.6-59.3,93.4-85.2,112.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M138.4,84.6a90.8,90.8,0,0,1,33,33" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133,90.6A85.4,85.4,0,0,1,165.4,123C192.7,99.1,225,63.9,225,31,192.1,31,156.9,63.3,133,90.6Z" opacity="0.2"/><path d="M20,216H92a52,52,0,1,0-52-52C40,200,20,216,20,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.4,116.2C131.6,90.3,180.4,31,225,31c0,44.6-59.3,93.4-85.2,112.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133,90.6A85.4,85.4,0,0,1,165.4,123" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225,23c-21.3,0-45.3,11.8-71.1,34.9-18.1,16.2-33.6,34.7-44.3,48.7A60.1,60.1,0,0,0,32,164c0,31.2-16.2,45.1-17,45.8a7.7,7.7,0,0,0-2.5,8.8A7.8,7.8,0,0,0,20,224H92a60.1,60.1,0,0,0,57.4-77.6c14-10.7,32.5-26.2,48.7-44.3C221.2,76.3,233,52.3,233,31A8,8,0,0,0,225,23ZM124.4,113.6c2.9-3.7,6.3-7.9,10.2-12.5a75.4,75.4,0,0,1,20.3,20.3c-4.6,3.9-8.8,7.3-12.5,10.2A59.4,59.4,0,0,0,124.4,113.6Zm42.6-2.9A93.1,93.1,0,0,0,145.3,89c19.6-21.2,46-44.4,70.8-49.1C211.4,64.7,188.2,91.1,167,110.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20,216H92a52,52,0,1,0-52-52C40,200,20,216,20,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112.4,116.2C131.6,90.3,180.4,31,225,31c0,44.6-59.3,93.4-85.2,112.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M133,90.6A85.4,85.4,0,0,1,165.4,123" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20,216H92a52,52,0,1,0-52-52C40,200,20,216,20,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112.4,116.2C131.6,90.3,180.4,31,225,31c0,44.6-59.3,93.4-85.2,112.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M133,90.6A85.4,85.4,0,0,1,165.4,123" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `moon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.moon />
  <Heroicons.moon class="w-4 h-4" />
  <Heroicons.moon solid />
  <Heroicons.moon mini />
  <Heroicons.moon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def moon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" opacity="0.2"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224.3,150.3a8.1,8.1,0,0,0-7.8-5.7l-2.2.4A84,84,0,0,1,111,41.6a5.7,5.7,0,0,0,.3-1.8A7.9,7.9,0,0,0,101,31.7,100,100,0,1,0,224.3,154.9,7.2,7.2,0,0,0,224.3,150.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `television` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.television />
  <Heroicons.television class="w-4 h-4" />
  <Heroicons.television solid />
  <Heroicons.television mini />
  <Heroicons.television outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def television(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="116" r="12"/><circle cx="188" cy="164" r="12"/><line x1="152" y1="208" x2="152" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="184" cy="116" r="16"/><circle cx="184" cy="164" r="16"/><line x1="140" y1="208" x2="140" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V72H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8Z" opacity="0.2"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="116" r="12"/><circle cx="188" cy="164" r="12"/><line x1="152" y1="208" x2="152" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H147.3l34.4-34.3a8.1,8.1,0,0,0-11.4-11.4L128,60.7,85.7,18.3A8.1,8.1,0,0,0,74.3,29.7L108.7,64H40A16,16,0,0,0,24,80V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,136H160V80h56V200Zm-16-84a12,12,0,1,1-12-12A12,12,0,0,1,200,116Zm0,48a12,12,0,1,1-12-12A12,12,0,0,1,200,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="116" r="10"/><circle cx="188" cy="164" r="10"/><line x1="152" y1="208" x2="152" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="116" r="8"/><circle cx="188" cy="164" r="8"/><line x1="152" y1="208" x2="152" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_five` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_five />
  <Heroicons.text_h_five class="w-4 h-4" />
  <Heroicons.text_h_five solid />
  <Heroicons.text_h_five mini />
  <Heroicons.text_h_five outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_five(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240,108H199.8L192,156.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M240,108H199.8L192,156.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240,108H199.8L192,156.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0Zm59.9,84a37.3,37.3,0,0,0-9.4,1.2l4.1-25.2H240a8,8,0,0,0,0-16H199.8a8,8,0,0,0-7.9,6.7l-7.8,48.2a8,8,0,0,0,13.5,7,20.1,20.1,0,0,1,14.3-5.9,19.9,19.9,0,0,1,14.2,5.9,19.8,19.8,0,0,1,0,28.2,19.9,19.9,0,0,1-14.2,5.9,20.1,20.1,0,0,1-14.3-5.9,8,8,0,1,0-11.2,11.4A36.1,36.1,0,1,0,211.9,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M240,108H199.8L192,156.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M240,108H199.8L192,156.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dog` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dog />
  <Heroicons.dog class="w-4 h-4" />
  <Heroicons.dog solid />
  <Heroicons.dog mini />
  <Heroicons.dog outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dog(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="140" r="12"/><circle cx="164" cy="140" r="12"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,48l55.8-13.9a8,8,0,0,1,9.8,6.2L234,127.9c1.5,8.2-9,13-14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,48,48.2,34.1a8,8,0,0,0-9.8,6.2L22,127.9c-1.5,8.2,9,13,14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="136" r="16"/><circle cx="164" cy="136" r="16"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,48l55.8-13.9a8,8,0,0,1,9.8,6.2L234,127.9c1.5,8.2-9,13-14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,48,48.2,34.1a8,8,0,0,0-9.8,6.2L22,127.9c-1.5,8.2,9,13,14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="48" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3L104,48h48Z" opacity="0.2"/><line x1="128" y1="192" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="140" r="12"/><circle cx="164" cy="140" r="12"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,48l55.8-13.9a8,8,0,0,1,9.8,6.2L234,127.9c1.5,8.2-9,13-14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,48,48.2,34.1a8,8,0,0,0-9.8,6.2L22,127.9c-1.5,8.2,9,13,14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140a12,12,0,1,1-12-12A12,12,0,0,1,104,140Zm60-12a12,12,0,1,0,12,12A12,12,0,0,0,164,128Zm68.7,16a16.1,16.1,0,0,1-6.7,1.4,15.6,15.6,0,0,1-10-3.6V184a40,40,0,0,1-40,40H80a40,40,0,0,1-40-40V141.8a15.6,15.6,0,0,1-10,3.6,16.1,16.1,0,0,1-6.7-1.4,15.8,15.8,0,0,1-9.1-17.6L30.6,38.9A16.1,16.1,0,0,1,50.2,26.3L105,40h46l54.8-13.7a16.1,16.1,0,0,1,19.6,12.6l16.4,87.5A15.8,15.8,0,0,1,232.7,144ZM200,184V122L148.1,56H107.9L56,122v62a24.1,24.1,0,0,0,24,24h40V195.3l-13.7-13.6a8.1,8.1,0,0,1,11.4-11.4L128,180.7l10.3-10.4a8.1,8.1,0,0,1,11.4,11.4L136,195.3V208h40A24.1,24.1,0,0,0,200,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="140" r="10"/><circle cx="164" cy="140" r="10"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,48l55.8-13.9a8,8,0,0,1,9.8,6.2L234,127.9c1.5,8.2-9,13-14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,48,48.2,34.1a8,8,0,0,0-9.8,6.2L22,127.9c-1.5,8.2,9,13,14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="48" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="140" r="8"/><circle cx="164" cy="140" r="8"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,48l55.8-13.9a8,8,0,0,1,9.8,6.2L234,127.9c1.5,8.2-9,13-14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,48,48.2,34.1a8,8,0,0,0-9.8,6.2L22,127.9c-1.5,8.2,9,13,14.2,6.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="48" x2="152" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,119.3V184a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tag_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tag_simple />
  <Heroicons.tag_simple class="w-4 h-4" />
  <Heroicons.tag_simple solid />
  <Heroicons.tag_simple mini />
  <Heroicons.tag_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tag_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" opacity="0.2"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M246.7,123.6,201,55.1A15.9,15.9,0,0,0,187.7,48H40A16,16,0,0,0,24,64V192a16,16,0,0,0,16,16H187.7a15.9,15.9,0,0,0,13.3-7.1h0l45.7-68.5A8.2,8.2,0,0,0,246.7,123.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M194.4,196.4,240,128,194.4,59.6a7.9,7.9,0,0,0-6.7-3.6H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H187.7A7.9,7.9,0,0,0,194.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `whatsapp_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.whatsapp_logo />
  <Heroicons.whatsapp_logo class="w-4 h-4" />
  <Heroicons.whatsapp_logo solid />
  <Heroicons.whatsapp_logo mini />
  <Heroicons.whatsapp_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def whatsapp_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.1,184A79.9,79.9,0,0,1,72,103.9,28,28,0,0,1,100,76h0a6.8,6.8,0,0,1,6,3.5l11.7,20.4a8.1,8.1,0,0,1-.1,8.1l-9.4,15.7h0a48,48,0,0,0,24.1,24.1h0l15.7-9.4a8.1,8.1,0,0,1,8.1-.1L176.5,150a6.8,6.8,0,0,1,3.5,6h0A28.1,28.1,0,0,1,152.1,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,103.5A23.9,23.9,0,0,1,104,80h3.5a7.9,7.9,0,0,1,6.8,3.9l7.4,12.3a7.8,7.8,0,0,1,.3,7.7l-4.7,9.6h0a36,36,0,0,0,25.2,25.2h0l9.6-4.7a7.8,7.8,0,0,1,7.7.3l12.3,7.4a7.9,7.9,0,0,1,3.9,6.8V152a23.9,23.9,0,0,1-23.5,24A71.9,71.9,0,0,1,80,103.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32A96.1,96.1,0,0,0,45.4,177h0L36,210.2a7.9,7.9,0,0,0,9.8,9.8L79,210.6h0A96,96,0,1,0,128,32Zm24.1,152A79.9,79.9,0,0,1,72,103.9,28,28,0,0,1,100,76h0a6.8,6.8,0,0,1,6,3.5l11.7,20.4a8.1,8.1,0,0,1-.1,8.1l-9.4,15.7h0a48,48,0,0,0,24.1,24.1h0l15.7-9.4a8.1,8.1,0,0,1,8.1-.1L176.5,150a6.8,6.8,0,0,1,3.5,6A28.1,28.1,0,0,1,152.1,184Z" opacity="0.2"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.1,184A79.9,79.9,0,0,1,72,103.9,28,28,0,0,1,100,76h0a6.8,6.8,0,0,1,6,3.5l11.7,20.4a8.1,8.1,0,0,1-.1,8.1l-9.4,15.7h0a48,48,0,0,0,24.1,24.1h0l15.7-9.4a8.1,8.1,0,0,1,8.1-.1L176.5,150a6.8,6.8,0,0,1,3.5,6h0A28.1,28.1,0,0,1,152.1,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,0,0,36.8,178l-8.5,30A15.9,15.9,0,0,0,48,227.7l30-8.5A104,104,0,1,0,128,24Zm24.1,168H152a88.1,88.1,0,0,1-88-88.1A36,36,0,0,1,100,68a14.9,14.9,0,0,1,12.9,7.5L124.6,96a15.8,15.8,0,0,1-.2,16.1L117.3,124A41.4,41.4,0,0,0,132,138.7l11.9-7.1a15.8,15.8,0,0,1,16.1-.2l20.5,11.7A14.9,14.9,0,0,1,188,156,36,36,0,0,1,152.1,192Z"/><path d="M136.5,154.7a8.1,8.1,0,0,1-7.4.4,55.4,55.4,0,0,1-28.2-28.2,8.1,8.1,0,0,1,.4-7.4l9.4-15.6L99.4,84A19.9,19.9,0,0,0,80,103.9,72,72,0,0,0,152,176h.1A19.9,19.9,0,0,0,172,156.6l-19.9-11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152.1,184A79.9,79.9,0,0,1,72,103.9,28,28,0,0,1,100,76h0a6.8,6.8,0,0,1,6,3.5l11.7,20.4a8.1,8.1,0,0,1-.1,8.1l-9.4,15.7h0a48,48,0,0,0,24.1,24.1h0l15.7-9.4a8.1,8.1,0,0,1,8.1-.1L176.5,150a6.8,6.8,0,0,1,3.5,6h0A28.1,28.1,0,0,1,152.1,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152.1,184A79.9,79.9,0,0,1,72,103.9,28,28,0,0,1,100,76h0a6.8,6.8,0,0,1,6,3.5l11.7,20.4a8.1,8.1,0,0,1-.1,8.1l-9.4,15.7h0a48,48,0,0,0,24.1,24.1h0l15.7-9.4a8.1,8.1,0,0,1,8.1-.1L176.5,150a6.8,6.8,0,0,1,3.5,6h0A28.1,28.1,0,0,1,152.1,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_low />
  <Heroicons.hourglass_low class="w-4 h-4" />
  <Heroicons.hourglass_low solid />
  <Heroicons.hourglass_low mini />
  <Heroicons.hourglass_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="180.4" x2="64" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="180.4" x2="64" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4Z" opacity="0.2"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="180.4" x2="64" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,75.6V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V76a16.1,16.1,0,0,0,6.4,12.8L114.7,128,62.4,167.2a15.6,15.6,0,0,0-6.3,11.9,2.8,2.8,0,0,0-.1.9v36a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V180.4a2.8,2.8,0,0,0-.1-.9,15.6,15.6,0,0,0-6.3-11.9L141.3,128l52.3-39.6A16.1,16.1,0,0,0,200,75.6ZM82.6,172.1,128,138l45.3,34.3ZM184,75.6,128,118,72,76V40H184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="180.4" x2="64" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="180.4" x2="64" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `boat` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.boat />
  <Heroicons.boat class="w-4 h-4" />
  <Heroicons.boat solid />
  <Heroicons.boat mini />
  <Heroicons.boat outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def boat(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,112V56a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,112V56a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" opacity="0.2"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,112V56a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.1,110.6,208,106.2V56a16,16,0,0,0-16-16H136V24a8,8,0,0,0-16,0V40H64A16,16,0,0,0,48,56v50.2l-13.1,4.4A16,16,0,0,0,24,125.8V160a8.3,8.3,0,0,0,.3,2.2c15.7,55,86.1,74,100.1,77.2a16.4,16.4,0,0,0,7.2,0c14-3.2,84.4-22.2,100.1-77.2a8.3,8.3,0,0,0,.3-2.2V125.8A16,16,0,0,0,221.1,110.6ZM136,168a8,8,0,0,1-16,0V112.4a8,8,0,0,1,16,0Zm56-67.1L133.1,81.3a16.2,16.2,0,0,0-10.2,0L64,100.9V56H192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,112V56a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,160c-14.6,51-82.2,68.8-94.2,71.6a7.3,7.3,0,0,1-3.6,0C114.2,228.8,46.6,211,32,160V125.8a8,8,0,0,1,5.5-7.6l88-29.4a8.5,8.5,0,0,1,5,0l88,29.4a8,8,0,0,1,5.5,7.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,112V56a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tag_chevron` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tag_chevron />
  <Heroicons.tag_chevron class="w-4 h-4" />
  <Heroicons.tag_chevron solid />
  <Heroicons.tag_chevron mini />
  <Heroicons.tag_chevron outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tag_chevron(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" opacity="0.2"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235.7,136.9l-42.7,64h0a15.9,15.9,0,0,1-13.3,7.1H24a7.8,7.8,0,0,1-7-4.2,8,8,0,0,1,.3-8.2L62.4,128,17.3,60.4a8,8,0,0,1-.3-8.2A7.8,7.8,0,0,1,24,48H179.7A15.9,15.9,0,0,1,193,55.1l42.7,64A16,16,0,0,1,235.7,136.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.4,196.4l42.6-64a7.8,7.8,0,0,0,0-8.8l-42.6-64a7.9,7.9,0,0,0-6.7-3.6H24l45,67.6a7.8,7.8,0,0,1,0,8.8L24,200H179.7A7.9,7.9,0,0,0,186.4,196.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_indent` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_indent />
  <Heroicons.text_indent class="w-4 h-4" />
  <Heroicons.text_indent solid />
  <Heroicons.text_indent mini />
  <Heroicons.text_indent outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_indent(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 56 80 96 40 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 56 80 96 40 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 56 80 96 40 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H120a8,8,0,0,1,0-16h96A8,8,0,0,1,224,128ZM120,72h96a8,8,0,0,0,0-16H120a8,8,0,0,0,0,16Zm96,112H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM36.9,143.4a8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l40-40a8.1,8.1,0,0,0,0-11.4l-40-40a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,32,56v80A8,8,0,0,0,36.9,143.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 56 80 96 40 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 56 80 96 40 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield />
  <Heroicons.shield class="w-4 h-4" />
  <Heroicons.shield solid />
  <Heroicons.shield mini />
  <Heroicons.shield outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a16,16,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `toggle_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.toggle_left />
  <Heroicons.toggle_left class="w-4 h-4" />
  <Heroicons.toggle_left solid />
  <Heroicons.toggle_left mini />
  <Heroicons.toggle_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def toggle_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="80" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="128" r="32" opacity="0.2"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,56H80a72,72,0,0,0,0,144h96a72,72,0,0,0,0-144ZM80,168a40,40,0,1,1,40-40A40,40,0,0,1,80,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="80" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="80" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_notch_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_notch_open />
  <Heroicons.folder_notch_open class="w-4 h-4" />
  <Heroicons.folder_notch_open solid />
  <Heroicons.folder_notch_open mini />
  <Heroicons.folder_notch_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_notch_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208l30-75a7.9,7.9,0,0,1,7.4-5h48.2a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3h82.5a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,208l29.9-71.1a8.1,8.1,0,0,1,7.4-4.9h48.3a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3h82.3a8,8,0,0,1,7.6,10.6L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.4,128h48.2a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3H208V88a8,8,0,0,0-8-8H130.7a8.1,8.1,0,0,1-4.8-1.6L98.1,57.6A8.1,8.1,0,0,0,93.3,56H40a8,8,0,0,0-8,8V208l30-75A7.9,7.9,0,0,1,69.4,128Z" opacity="0.2"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208l30-75a7.9,7.9,0,0,1,7.4-5h48.2a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3h82.5a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.9,110.6a16.2,16.2,0,0,0-13-6.6H216V88a16,16,0,0,0-16-16H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V208h0a8.2,8.2,0,0,0,1.4,4.5A7.9,7.9,0,0,0,32,216H208a8,8,0,0,0,7.6-5.5l28.5-85.4A16.3,16.3,0,0,0,241.9,110.6ZM93.3,64l27.8,20.8a15.6,15.6,0,0,0,9.6,3.2H200v16H146.4a16,16,0,0,0-8.9,2.7L117.6,120H69.4a15.7,15.7,0,0,0-14.8,10.1L40,166.5V64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,208l30-75a7.9,7.9,0,0,1,7.4-5h48.2a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3h82.5a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,208l30-75a7.9,7.9,0,0,1,7.4-5h48.2a8.4,8.4,0,0,0,4.4-1.3l20-13.4a8.4,8.4,0,0,1,4.4-1.3h82.5a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `browser` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.browser />
  <Heroicons.browser class="w-4 h-4" />
  <Heroicons.browser solid />
  <Heroicons.browser mini />
  <Heroicons.browser outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def browser(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96H224V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V88H40V56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calendar_check` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calendar_check />
  <Heroicons.calendar_check class="w-4 h-4" />
  <Heroicons.calendar_check solid />
  <Heroicons.calendar_check mini />
  <Heroicons.calendar_check outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calendar_check(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="164 128 117.3 172 92 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="20" x2="176" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="20" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="164 128 117.3 172 92 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,88H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="164 128 117.3 172 92 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM169.5,133.8l-46.7,44a7.7,7.7,0,0,1-5.5,2.2,7.9,7.9,0,0,1-5.5-2.2l-25.3-24a8,8,0,1,1,11-11.6L117.3,161l41.2-38.8a7.9,7.9,0,0,1,11.3.3A8,8,0,0,1,169.5,133.8ZM208,80H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="164 128 117.3 172 92 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="164 128 117.3 172 92 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `qr_code` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.qr_code />
  <Heroicons.qr_code class="w-4 h-4" />
  <Heroicons.qr_code solid />
  <Heroicons.qr_code mini />
  <Heroicons.qr_code outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def qr_code(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 208 176 208 176 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="60" height="60" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="48" y="148" width="60" height="60" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="148" y="48" width="60" height="60" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="148" x2="148" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 208 184 208 184 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="164" x2="208" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" rx="8" opacity="0.2"/><rect x="48" y="144" width="64" height="64" rx="8" opacity="0.2"/><rect x="144" y="48" width="64" height="64" rx="8" opacity="0.2"/><rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 208 176 208 176 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="80" height="80" rx="16"/><rect x="40" y="136" width="80" height="80" rx="16"/><rect x="136" y="40" width="80" height="80" rx="16"/><path d="M144,184a8,8,0,0,0,8-8V144a8,8,0,0,0-16,0v32A8,8,0,0,0,144,184Z"/><path d="M208,152H184v-8a8,8,0,0,0-16,0v56H144a8,8,0,0,0,0,16h32a8,8,0,0,0,8-8V168h24a8,8,0,0,0,0-16Z"/><path d="M208,184a8,8,0,0,0-8,8v16a8,8,0,0,0,16,0V192A8,8,0,0,0,208,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 208 176 208 176 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 208 176 208 176 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `warning_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.warning_circle />
  <Heroicons.warning_circle class="w-4 h-4" />
  <Heroicons.warning_circle solid />
  <Heroicons.warning_circle mini />
  <Heroicons.warning_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def warning_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="80" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="172" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_line_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_line_right />
  <Heroicons.arrow_fat_line_right class="w-4 h-4" />
  <Heroicons.arrow_fat_line_right solid />
  <Heroicons.arrow_fat_line_right mini />
  <Heroicons.arrow_fat_line_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_line_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 72 176 72 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 80 176 80 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 72 176 72 80 136 80 136 32" opacity="0.2"/><polygon points="136 32 232 128 136 224 136 176 72 176 72 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.9,231.4A8,8,0,0,1,128,224V184H72a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h56V32a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l96,96a8.1,8.1,0,0,1,0,11.4l-96,96A8.4,8.4,0,0,1,132.9,231.4ZM48,176V80a8,8,0,0,0-16,0v96a8,8,0,0,0,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 72 176 72 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 72 176 72 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `identification_badge` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.identification_badge />
  <Heroicons.identification_badge class="w-4 h-4" />
  <Heroicons.identification_badge solid />
  <Heroicons.identification_badge mini />
  <Heroicons.identification_badge outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def identification_badge(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="136" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,192a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="68" x2="160" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="136" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M84,187.2a60,60,0,0,1,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,32H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V40A8,8,0,0,0,200,32ZM128,168a32,32,0,1,1,32-32A32,32,0,0,1,128,168Z" opacity="0.2"/><circle cx="128" cy="136" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,192a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM96,48h64a8,8,0,0,1,0,16H96a8,8,0,0,1,0-16Zm84.8,150.4a8.1,8.1,0,0,1-11.2-1.6,52,52,0,0,0-83.2,0A8,8,0,0,1,80,200a7.7,7.7,0,0,1-4.8-1.6,8,8,0,0,1-1.6-11.2A67.8,67.8,0,0,1,101,165.5a40,40,0,1,1,54,0,67.8,67.8,0,0,1,27.4,21.7A8,8,0,0,1,180.8,198.4ZM152,136a24,24,0,1,1-24-24A24.1,24.1,0,0,1,152,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="136" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,192a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="136" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,192a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `line_segments` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.line_segments />
  <Heroicons.line_segments class="w-4 h-4" />
  <Heroicons.line_segments solid />
  <Heroicons.line_segments mini />
  <Heroicons.line_segments outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def line_segments(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="40" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="96" cy="96" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="160" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84.6" y1="117.1" x2="51.4" y2="178.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="143" y1="143" x2="113" y2="113" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="204.6" y1="77.1" x2="171.4" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="40" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="96" cy="96" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="160" cy="160" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="216" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84.6" y1="117.1" x2="51.4" y2="178.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="143" y1="143" x2="113" y2="113" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="204.6" y1="77.1" x2="171.4" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="40" cy="200" r="24" opacity="0.2"/><circle cx="96" cy="96" r="24" opacity="0.2"/><circle cx="160" cy="160" r="24" opacity="0.2"/><circle cx="216" cy="56" r="24" opacity="0.2"/><circle cx="40" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="96" cy="96" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="160" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84.6" y1="117.1" x2="51.4" y2="178.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="143" y1="143" x2="113" y2="113" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="204.6" y1="77.1" x2="171.4" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M238.6,78.6A31.6,31.6,0,0,1,216,88a32.2,32.2,0,0,1-7.6-.9l-26.7,49.4.9.9a31.9,31.9,0,0,1,0,45.2,31.9,31.9,0,0,1-45.2,0,32,32,0,0,1-5-38.9l-20.1-20.1A32.7,32.7,0,0,1,96,128a32.2,32.2,0,0,1-7.6-.9L61.7,176.5l.9.9a31.9,31.9,0,0,1,0,45.2,31.9,31.9,0,0,1-45.2,0,31.9,31.9,0,0,1,0-45.2h0a32.1,32.1,0,0,1,30.2-8.5l26.7-49.4-.9-.9a31.9,31.9,0,0,1,0-45.2h0a32,32,0,0,1,50.2,38.9l20.1,20.1a32.4,32.4,0,0,1,23.9-3.5l26.7-49.4-.9-.9a31.9,31.9,0,0,1,0-45.2h0a32,32,0,0,1,45.2,45.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="40" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="96" cy="96" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="160" cy="160" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="216" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84.6" y1="117.1" x2="51.4" y2="178.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="143" y1="143" x2="113" y2="113" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="204.6" y1="77.1" x2="171.4" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="40" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="96" cy="96" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="160" cy="160" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="216" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84.6" y1="117.1" x2="51.4" y2="178.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="143" y1="143" x2="113" y2="113" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="204.6" y1="77.1" x2="171.4" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `spade` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.spade />
  <Heroicons.spade class="w-4 h-4" />
  <Heroicons.spade solid />
  <Heroicons.spade mini />
  <Heroicons.spade outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def spade(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24S228,88,228,140a52,52,0,0,1-85.4,39.9L160,232H96l17.4-52.1A52,52,0,0,1,28,140C28,88,128,24,128,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,232H96l8.7-46.2A52.1,52.1,0,0,1,28,140C28,88,128,24,128,24S228,88,228,140a52.1,52.1,0,0,1-76.7,45.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24S228,88,228,140a52,52,0,0,1-85.4,39.9L160,232H96l17.4-52.1A52,52,0,0,1,28,140C28,88,128,24,128,24Z" opacity="0.2"/><path d="M128,24S228,88,228,140a52,52,0,0,1-85.4,39.9L160,232H96l17.4-52.1A52,52,0,0,1,28,140C28,88,128,24,128,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,140a56,56,0,0,1-56,56,55.2,55.2,0,0,1-25.9-6.4L162,225.5a7.8,7.8,0,0,1-1.1,7.2,7.9,7.9,0,0,1-6.4,3.3h-53a7.9,7.9,0,0,1-6.4-3.3,7.8,7.8,0,0,1-1.1-7.2l11.9-35.9A55.2,55.2,0,0,1,80,196a56,56,0,0,1-56-56C24,86.4,121.7,23.3,125.8,20.6a4.3,4.3,0,0,1,4.4,0C134.3,23.3,232,86.4,232,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24S228,88,228,140a52,52,0,0,1-85.4,39.9L160,232H96l17.4-52.1A52,52,0,0,1,28,140C28,88,128,24,128,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24S228,88,228,140a52,52,0,0,1-85.4,39.9L160,232H96l17.4-52.1A52,52,0,0,1,28,140C28,88,128,24,128,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `film_slate` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.film_slate />
  <Heroicons.film_slate class="w-4 h-4" />
  <Heroicons.film_slate solid />
  <Heroicons.film_slate mini />
  <Heroicons.film_slate outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def film_slate(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,112H216a0,0,0,0,1,0,0v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V112A0,0,0,0,1,40,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,112,210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L37.4,71.3a8,8,0,0,0-5.7,9.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.1" y1="46.4" x2="179.1" y2="74.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.6" y1="65.1" x2="109.5" y2="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,112H216a0,0,0,0,1,0,0v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V112A0,0,0,0,1,40,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,112,210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L37.4,71.3a8,8,0,0,0-5.7,9.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="130.1" y1="46.4" x2="179.1" y2="74.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.6" y1="65.1" x2="109.5" y2="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L130.1,46.4l49,28.3Z" opacity="0.2"/><path d="M109.5,93.4,60.6,65.1,37.4,71.3a8,8,0,0,0-5.7,9.8L40,112Z" opacity="0.2"/><path d="M40,112H216a0,0,0,0,1,0,0v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V112A0,0,0,0,1,40,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,112,210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L37.4,71.3a8,8,0,0,0-5.7,9.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.1" y1="46.4" x2="179.1" y2="74.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.6" y1="65.1" x2="109.5" y2="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,104H100.8L212.1,74.2a7.9,7.9,0,0,0,4.8-3.8,7.5,7.5,0,0,0,.8-6l-8.3-30.9a15.8,15.8,0,0,0-19.5-11.3L35.3,63.6A15.9,15.9,0,0,0,24,83.2l8,29.9V200a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V112A8,8,0,0,0,216,104ZM169.3,69.1,99.7,87.7l-29.3-17,69.5-18.6ZM208,200H48V120H208v80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,112H216a0,0,0,0,1,0,0v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V112A0,0,0,0,1,40,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,112,210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L37.4,71.3a8,8,0,0,0-5.7,9.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="130.1" y1="46.4" x2="179.1" y2="74.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.6" y1="65.1" x2="109.5" y2="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,112H216a0,0,0,0,1,0,0v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V112A0,0,0,0,1,40,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,112,210,66.4l-8.3-30.9a7.9,7.9,0,0,0-9.8-5.6L37.4,71.3a8,8,0,0,0-5.7,9.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="130.1" y1="46.4" x2="179.1" y2="74.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.6" y1="65.1" x2="109.5" y2="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_eur` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_eur />
  <Heroicons.currency_eur class="w-4 h-4" />
  <Heroicons.currency_eur solid />
  <Heroicons.currency_eur mini />
  <Heroicons.currency_eur outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_eur(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.9,194.9A72,72,0,0,1,64,144V112A72,72,0,0,1,186.9,61.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="136" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="144" x2="120" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.9,194.9A72,72,0,0,1,64,144V112A72,72,0,0,1,186.9,61.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="108" x2="136" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="148" x2="120" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.9,194.9A72,72,0,0,1,64,144V112A72,72,0,0,1,186.9,61.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="136" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="144" x2="120" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192.6,189.3a8,8,0,0,1,0,11.3A80,80,0,0,1,56.4,152H40a8,8,0,0,1,0-16H56V120H40a8,8,0,0,1,0-16H56.4A80,80,0,0,1,192.6,55.4a8,8,0,0,1,0,11.3,7.9,7.9,0,0,1-11.3,0A64.1,64.1,0,0,0,72.5,104H136a8,8,0,0,1,0,16H72v16h48a8,8,0,0,1,0,16H72.5a64.1,64.1,0,0,0,108.8,37.3A7.9,7.9,0,0,1,192.6,189.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.9,194.9A72,72,0,0,1,64,144V112A72,72,0,0,1,186.9,61.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="136" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="144" x2="120" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.9,194.9A72,72,0,0,1,64,144V112A72,72,0,0,1,186.9,61.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="136" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="144" x2="120" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `globe_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.globe_simple />
  <Heroicons.globe_simple class="w-4 h-4" />
  <Heroicons.globe_simple solid />
  <Heroicons.globe_simple mini />
  <Heroicons.globe_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def globe_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128A104.1,104.1,0,0,0,128,24h0a104,104,0,0,0,0,208h0A104.1,104.1,0,0,0,232,128Zm-16.4-8H175.8c-1.6-29.6-12-57-29.5-78.1A88.2,88.2,0,0,1,215.6,120ZM96.3,136h63.4c-1.8,28.8-13.3,55.7-31.7,74.4C109.6,191.7,98.1,164.8,96.3,136Zm0-16c1.8-28.8,13.3-55.7,31.7-74.4,18.4,18.7,29.9,45.6,31.7,74.4Zm50,94.1c17.5-21.1,27.9-48.5,29.5-78.1h39.8A88.2,88.2,0,0,1,146.3,214.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sort_descending` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sort_descending />
  <Heroicons.sort_descending class="w-4 h-4" />
  <Heroicons.sort_descending solid />
  <Heroicons.sort_descending mini />
  <Heroicons.sort_descending outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sort_descending(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 88 184 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="144" x2="184" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="128" x2="120" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="104" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="184" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 88 184 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="144" x2="184" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="64" x2="104" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="192" x2="184" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 88 184 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="144" x2="184" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="128" x2="120" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="104" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="184" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.4,91a8,8,0,0,1-7.4,5H192v48a8,8,0,0,1-16,0V96H144a8.1,8.1,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l40-40a8.1,8.1,0,0,1,11.4,0l40,40A8.2,8.2,0,0,1,231.4,91ZM48,136h72a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm0-64h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 88 184 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="144" x2="184" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="64" x2="104" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="192" x2="184" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 88 184 48 224 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="144" x2="184" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="64" x2="104" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="192" x2="184" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_ts` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_ts />
  <Heroicons.file_ts class="w-4 h-4" />
  <Heroicons.file_ts solid />
  <Heroicons.file_ts mini />
  <Heroicons.file_ts outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_ts(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,220h24a8,8,0,0,0,8-8V92L156,36H52a8,8,0,0,0-8,8v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="220" x2="56" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="164" x2="36" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92,168a8,8,0,0,1-8,8H74v40a8,8,0,0,1-16,0V176H48a8,8,0,0,1,0-16H84A8,8,0,0,1,92,168Zm37.7,15.8c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,142,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,127,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,112,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,127,225c15.7,0,25-7.9,25-21S138,186,129.7,183.8ZM216,88V216a16,16,0,0,1-16,16H184a8,8,0,0,1-8-8V144a8,8,0,0,0-8-8H48a8,8,0,0,1-8-8V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-20,0L152,44V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `backspace` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.backspace />
  <Heroicons.backspace class="w-4 h-4" />
  <Heroicons.backspace solid />
  <Heroicons.backspace mini />
  <Heroicons.backspace outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def backspace(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="104" x2="112" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="152" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="104" x2="112" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="152" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" opacity="0.2"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="104" x2="112" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="152" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H68.5a16.2,16.2,0,0,0-13.7,7.8L9.1,123.9a8,8,0,0,0,0,8.2l45.7,76.1h0A16.1,16.1,0,0,0,68.5,216H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM165.7,146.3a8.1,8.1,0,0,1,0,11.4A8.5,8.5,0,0,1,160,160a8.3,8.3,0,0,1-5.7-2.3L136,139.3l-18.3,18.4A8.5,8.5,0,0,1,112,160a8.3,8.3,0,0,1-5.7-2.3,8.1,8.1,0,0,1,0-11.4L124.7,128l-18.4-18.3a8.1,8.1,0,0,1,11.4-11.4L136,116.7l18.3-18.4a8.1,8.1,0,0,1,11.4,11.4L147.3,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="104" x2="112" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="152" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M61.7,204.1,16,128,61.7,51.9A7.9,7.9,0,0,1,68.5,48H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H68.5A7.9,7.9,0,0,1,61.7,204.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="104" x2="112" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="152" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `peace` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.peace />
  <Heroicons.peace class="w-4 h-4" />
  <Heroicons.peace solid />
  <Heroicons.peace mini />
  <Heroicons.peace outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def peace(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="206.6" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="49.4" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="206.6" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="49.4" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="206.6" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="49.4" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.6,186.9A102.9,102.9,0,0,0,232,128a104,104,0,0,0-208,0,102.9,102.9,0,0,0,18.4,58.9l.4.8.4.4a103.9,103.9,0,0,0,169.6,0l.4-.4A3,3,0,0,0,213.6,186.9ZM216,128a87.5,87.5,0,0,1-11.6,43.7L136,123.8V40.4A88.1,88.1,0,0,1,216,128ZM120,40.4v83.4L51.6,171.7A88,88,0,0,1,120,40.4ZM60.8,184.8,120,143.4v72.2A87.9,87.9,0,0,1,60.8,184.8ZM136,215.6V143.4l59.2,41.4A87.9,87.9,0,0,1,136,215.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="206.6" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="49.4" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="206.6" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="49.4" y2="183.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_counter_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_counter_clockwise />
  <Heroicons.arrow_counter_clockwise class="w-4 h-4" />
  <Heroicons.arrow_counter_clockwise solid />
  <Heroicons.arrow_counter_clockwise mini />
  <Heroicons.arrow_counter_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_counter_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,195.9a96.1,96.1,0,0,1-135.8,0,8,8,0,0,1,0-11.3,7.9,7.9,0,0,1,11.3,0,80,80,0,1,0,0-113.2l-4.3,4.3L85.5,94.1a8,8,0,0,1-5.7,13.6h-48a8,8,0,0,1-8-8v-48a8.2,8.2,0,0,1,5-7.4,8,8,0,0,1,8.7,1.8L55.8,64.4l4.3-4.3A96,96,0,0,1,195.9,195.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `robot` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.robot />
  <Heroicons.robot class="w-4 h-4" />
  <Heroicons.robot solid />
  <Heroicons.robot mini />
  <Heroicons.robot outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def robot(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="160" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="144" width="112" height="40" rx="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="144" x2="148" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="144" x2="108" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="56" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="108" r="12"/><circle cx="172" cy="108" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="160" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="68" y="144" width="120" height="36" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="144" x2="108" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="144" x2="148" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="56" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="84" cy="104" r="16"/><circle cx="172" cy="104" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,56H56A23.9,23.9,0,0,0,32,80V192a23.9,23.9,0,0,0,24,24H200a23.9,23.9,0,0,0,24-24V80A23.9,23.9,0,0,0,200,56ZM164,184H92a20,20,0,0,1,0-40h72a20,20,0,0,1,0,40Z" opacity="0.2"/><rect x="32" y="56" width="192" height="160" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="144" width="112" height="40" rx="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="144" x2="148" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="144" x2="108" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="56" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="108" r="12"/><circle cx="172" cy="108" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,48H136V16a8,8,0,0,0-16,0V48H56A32.1,32.1,0,0,0,24,80V192a32.1,32.1,0,0,0,32,32H200a32.1,32.1,0,0,0,32-32V80A32.1,32.1,0,0,0,200,48ZM72,108a12,12,0,1,1,12,12A12,12,0,0,1,72,108Zm28,76H92a16,16,0,0,1,0-32h8Zm40,0H116V152h24Zm24,0h-8V152h8a16,16,0,0,1,0,32Zm8-64a12,12,0,1,1,12-12A12,12,0,0,1,172,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="160" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="72" y="144" width="112" height="40" rx="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="148" y1="144" x2="148" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="108" y1="144" x2="108" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="56" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="84" cy="108" r="10"/><circle cx="172" cy="108" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="160" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="72" y="144" width="112" height="40" rx="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="148" y1="144" x2="148" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="108" y1="144" x2="108" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="56" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="108" r="8"/><circle cx="172" cy="108" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `spinner` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.spinner />
  <Heroicons.spinner class="w-4 h-4" />
  <Heroicons.spinner solid />
  <Heroicons.spinner mini />
  <Heroicons.spinner outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def spinner(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="173.3" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="195.9" y1="60.1" x2="173.3" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="173.3" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm37.3,58.7a7.8,7.8,0,0,0,5.6-2.3l22.6-22.6a8,8,0,1,0-11.3-11.3L167.6,77.1a8,8,0,0,0,0,11.3A7.8,7.8,0,0,0,173.3,90.7ZM224,120H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.1,47.6a8,8,0,0,0-11.3,11.3l22.6,22.6a8,8,0,0,0,5.7,2.4,7.7,7.7,0,0,0,5.6-2.4,7.9,7.9,0,0,0,0-11.3ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.1,167.6,54.5,190.2a7.9,7.9,0,0,0,0,11.3,7.7,7.7,0,0,0,5.6,2.4,8,8,0,0,0,5.7-2.4l22.6-22.6a8,8,0,0,0-11.3-11.3ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.8,54.5A8,8,0,0,0,54.5,65.8L77.1,88.4a8.1,8.1,0,0,0,11.3,0,8,8,0,0,0,0-11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="60.1" x2="173.3" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="60.1" x2="173.3" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eject_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eject_simple />
  <Heroicons.eject_simple class="w-4 h-4" />
  <Heroicons.eject_simple solid />
  <Heroicons.eject_simple mini />
  <Heroicons.eject_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eject_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="208" x2="32" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="208" x2="32" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" opacity="0.2"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="208" x2="32" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M26.4,158.9a15.9,15.9,0,0,1,2-17L115.6,34.6a16,16,0,0,1,24.8,0l87.2,107.3A16,16,0,0,1,215.2,168H40.8A15.8,15.8,0,0,1,26.4,158.9ZM224,200H32a8,8,0,0,0,0,16H224a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="208" x2="32" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.8,39.6,34.6,147a8,8,0,0,0,6.2,13H215.2a8,8,0,0,0,6.2-13L134.2,39.6A8,8,0,0,0,121.8,39.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="208" x2="32" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_in` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_in />
  <Heroicons.arrow_square_in class="w-4 h-4" />
  <Heroicons.arrow_square_in solid />
  <Heroicons.arrow_square_in mini />
  <Heroicons.arrow_square_in outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_in(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 204 112 144 52 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="112" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,192h48a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 204 112 144 52 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="216" x2="112" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,192h48a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="40" width="152" height="152" rx="8" opacity="0.2"/><polyline points="112 204 112 144 52 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="112" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,192h48a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,144v60a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L82,185.3,45.6,221.7A8,8,0,0,1,40,224a8.3,8.3,0,0,1-5.7-2.3,8,8,0,0,1,0-11.3L70.7,174,46.3,149.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,52,136h60A8,8,0,0,1,120,144ZM208,32H72A16,16,0,0,0,56,48V96a8,8,0,0,0,16,0V48H208V184H160a8,8,0,0,0,0,16h48a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 204 112 144 52 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="216" x2="112" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,192h48a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 204 112 144 52 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="216" x2="112" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,192h48a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circles_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circles_four />
  <Heroicons.circles_four class="w-4 h-4" />
  <Heroicons.circles_four solid />
  <Heroicons.circles_four mini />
  <Heroicons.circles_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circles_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="74" cy="74" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="182" cy="74" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="74" cy="182" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="182" cy="182" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="180" r="36" opacity="0.2"/><circle cx="76" cy="76" r="36" opacity="0.2"/><circle cx="180" cy="76" r="36" opacity="0.2"/><circle cx="180" cy="180" r="36" opacity="0.2"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="44"/><circle cx="180" cy="76" r="44"/><circle cx="76" cy="180" r="44"/><circle cx="180" cy="180" r="44"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `corners_in` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.corners_in />
  <Heroicons.corners_in class="w-4 h-4" />
  <Heroicons.corners_in solid />
  <Heroicons.corners_in mini />
  <Heroicons.corners_in outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def corners_in(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 160 96 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 160 96 160 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 208 160 160 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 48 96 96 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 160 96 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 160 96 160 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 208 160 160 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 48 96 96 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 160 96 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 160 96 160 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 208 160 160 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 48 96 96 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,96V48a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,208,104H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8l48,48A8.3,8.3,0,0,0,96,216a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,104,208V160A8,8,0,0,0,96,152ZM99.1,40.6a8.4,8.4,0,0,0-8.8,1.7l-48,48a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,48,104H96a8,8,0,0,0,8-8V48A8,8,0,0,0,99.1,40.6ZM208,152H160a8,8,0,0,0-8,8v48a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l48-48a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,208,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 160 96 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 160 96 160 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 208 160 160 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 48 96 96 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 160 96 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 160 96 160 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 208 160 160 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 48 96 96 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_high />
  <Heroicons.wifi_high class="w-4 h-4" />
  <Heroicons.wifi_high solid />
  <Heroicons.wifi_high mini />
  <Heroicons.wifi_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M25.1,98.2a146.6,146.6,0,0,1,205.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M25.1,98.2a146.6,146.6,0,0,1,205.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" opacity="0.2"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M246.9,80.5a15.6,15.6,0,0,0-6.2-10.9c-66.4-50.1-159-50.1-225.3-.1a16.1,16.1,0,0,0-6.2,11,16.6,16.6,0,0,0,3.7,12.3l103,121.3a15.9,15.9,0,0,0,24.2,0l103-121.4A16.4,16.4,0,0,0,246.9,80.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M25.1,98.2a146.6,146.6,0,0,1,205.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M25.1,98.2a146.6,146.6,0,0,1,205.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_italic` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_italic />
  <Heroicons.text_italic class="w-4 h-4" />
  <Heroicons.text_italic solid />
  <Heroicons.text_italic mini />
  <Heroicons.text_italic outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_italic(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="56" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="144" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="56" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="200" x2="144" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="56" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="144" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,56a8,8,0,0,1-8,8H157.8L115.1,192H144a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16H98.2L140.9,64H112a8,8,0,0,1,0-16h80A8,8,0,0,1,200,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="56" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="200" x2="144" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="56" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="200" x2="144" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trophy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trophy />
  <Heroicons.trophy class="w-4 h-4" />
  <Heroicons.trophy solid />
  <Heroicons.trophy mini />
  <Heroicons.trophy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trophy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M198.2,128H208a32,32,0,0,0,32-32V80a8,8,0,0,0-8-8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M58,128H47.9a32,32,0,0,1-32-32V80a8,8,0,0,1,8-8h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M198.2,128H208a32,32,0,0,0,32-32V80a8,8,0,0,0-8-8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M58,128H47.9a32,32,0,0,1-32-32V80a8,8,0,0,1,8-8h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" opacity="0.2"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M198.2,128H208a32,32,0,0,0,32-32V80a8,8,0,0,0-8-8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M58,128H47.9a32,32,0,0,1-32-32V80a8,8,0,0,1,8-8h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,64H208V56a16,16,0,0,0-16-16H64A16,16,0,0,0,48,56v8H23.9a16,16,0,0,0-16,16V96a40,40,0,0,0,40,40h4c9.7,29.9,36.2,52.3,68.1,55.6V216H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16H136V191.6A79.7,79.7,0,0,0,204.3,136H208a40,40,0,0,0,40-40V80A16,16,0,0,0,232,64ZM47.9,120a24,24,0,0,1-24-24V80H48v31.1a86.9,86.9,0,0,0,.5,8.9ZM232,96a24.1,24.1,0,0,1-24,24h-.4a70.3,70.3,0,0,0,.4-8V80h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M198.2,128H208a32,32,0,0,0,32-32V80a8,8,0,0,0-8-8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M58,128H47.9a32,32,0,0,1-32-32V80a8,8,0,0,1,8-8h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,56v55.1c0,39.7,31.8,72.6,71.5,72.9A72,72,0,0,0,200,112V56a8,8,0,0,0-8-8H64A8,8,0,0,0,56,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M198.2,128H208a32,32,0,0,0,32-32V80a8,8,0,0,0-8-8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M58,128H47.9a32,32,0,0,1-32-32V80a8,8,0,0,1,8-8h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `columns` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.columns />
  <Heroicons.columns class="w-4 h-4" />
  <Heroicons.columns solid />
  <Heroicons.columns mini />
  <Heroicons.columns outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def columns(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="-4" y="100" width="176" height="56" rx="8" transform="translate(212 44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="84" y="100" width="176" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="-6" y="102" width="176" height="52" rx="8" transform="translate(210 46) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="86" y="102" width="176" height="52" rx="8" transform="translate(302 -46) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="-4" y="100" width="176" height="56" rx="8" transform="translate(212 44) rotate(90)" opacity="0.2"/><rect x="84" y="100" width="176" height="56" rx="8" transform="translate(300 -44) rotate(90)" opacity="0.2"/><rect x="-4" y="100" width="176" height="56" rx="8" transform="translate(212 44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="84" y="100" width="176" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,48V208a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V48A16,16,0,0,1,64,32h40A16,16,0,0,1,120,48Zm72-16H152a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="-4" y="100" width="176" height="56" rx="8" transform="translate(212 44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="84" y="100" width="176" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="-4" y="100" width="176" height="56" rx="8" transform="translate(212 44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="84" y="100" width="176" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_pdf` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_pdf />
  <Heroicons.file_pdf class="w-4 h-4" />
  <Heroicons.file_pdf solid />
  <Heroicons.file_pdf mini />
  <Heroicons.file_pdf outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_pdf(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 168 188 168 188 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="212" y1="196" x2="188" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,216a24,24,0,0,0,0-48H114v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="228 164 196 164 196 220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="196" x2="196" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112,220V164h16a28,28,0,0,1,0,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,204H52a20,20,0,0,0,0-40H36v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 168 188 168 188 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="212" y1="196" x2="188" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,216a24,24,0,0,0,0-48H114v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,160H48a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32H56V176h8a8,8,0,0,1,0,16Zm132-16v12h16a8,8,0,0,1,0,16H196v12a8,8,0,0,1-16,0V168a8,8,0,0,1,8-8h28a8,8,0,0,1,0,16Zm-68-16H114a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h14a32,32,0,0,0,0-64Zm0,48h-6V176h6a16,16,0,0,1,0,32ZM48,136H208a8,8,0,0,0,8-8V88a8.1,8.1,0,0,0-2.3-5.7l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88A8,8,0,0,0,48,136ZM152,44l44,44H152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216 168 188 168 188 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="212" y1="196" x2="188" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,216a24,24,0,0,0,0-48H114v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216 168 188 168 188 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="212" y1="196" x2="188" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,216a24,24,0,0,0,0-48H114v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_double_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_double_left />
  <Heroicons.caret_double_left class="w-4 h-4" />
  <Heroicons.caret_double_left solid />
  <Heroicons.caret_double_left mini />
  <Heroicons.caret_double_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_double_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 208 120 128 200 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 208 40 128 120 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 208 120 128 200 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 208 40 128 120 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="200 208 120 128 200 48 200 208" opacity="0.2"/><polygon points="200 208 120 128 200 48 200 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 208 40 128 120 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M203.1,40.6a8.4,8.4,0,0,0-8.8,1.7L128,108.7V48a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-80,80a8.1,8.1,0,0,0,0,11.4l80,80A8.3,8.3,0,0,0,120,216a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,128,208V147.3l66.3,66.4A8.3,8.3,0,0,0,200,216a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,208,208V48A8,8,0,0,0,203.1,40.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 208 120 128 200 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 208 40 128 120 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 208 120 128 200 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 208 40 128 120 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_notch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_notch />
  <Heroicons.circle_notch class="w-4 h-4" />
  <Heroicons.circle_notch solid />
  <Heroicons.circle_notch mini />
  <Heroicons.circle_notch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_notch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.7a96,96,0,1,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.7a96,96,0,1,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.7a96,96,0,1,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128A104,104,0,1,1,84.7,33.4a8.1,8.1,0,0,1,10.6,4,8,8,0,0,1-4,10.6,88,88,0,1,0,73.4,0,8,8,0,0,1-4-10.6,8.1,8.1,0,0,1,10.6-4A104.4,104.4,0,0,1,232,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.7a96,96,0,1,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.7a96,96,0,1,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_simple />
  <Heroicons.hourglass_simple class="w-4 h-4" />
  <Heroicons.hourglass_simple solid />
  <Heroicons.hourglass_simple mini />
  <Heroicons.hourglass_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L53.7,202.3A8,8,0,0,0,59.3,216H196.7a8,8,0,0,0,5.6-13.7L53.7,53.7A8,8,0,0,1,59.3,40Z" opacity="0.2"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,128,208,59.3A16,16,0,0,0,196.7,32H59.3A16,16,0,0,0,48,59.3L116.7,128,48,196.7A16,16,0,0,0,59.3,224H196.7A16,16,0,0,0,208,196.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `percent` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.percent />
  <Heroicons.percent class="w-4 h-4" />
  <Heroicons.percent solid />
  <Heroicons.percent mini />
  <Heroicons.percent outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def percent(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="76" r="28" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="180" cy="180" r="28" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="76" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="28" opacity="0.2"/><circle cx="180" cy="180" r="28" opacity="0.2"/><line x1="200" y1="56" x2="56" y2="200" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="76" r="28" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="180" cy="180" r="28" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.7,61.7l-144,144a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4l144-144a8.1,8.1,0,0,1,11.4,11.4ZM50.5,101.5a36.2,36.2,0,0,1,0-51,36.2,36.2,0,0,1,51,0,36.1,36.1,0,0,1-51,51ZM56,76a19.7,19.7,0,0,0,5.9,14.1,19.9,19.9,0,0,0,28.2,0,19.8,19.8,0,0,0,0-28.2h0a19.8,19.8,0,0,0-28.2,0A19.7,19.7,0,0,0,56,76ZM216,180a36,36,0,1,1-61.5-25.5,36.2,36.2,0,0,1,51,0A35.9,35.9,0,0,1,216,180Zm-16,0a19.7,19.7,0,0,0-5.9-14.1,19.8,19.8,0,0,0-28.2,0A19.9,19.9,0,1,0,200,180Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="76" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="76" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_key_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_key_open />
  <Heroicons.lock_key_open class="w-4 h-4" />
  <Heroicons.lock_key_open solid />
  <Heroicons.lock_key_open mini />
  <Heroicons.lock_key_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_key_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="144" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="164" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,71.8-4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,88H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V96A8,8,0,0,0,208,88Zm-80,72a20,20,0,1,1,20-20A20,20,0,0,1,128,160Z" opacity="0.2"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="12"/><path d="M208,80H100V52a28,28,0,0,1,56,0,8,8,0,0,0,16,0,44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,86.8V184a8,8,0,0,1-16,0V166.8a28,28,0,1,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `app_store_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.app_store_logo />
  <Heroicons.app_store_logo class="w-4 h-4" />
  <Heroicons.app_store_logo solid />
  <Heroicons.app_store_logo mini />
  <Heroicons.app_store_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def app_store_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="146.6" y1="112.1" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="40" x2="128" y2="80.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="57.5" y1="200" x2="48" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="40" x2="76.4" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.6" y1="168" x2="232" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="168" x2="142.5" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="40" x2="128" y2="80.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="40" x2="76.4" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="179.6" y1="168" x2="232" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="151.2" y1="119.9" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="168" x2="133.2" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="52.7" y1="208" x2="48" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="146.6" y1="112.1" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="40" x2="128" y2="80.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="57.5" y1="200" x2="48" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="40" x2="76.4" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.6" y1="168" x2="232" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="168" x2="142.5" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64.3,204.1l-9.4,16A8.1,8.1,0,0,1,48,224a8.7,8.7,0,0,1-4.1-1.1,8.1,8.1,0,0,1-2.8-11l9.5-16a8,8,0,1,1,13.7,8.2ZM232,160H184.2l-30.7-52a8,8,0,0,0-11-2.8,7.9,7.9,0,0,0-2.8,10.9l61.4,104A8.1,8.1,0,0,0,208,224a8.7,8.7,0,0,0,4.1-1.1,8.1,8.1,0,0,0,2.8-11L193.7,176H232a8,8,0,0,0,0-16Zm-89.5,0H90.4l44.4-75.2h.1l24-40.6a8,8,0,0,0-13.8-8.2L128,64.9l-17.1-29a8,8,0,1,0-13.8,8.2l21.6,36.5L71.8,160H24a8,8,0,0,0,0,16H142.5a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="146.6" y1="112.1" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="40" x2="128" y2="80.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="57.5" y1="200" x2="48" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="40" x2="76.4" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="179.6" y1="168" x2="232" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="168" x2="142.5" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="146.6" y1="112.1" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="40" x2="128" y2="80.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="57.5" y1="200" x2="48" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="40" x2="76.4" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="179.6" y1="168" x2="232" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="168" x2="142.5" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stack_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stack_simple />
  <Heroicons.stack_simple class="w-4 h-4" />
  <Heroicons.stack_simple solid />
  <Heroicons.stack_simple mini />
  <Heroicons.stack_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stack_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="16 104 128 168 240 104 128 40 16 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="16 144 128 208 240 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="16 100 128 164 240 100 128 36 16 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="16 148 128 212 240 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="16 104 128 168 240 104 128 40 16 104" opacity="0.2"/><polygon points="16 104 128 168 240 104 128 40 16 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="16 144 128 208 240 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M12,110.9l112,64a7.8,7.8,0,0,0,8,0l112-64a8,8,0,0,0,0-13.8l-112-64a7.7,7.7,0,0,0-8,0L12,97.1a8,8,0,0,0,0,13.8Z"/><path d="M236,137.1,128,198.8,20,137.1a8,8,0,0,0-8,13.8l112,64a7.8,7.8,0,0,0,8,0l112-64a8,8,0,1,0-8-13.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="16 104 128 168 240 104 128 40 16 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="16 144 128 208 240 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="16 104 128 168 240 104 128 40 16 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="16 144 128 208 240 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `butterfly` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.butterfly />
  <Heroicons.butterfly class="w-4 h-4" />
  <Heroicons.butterfly solid />
  <Heroicons.butterfly mini />
  <Heroicons.butterfly outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def butterfly(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.1,152.4c7.9.4,29.1-1.3,36.9-32.4s14.9-72-16-72-80,48-80,80c0-32-49.1-80-80-80S24,88,32,120s29,32.8,36.9,32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,144.2A36,36,0,1,0,128,180a36,36,0,1,0,40-35.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.1,152.4c7.9.4,29.1-1.3,36.9-32.4s14.9-72-16-72-80,48-80,80c0-32-49.1-80-80-80S24,88,32,120s29,32.8,36.9,32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,144.2A36,36,0,1,0,128,180a36,36,0,1,0,40-35.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120c-7.8,31.1-29,32.8-36.9,32.4h0A36,36,0,1,1,128,180a36,36,0,1,1-59.1-27.6h0c-7.9.4-29.1-1.3-36.9-32.4S17.1,48,48,48s80,48,80,80c0-32,49.1-80,80-80S232,88,224,120Z" opacity="0.2"/><line x1="128" y1="56" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.1,152.4c7.9.4,29.1-1.3,36.9-32.4s14.9-72-16-72-80,48-80,80c0-32-49.1-80-80-80S24,88,32,120s29,32.8,36.9,32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,144.2A36,36,0,1,0,128,180a36,36,0,1,0,40-35.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,87.5V56a8,8,0,0,0-16,0V87.5a98.7,98.7,0,0,1,8,12.7A98.7,98.7,0,0,1,136,87.5Z"/><path d="M231.4,50.4C227.7,45.6,220.7,40,208,40c-16.7,0-38.1,11.3-57.2,30.3A144.2,144.2,0,0,0,136,87.5V172a8,8,0,0,1-16,0V87.5a144.2,144.2,0,0,0-14.8-17.2C86.1,51.3,64.7,40,48,40c-12.7,0-19.7,5.6-23.4,10.4-6.8,8.7-12.2,24.1-.4,71.5,6.6,26.3,22,34.9,33.5,37.5a40,40,0,1,0,70.3,38,40,40,0,1,0,70.3-38c11.5-2.6,26.9-11.2,33.5-37.5S243.6,66,231.4,50.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M187.1,152.4c7.9.4,29.1-1.3,36.9-32.4s14.9-72-16-72-80,48-80,80c0-32-49.1-80-80-80S24,88,32,120s29,32.8,36.9,32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,144.2A36,36,0,1,0,128,180a36,36,0,1,0,40-35.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M187.1,152.4c7.9.4,29.1-1.3,36.9-32.4s14.9-72-16-72-80,48-80,80c0-32-49.1-80-80-80S24,88,32,120s29,32.8,36.9,32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,144.2A36,36,0,1,0,128,180a36,36,0,1,0,40-35.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `frame_corners` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.frame_corners />
  <Heroicons.frame_corners class="w-4 h-4" />
  <Heroicons.frame_corners solid />
  <Heroicons.frame_corners mini />
  <Heroicons.frame_corners outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def frame_corners(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 192 80 192 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 176 64 176 64 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 88 184 88 184 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 168 72 168 72 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><polyline points="160 80 192 80 192 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 176 64 176 64 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM88,192H56a8,8,0,0,1-8-8V152a8,8,0,0,1,16,0v24H88a8,8,0,0,1,0,16Zm120-88a8,8,0,0,1-16,0V80H168a8,8,0,0,1,0-16h32a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 192 80 192 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 176 64 176 64 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 192 80 192 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 176 64 176 64 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thermometer` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thermometer />
  <Heroicons.thermometer class="w-4 h-4" />
  <Heroicons.thermometer solid />
  <Heroicons.thermometer mini />
  <Heroicons.thermometer outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thermometer(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="80" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="216" cy="80" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="108" cy="188" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="168" x2="108" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,154.8V56a40,40,0,0,1,80,0v98.8h0a52,52,0,1,1-80,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="80" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,147h0V48a32,32,0,0,0-64,0v99h0a52,52,0,1,0,64,0Zm-32,61a20,20,0,1,1,20-20A20.1,20.1,0,0,1,120,208Z" opacity="0.2"/><line x1="120" y1="168" x2="120" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,52a28,28,0,1,0,28,28A28.1,28.1,0,0,0,212,52Zm0,40a12,12,0,1,1,12-12A12,12,0,0,1,212,92Zm-52,51.3V48a40,40,0,0,0-80,0v95.3A59.4,59.4,0,0,0,60,188a60,60,0,0,0,120,0A59.4,59.4,0,0,0,160,143.3ZM120,24a24.1,24.1,0,0,1,24,24V80H96V48A24.1,24.1,0,0,1,120,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="80" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="168" x2="120" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="80" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="168" x2="120" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `first_aid_kit` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.first_aid_kit />
  <Heroicons.first_aid_kit class="w-4 h-4" />
  <Heroicons.first_aid_kit solid />
  <Heroicons.first_aid_kit mini />
  <Heroicons.first_aid_kit outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def first_aid_kit(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="116" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="144" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="116" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="144" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,72V52a16,16,0,0,0-16-16H104A16,16,0,0,0,88,52V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" opacity="0.2"/><line x1="128" y1="116" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="144" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H176V56a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,56v8H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM96,56a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Zm60,96H136v20a8,8,0,0,1-16,0V152H100a8,8,0,0,1,0-16h20V116a8,8,0,0,1,16,0v20h20a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="116" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="144" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="116" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="144" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_top` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_top />
  <Heroicons.align_top class="w-4 h-4" />
  <Heroicons.align_top solid />
  <Heroicons.align_top mini />
  <Heroicons.align_top outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_top(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="72" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="122" y="106" width="104" height="52" rx="8" transform="translate(306 -42) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="56" y="80" width="52" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(300 -44) rotate(90)" opacity="0.2"/><rect x="56" y="72" width="56" height="152" rx="8" opacity="0.2"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="72" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,40a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,40ZM192,64H152a16,16,0,0,0-16,16v96a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V80A16,16,0,0,0,192,64Zm-88,0H64A16,16,0,0,0,48,80V216a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V80A16,16,0,0,0,104,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="72" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="72" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `radio` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.radio />
  <Heroicons.radio class="w-4 h-4" />
  <Heroicons.radio solid />
  <Heroicons.radio mini />
  <Heroicons.radio outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def radio(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V80A0,0,0,0,1,32,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="192" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="112" x2="96" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="144" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V80A0,0,0,0,1,32,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="80" x2="192" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="160" cy="144" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="124" x2="96" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="164" x2="96" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,80H32V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V88A8,8,0,0,0,216,80Zm-56,96a32,32,0,1,1,32-32A32,32,0,0,1,160,176Z" opacity="0.2"/><path d="M32,80H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V80A0,0,0,0,1,32,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="192" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="112" x2="96" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="144" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H86.5L194.3,39.7a8,8,0,1,0-4.6-15.4l-160,48h0l-.7.3h-.1l-.5.3H28a6.8,6.8,0,0,0-2.1,1.7.1.1,0,0,1-.1.1c-.1.1-.1.2-.2.4l-.2.2a.3.3,0,0,0-.1.2,6.7,6.7,0,0,0-1,2.3c-.1.1-.1.2-.1.4h-.1a2,2,0,0,1-.1.7h0V80h0V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72ZM96,184H56a8,8,0,0,1,0-16H96a8,8,0,0,1,0,16Zm0-32H56a8,8,0,0,1,0-16H96a8,8,0,0,1,0,16Zm0-32H56a8,8,0,0,1,0-16H96a8,8,0,0,1,0,16Zm72,52a28,28,0,1,1,28-28A28.1,28.1,0,0,1,168,172Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V80A0,0,0,0,1,32,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="80" x2="192" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="160" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="112" x2="96" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="144" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V80A0,0,0,0,1,32,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="80" x2="192" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="160" cy="144" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="112" x2="96" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="144" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="176" x2="96" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `spotify_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.spotify_logo />
  <Heroicons.spotify_logo class="w-4 h-4" />
  <Heroicons.spotify_logo solid />
  <Heroicons.spotify_logo mini />
  <Heroicons.spotify_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def spotify_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M179.1,108.3a112.1,112.1,0,0,0-102.3.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.3,136.7a79.9,79.9,0,0,0-72.7.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M149.5,165.1A47.3,47.3,0,0,0,128,160a48.7,48.7,0,0,0-21.6,5.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M179.1,116.3a112.1,112.1,0,0,0-102.3.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M158.7,155.3A68.4,68.4,0,0,0,128,148a67.6,67.6,0,0,0-30.8,7.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M179.1,108.3a112.1,112.1,0,0,0-102.3.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.3,136.7a79.9,79.9,0,0,0-72.7.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M149.5,165.1A47.3,47.3,0,0,0,128,160a48.7,48.7,0,0,0-21.6,5.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm28.6,144.7a8,8,0,0,1-10.7,3.5A39.6,39.6,0,0,0,128,168a39.1,39.1,0,0,0-18,4.3,8.6,8.6,0,0,1-3.6.8,8,8,0,0,1-3.6-15.1,55.3,55.3,0,0,1,25.2-6,56.1,56.1,0,0,1,25.1,5.9A8.1,8.1,0,0,1,156.6,168.7Zm14.8-28.3a7.9,7.9,0,0,1-10.7,3.4,72,72,0,0,0-65.4.1,8.4,8.4,0,0,1-3.7.9,7.9,7.9,0,0,1-7.1-4.4A8,8,0,0,1,88,129.6a87.9,87.9,0,0,1,79.9,0A8,8,0,0,1,171.4,140.4ZM186.2,112a7.9,7.9,0,0,1-10.7,3.4A104.3,104.3,0,0,0,128,104a103.2,103.2,0,0,0-47.6,11.5,7.7,7.7,0,0,1-3.6.9,8,8,0,0,1-3.7-15.1,120.2,120.2,0,0,1,109.7-.1A8,8,0,0,1,186.2,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M179.1,108.3a112.1,112.1,0,0,0-102.3.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M164.3,136.7a79.9,79.9,0,0,0-72.7.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M149.5,165.1A47.3,47.3,0,0,0,128,160a48.7,48.7,0,0,0-21.6,5.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M179.1,108.3a112.1,112.1,0,0,0-102.3.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M164.3,136.7a79.9,79.9,0,0,0-72.7.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M149.5,165.1A47.3,47.3,0,0,0,128,160a48.7,48.7,0,0,0-21.6,5.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_center_vertical_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_center_vertical_simple />
  <Heroicons.align_center_vertical_simple class="w-4 h-4" />
  <Heroicons.align_center_vertical_simple solid />
  <Heroicons.align_center_vertical_simple mini />
  <Heroicons.align_center_vertical_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_center_vertical_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="40" width="80" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="40" width="80" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="40" width="80" height="176" rx="8" opacity="0.2"/><rect x="88" y="40" width="80" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,128a8,8,0,0,1-8,8H176v72a16,16,0,0,1-16,16H96a16,16,0,0,1-16-16V136H48a8,8,0,0,1,0-16H80V48A16,16,0,0,1,96,32h64a16,16,0,0,1,16,16v72h32A8,8,0,0,1,216,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="40" width="80" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="40" width="80" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat />
  <Heroicons.chat class="w-4 h-4" />
  <Heroicons.chat solid />
  <Heroicons.chat mini />
  <Heroicons.chat outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" opacity="0.2"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40A16,16,0,0,0,24,64V222.8a15.7,15.7,0,0,0,9.3,14.5,16,16,0,0,0,17-2.2L82,208.4l134-.4a16,16,0,0,0,16-16V64A16,16,0,0,0,216,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_nine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_nine />
  <Heroicons.number_nine class="w-4 h-4" />
  <Heroicons.number_nine solid />
  <Heroicons.number_nine mini />
  <Heroicons.number_nine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_nine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176.5" y1="116" x2="111.8" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176.5" y1="116" x2="111.7" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="88" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176.5" y1="116" x2="111.7" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,88a64,64,0,1,0-64,64,65.1,65.1,0,0,0,19.4-3l-42.5,70.9a8,8,0,0,0,2.7,11,8.7,8.7,0,0,0,4.1,1.1,8,8,0,0,0,6.9-3.9l64.7-108A63.5,63.5,0,0,0,192,88ZM80,88a48,48,0,1,1,48,48A48,48,0,0,1,80,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176.5" y1="116" x2="111.7" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="88" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176.5" y1="116" x2="111.7" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="88" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `identification_card` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.identification_card />
  <Heroicons.identification_card class="w-4 h-4" />
  <Heroicons.identification_card solid />
  <Heroicons.identification_card mini />
  <Heroicons.identification_card outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def identification_card(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92.1" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.1,168a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="148" x2="184" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="94.1" cy="116" r="22" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72.1,164a22,22,0,0,1,44,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48ZM92.1,144a24,24,0,1,1,24-24A23.9,23.9,0,0,1,92.1,144Z" opacity="0.2"/><line x1="152" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92.1" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.1,168a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM125.1,175.7a8,8,0,0,1-9.8-5.7,24,24,0,0,0-46.4,0,8.1,8.1,0,0,1-7.8,6l-2-.3a7.9,7.9,0,0,1-5.7-9.7,40.2,40.2,0,0,1,16.3-23.2,32,32,0,1,1,44.8,0A40.2,40.2,0,0,1,130.8,166,7.9,7.9,0,0,1,125.1,175.7ZM192,152H152a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Zm0-32H152a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Z"/><circle cx="92.1" cy="120" r="16"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92.1" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M61.1,168a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92.1" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M61.1,168a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_dollar` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_dollar />
  <Heroicons.currency_dollar class="w-4 h-4" />
  <Heroicons.currency_dollar solid />
  <Heroicons.currency_dollar mini />
  <Heroicons.currency_dollar outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_dollar(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,120H136V56h8a32.1,32.1,0,0,1,32,32,8,8,0,0,0,16,0,48,48,0,0,0-48-48h-8V24a8,8,0,0,0-16,0V40H108a48,48,0,0,0,0,96h12v64H104a32.1,32.1,0,0,1-32-32,8,8,0,0,0-16,0,48,48,0,0,0,48,48h16v16a8,8,0,0,0,16,0V216h16a48,48,0,0,0,0-96Zm-32,0H108a32,32,0,0,1,0-64h12Zm32,80H136V136h16a32,32,0,0,1,0,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `grid_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.grid_four />
  <Heroicons.grid_four class="w-4 h-4" />
  <Heroicons.grid_four solid />
  <Heroicons.grid_four mini />
  <Heroicons.grid_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def grid_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="212" y1="128" x2="44" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="128" x2="44" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128H44V52a8,8,0,0,1,8-8h76Z" opacity="0.2"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="212" y1="128" x2="44" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,36H52A16,16,0,0,0,36,52V204a16,16,0,0,0,16,16H204a16,16,0,0,0,16-16V52A16,16,0,0,0,204,36Zm0,92H128V52h76ZM52,128h76v76H52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="212" y1="128" x2="44" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="212" y1="128" x2="44" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bug_droid` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bug_droid />
  <Heroicons.bug_droid class="w-4 h-4" />
  <Heroicons.bug_droid solid />
  <Heroicons.bug_droid mini />
  <Heroicons.bug_droid outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bug_droid(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,148a80,80,0,0,1-160,0V108a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="92" r="12"/><circle cx="100" cy="92" r="12"/><line x1="56" y1="28" x2="76.3" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="28" x2="179.7" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="84" r="16"/><circle cx="100" cy="84" r="16"/><path d="M207.9,148a80,80,0,0,1-160,0V108a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="207.9" y1="128" x2="47.9" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="55.9" y1="28" x2="76.2" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="199.9" y1="28" x2="179.6" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M47.9,128h160v20a80,80,0,0,1-160,0Z" opacity="0.2"/><path d="M207.9,148a80,80,0,0,1-160,0V108a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="207.9" y1="128" x2="47.9" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="155.9" cy="92" r="12"/><circle cx="99.9" cy="92" r="12"/><line x1="55.9" y1="28" x2="76.2" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="199.9" y1="28" x2="179.6" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M191.3,47l14.1-13.1a8.2,8.2,0,0,0,.4-11.4,8,8,0,0,0-11.3-.4L179.1,36.5a87.7,87.7,0,0,0-102.4,0L61.4,22.1A8,8,0,0,0,50.5,33.9L64.6,47a87.4,87.4,0,0,0-24.7,61v40a88,88,0,0,0,176,0V108A87.7,87.7,0,0,0,191.3,47ZM127.9,36a72.1,72.1,0,0,1,72,72v12H55.9V108A72.1,72.1,0,0,1,127.9,36Zm16,56a12,12,0,1,1,12,12A12,12,0,0,1,143.9,92Zm-56,0a12,12,0,1,1,12,12A12,12,0,0,1,87.9,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="84" r="10"/><circle cx="100" cy="84" r="10"/><path d="M207.9,148a80,80,0,0,1-160,0V108a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="207.9" y1="128" x2="47.9" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="55.9" y1="28" x2="76.2" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="199.9" y1="28" x2="179.6" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="84" r="8"/><circle cx="100" cy="84" r="8"/><path d="M207.9,148a80,80,0,0,1-160,0V108a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="207.9" y1="128" x2="47.9" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="55.9" y1="28" x2="76.2" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="199.9" y1="28" x2="179.6" y2="46.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cardholder` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cardholder />
  <Heroicons.cardholder class="w-4 h-4" />
  <Heroicons.cardholder solid />
  <Heroicons.cardholder mini />
  <Heroicons.cardholder outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cardholder(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,120H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,100H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224V72a16,16,0,0,0-16-16H48A16,16,0,0,0,32,72Z" opacity="0.2"/><rect x="32" y="56" width="192" height="144" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,120H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H208a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,208,48Zm-56.5,76.8a24,24,0,0,1-47,0A16.1,16.1,0,0,0,88.8,112H40V96H216v16H167.2A16.1,16.1,0,0,0,151.5,124.8ZM48,64H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,120H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,120H88.8a7.9,7.9,0,0,1,7.8,6.4,32.1,32.1,0,0,0,62.8,0,7.9,7.9,0,0,1,7.8-6.4H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_sun` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_sun />
  <Heroicons.cloud_sun class="w-4 h-4" />
  <Heroicons.cloud_sun solid />
  <Heroicons.cloud_sun mini />
  <Heroicons.cloud_sun outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_sun(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="79.7" y1="56.7" x2="75.5" y2="33.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48.7" y1="76.5" x2="29" y2="62.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.7" y1="112.3" x2="17.1" y2="116.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="115.5" y1="64.7" x2="129.3" y2="45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M51.6,135.4a49.1,49.1,0,0,1-10.9-23.1,48,48,0,0,1,91.1-27.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="79.7" y1="56.7" x2="75.5" y2="33.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48.7" y1="76.5" x2="29" y2="62.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40.7" y1="112.3" x2="17.1" y2="116.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="115.5" y1="64.7" x2="129.3" y2="45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M51.6,135.4a49.1,49.1,0,0,1-10.9-23.1,48,48,0,0,1,91.1-27.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M131.8,84.4a48,48,0,0,0-91.1,27.9,49.1,49.1,0,0,0,10.9,23.1h0A43.6,43.6,0,0,1,76,128a42.5,42.5,0,0,1,14.3,2.4h0a68.3,68.3,0,0,1,41.5-46Z" opacity="0.2"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="79.7" y1="56.7" x2="75.5" y2="33.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48.7" y1="76.5" x2="29" y2="62.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.7" y1="112.3" x2="17.1" y2="116.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="115.5" y1="64.7" x2="129.3" y2="45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M51.6,135.4a49.1,49.1,0,0,1-10.9-23.1,48,48,0,0,1,91.1-27.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,72a78.8,78.8,0,0,0-20.2,2.7,58.9,58.9,0,0,0-9.4-11.5l9.4-13.6a7.9,7.9,0,0,0-1.9-11.1,8,8,0,0,0-11.2,1.9L113.2,54a55,55,0,0,0-26.9-6L83.4,31.7a8,8,0,1,0-15.8,2.8l2.9,16.3A55.7,55.7,0,0,0,47.2,65.6L33.6,56.1a8,8,0,0,0-11.1,2,7.9,7.9,0,0,0,1.9,11.1L38,78.7a55.1,55.1,0,0,0-6,27l-16.3,2.9a8,8,0,0,0,1.4,15.9h1.4l16.3-2.9a52.3,52.3,0,0,0,5.9,12.4A51.9,51.9,0,0,0,76,224h80a76,76,0,0,0,0-152ZM48.6,111.1v-.4a39.6,39.6,0,0,1,6.5-29.5V81h.1A40.1,40.1,0,0,1,80.8,64.6h.5a39.5,39.5,0,0,1,29.1,6.3l.5.3.4.3a37.4,37.4,0,0,1,9.3,9.3,76.6,76.6,0,0,0-35.6,40,53.8,53.8,0,0,0-9-.8,52.6,52.6,0,0,0-22.1,4.9A40,40,0,0,1,48.6,111.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="79.7" y1="56.7" x2="75.5" y2="33.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48.7" y1="76.5" x2="29" y2="62.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40.7" y1="112.3" x2="17.1" y2="116.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="115.5" y1="64.7" x2="129.3" y2="45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M51.6,135.4a49.1,49.1,0,0,1-10.9-23.1,48,48,0,0,1,91.1-27.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="79.7" y1="56.7" x2="75.5" y2="33.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48.7" y1="76.5" x2="29" y2="62.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40.7" y1="112.3" x2="17.1" y2="116.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="115.5" y1="64.7" x2="129.3" y2="45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M51.6,135.4a49.1,49.1,0,0,1-10.9-23.1,48,48,0,0,1,91.1-27.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_pointing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_pointing />
  <Heroicons.hand_pointing class="w-4 h-4" />
  <Heroicons.hand_pointing solid />
  <Heroicons.hand_pointing mini />
  <Heroicons.hand_pointing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_pointing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" opacity="0.2"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,84a27.6,27.6,0,0,0-14.6,4.1A28.1,28.1,0,0,0,136,74.7V36a28,28,0,0,0-56,0v91.4l-7-12.1A28,28,0,0,0,24.3,143c32.5,68.4,54.1,97,103.7,97a88.1,88.1,0,0,0,88-88V112A28.1,28.1,0,0,0,188,84Zm12,68a72.1,72.1,0,0,1-72,72c-20.2,0-34.2-5.5-47-18.2S56.3,173,38.7,135.9l-.3-.6a11.6,11.6,0,0,1-1.2-9.1,11.8,11.8,0,0,1,5.6-7.3,12,12,0,0,1,9.1-1.2,11.6,11.6,0,0,1,7.2,5.6l22,38a8.1,8.1,0,0,0,9,3.7,7.9,7.9,0,0,0,5.9-7.7V36a12,12,0,0,1,24,0v68a8,8,0,0,0,16,0v-4a12,12,0,0,1,24,0v12a8,8,0,0,0,16,0,12,12,0,0,1,24,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112V100a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V157.3l-21.9-38a20,20,0,0,0-34.7,20C64,208,83.8,232,128,232a80,80,0,0,0,80-80V112a20,20,0,0,0-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microsoft_powerpoint_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microsoft_powerpoint_logo />
  <Heroicons.microsoft_powerpoint_logo class="w-4 h-4" />
  <Heroicons.microsoft_powerpoint_logo solid />
  <Heroicons.microsoft_powerpoint_logo mini />
  <Heroicons.microsoft_powerpoint_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microsoft_powerpoint_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78,136H94a16,16,0,0,0,0-32H78v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M58,72a96,96,0,1,1,0,112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="68" width="128" height="120" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M82,136H98a16,16,0,0,0,0-32H82v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M61.1,68a96,96,0,1,1,0,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" opacity="0.2"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78,136H94a16,16,0,0,0,0-32H78v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M58,72a96,96,0,1,1,0,112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M102,120a8,8,0,0,0-8-8H86v16h8A8,8,0,0,0,102,120Z"/><path d="M136,24A104.5,104.5,0,0,0,54,64H40A16,16,0,0,0,24,80v96a16,16,0,0,0,16,16H54A104,104,0,1,0,136,24ZM70,152V104a8,8,0,0,1,8-8H94a24,24,0,0,1,0,48H86v8a8,8,0,0,1-16,0Zm58,63.6A88.7,88.7,0,0,1,75.6,192H128ZM128,64H75.6A88.7,88.7,0,0,1,128,40.4Zm16-23.6A88,88,0,0,1,223.6,120H160V80a16,16,0,0,0-16-16Zm0,175.2V192a16,16,0,0,0,16-16V136h63.6A88,88,0,0,1,144,215.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M78,136H94a16,16,0,0,0,0-32H78v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M58,72a96,96,0,1,1,0,112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M78,136H94a16,16,0,0,0,0-32H78v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M58,72a96,96,0,1,1,0,112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paint_brush_household` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paint_brush_household />
  <Heroicons.paint_brush_household class="w-4 h-4" />
  <Heroicons.paint_brush_household solid />
  <Heroicons.paint_brush_household mini />
  <Heroicons.paint_brush_household outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paint_brush_household(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="104" x2="152" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="101.8" y1="183.4" x2="70.6" y2="214.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="73.8" y1="155.4" x2="42.6" y2="186.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,92.2,191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L96,240,16,160,92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2A8,8,0,0,0,136.1,92.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="104" x2="152" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="188" x2="70.6" y2="214.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="160" x2="42.6" y2="186.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M136.1,92.2,191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L96,240,16,160,92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2A8,8,0,0,0,136.1,92.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2a8,8,0,0,0,11.6-.3L191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L152,184,72,104Z" opacity="0.2"/><line x1="72" y1="104" x2="152" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="101.8" y1="183.4" x2="70.6" y2="214.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="73.8" y1="155.4" x2="42.6" y2="186.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,92.2,191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L96,240,16,160,92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2A8,8,0,0,0,136.1,92.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M230.6,25.4a31.9,31.9,0,0,0-45.2,0l-.3.3L130.2,86.9,121,77.7a23.9,23.9,0,0,0-34,0L10.3,154.3a8.1,8.1,0,0,0,0,11.4l80,80a8.2,8.2,0,0,0,11.4,0L178.3,169a23.9,23.9,0,0,0,0-34l-9.2-9.2,61.2-54.9.3-.3A31.9,31.9,0,0,0,230.6,25.4ZM96,228.7,81.9,214.6,107.4,189a8,8,0,0,0-11.3-11.3L70.6,203.3,53.9,186.6,79.4,161a8,8,0,0,0-11.3-11.3L42.6,175.3,27.3,160,72,115.3,140.7,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="104" x2="152" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="101.8" y1="183.4" x2="70.6" y2="214.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="73.8" y1="155.4" x2="42.6" y2="186.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136.1,92.2,191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L96,240,16,160,92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2A8,8,0,0,0,136.1,92.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="104" x2="152" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="101.8" y1="183.4" x2="70.6" y2="214.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="73.8" y1="155.4" x2="42.6" y2="186.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136.1,92.2,191,31a24,24,0,0,1,34,34l-61.2,54.9a8,8,0,0,0-.3,11.6l9.2,9.2a16.1,16.1,0,0,1,0,22.6L96,240,16,160,92.7,83.3a16.1,16.1,0,0,1,22.6,0l9.2,9.2A8,8,0,0,0,136.1,92.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_dots` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_dots />
  <Heroicons.chat_dots class="w-4 h-4" />
  <Heroicons.chat_dots solid />
  <Heroicons.chat_dots mini />
  <Heroicons.chat_dots outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_dots(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="80" cy="128" r="12"/><circle cx="176" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="100" cy="128" r="16"/><circle cx="156" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" opacity="0.2"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="80" cy="128" r="12"/><circle cx="176" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40A16,16,0,0,0,24,64V222.8a15.7,15.7,0,0,0,9.3,14.5,14.7,14.7,0,0,0,6.7,1.6,16,16,0,0,0,10.3-3.8l31.8-26.7L216,208a16,16,0,0,0,16-16V64A16,16,0,0,0,216,48ZM80,140a12,12,0,1,1,12-12A12,12,0,0,1,80,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,176,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="10"/><circle cx="176" cy="128" r="10"/><circle cx="80" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.4,201.9l-32.3,27A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H82.5A7.8,7.8,0,0,0,77.4,201.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="8"/><circle cx="80" cy="128" r="8"/><circle cx="176" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_low />
  <Heroicons.battery_low class="w-4 h-4" />
  <Heroicons.battery_low solid />
  <Heroicons.battery_low mini />
  <Heroicons.battery_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="164" x2="64" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8Z"/><rect x="56" y="80" width="32" height="96" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flame` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flame />
  <Heroicons.flame class="w-4 h-4" />
  <Heroicons.flame solid />
  <Heroicons.flame mini />
  <Heroicons.flame outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flame(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-120-80-120S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,184a40,40,0,0,0,80,0c0-40-40-64-40-64S88,144,88,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-120-80-120S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,184a40,40,0,0,0,80,0c0-40-40-64-40-64S88,144,88,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24S48,72,48,144a79.9,79.9,0,0,0,77.9,79.9A39.9,39.9,0,0,1,88,184c0-40,40-64,40-64s40,24,40,64a39.9,39.9,0,0,1-37.9,39.9A79.9,79.9,0,0,0,208,144C208,72,128,24,128,24Z" opacity="0.2"/><path d="M208,144c0-72-80-120-80-120S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,184a40,40,0,0,0,80,0c0-40-40-64-40-64S88,144,88,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M173.8,51.5a221.5,221.5,0,0,0-41.7-34.4,8,8,0,0,0-8.2,0A221.5,221.5,0,0,0,82.2,51.5C54.6,80.5,40,112.5,40,144a88,88,0,0,0,176,0C216,112.5,201.4,80.5,173.8,51.5ZM96,184c0-27.7,22.5-47.3,32-54.3,9.5,7,32,26.6,32,54.3a32,32,0,0,1-64,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-120-80-120S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,184a40,40,0,0,0,80,0c0-40-40-64-40-64S88,144,88,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-120-80-120S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,184a40,40,0,0,0,80,0c0-40-40-64-40-64S88,144,88,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `alarm` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.alarm />
  <Heroicons.alarm class="w-4 h-4" />
  <Heroicons.alarm solid />
  <Heroicons.alarm mini />
  <Heroicons.alarm outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def alarm(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="88" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="195.9" y1="26.2" x2="229.8" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="26.2" y1="60.1" x2="60.1" y2="26.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 80 128 128 176 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="201.5" y1="20.5" x2="235.5" y2="54.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="20.5" y1="54.5" x2="54.5" y2="20.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" opacity="0.2"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="88" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="195.9" y1="26.2" x2="229.8" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="26.2" y1="60.1" x2="60.1" y2="26.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235.5,54.5l-34-34a8,8,0,1,0-11.3,11.3l34,34a8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3A8,8,0,0,0,235.5,54.5Z"/><path d="M65.8,20.5a8,8,0,0,0-11.3,0l-34,34a8,8,0,0,0,0,11.3,8.3,8.3,0,0,0,5.7,2.3,8,8,0,0,0,5.6-2.3l34-34A8,8,0,0,0,65.8,20.5Z"/><path d="M224,125.2a14.8,14.8,0,0,1-.1-2.1h0A96,96,0,0,0,133,32.1H123A96,96,0,0,0,32.1,123h0a14.8,14.8,0,0,1-.1,2.1v5.6a14.8,14.8,0,0,1,.1,2.1h0A96,96,0,0,0,123,223.9h10A96,96,0,0,0,223.9,133h0a14.8,14.8,0,0,1,.1-2.1v-5.6ZM184,136H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="26.2" x2="229.8" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="26.2" y1="60.1" x2="60.1" y2="26.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="26.2" x2="229.8" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="26.2" y1="60.1" x2="60.1" y2="26.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rocket` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rocket />
  <Heroicons.rocket class="w-4 h-4" />
  <Heroicons.rocket solid />
  <Heroicons.rocket mini />
  <Heroicons.rocket outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rocket(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="224" x2="112" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M123,19.8C104,35,40.5,95.8,96,192h64c54.4-96.2-8.2-156.9-27-172.2A7.8,7.8,0,0,0,123,19.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M73.9,111.4,42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.5,110.6l32,38.4a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.7A8,8,0,0,1,190,216l-30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="96" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="228" x2="112" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M123,19.8C104,35,40.5,95.8,96,192h64c54.4-96.2-8.2-156.9-27-172.2A7.8,7.8,0,0,0,123,19.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M73.9,111.4,42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M181.5,110.6l32,38.4a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.7A8,8,0,0,1,190,216l-30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="96" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M73.9,111.4h0L42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24C78.4,161.4,72.7,134.5,73.9,111.4Z" opacity="0.2"/><path d="M181.5,110.7h0l31.4,37.7a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.6a8,8,0,0,1-12.8,4.6l-30-24C177,160.7,182.7,133.8,181.5,110.7Z" opacity="0.2"/><line x1="144" y1="224" x2="112" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M123,19.8C104,35,40.5,95.8,96,192h64c54.4-96.2-8.2-156.9-27-172.2A7.8,7.8,0,0,0,123,19.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M73.9,111.4,42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.5,110.6l32,38.4a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.7A8,8,0,0,1,190,216l-30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="96" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,216H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Z"/><path d="M219.6,143.9l-30.2-36.3a125.4,125.4,0,0,0-8-34.9c-11.6-30.2-32.1-50-43.4-59.1a15.9,15.9,0,0,0-20-.1c-11.4,9.1-32.2,28.9-43.9,59.1A121.5,121.5,0,0,0,66,108.3L36.4,143.9A16.1,16.1,0,0,0,33,157.6l12.4,55.6a15.9,15.9,0,0,0,10.3,11.6,17,17,0,0,0,5.4.9,16,16,0,0,0,9.9-3.5L98.8,200h58.4L185,222.2a16,16,0,0,0,9.9,3.5,17,17,0,0,0,5.4-.9,15.9,15.9,0,0,0,10.3-11.6L223,157.6A16.1,16.1,0,0,0,219.6,143.9ZM61,209.7,48.7,154.1l17.9-21.5q3.5,28.1,19.1,57.4ZM128,108a12,12,0,1,1,12-12A12,12,0,0,1,128,108Zm67,101.7-24.8-19.8c10.4-19.7,16.6-39,18.8-57.8l18.3,22Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="224" x2="112" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M123,19.8C104,35,40.5,95.8,96,192h64c54.4-96.2-8.2-156.9-27-172.2A7.8,7.8,0,0,0,123,19.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M73.9,111.4,42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M181.5,110.6l32,38.4a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.7A8,8,0,0,1,190,216l-30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="96" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="224" x2="112" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M123,19.8C104,35,40.5,95.8,96,192h64c54.4-96.2-8.2-156.9-27-172.2A7.8,7.8,0,0,0,123,19.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M73.9,111.4,42.5,149a7.6,7.6,0,0,0-1.6,6.8l12.3,55.7A8,8,0,0,0,66,216l30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M181.5,110.6l32,38.4a7.6,7.6,0,0,1,1.6,6.8l-12.3,55.7A8,8,0,0,1,190,216l-30-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="96" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eyedropper_sample` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eyedropper_sample />
  <Heroicons.eyedropper_sample class="w-4 h-4" />
  <Heroicons.eyedropper_sample solid />
  <Heroicons.eyedropper_sample mini />
  <Heroicons.eyedropper_sample outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eyedropper_sample(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52.3" y1="160" x2="141.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="52.3" y1="160" x2="141.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M141.3,160l-38.7,38.6a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8A31.9,31.9,0,0,1,52.3,160Z" opacity="0.2"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52.3" y1="160" x2="141.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,67.5a35.5,35.5,0,0,0-11.3-25.7c-14-13.2-36.7-12.7-50.6,1.2L140.2,64.9a24.1,24.1,0,0,0-33.2.8l-7,7a16.1,16.1,0,0,0,0,22.6l2.1,2.1L51.7,147.7a40.3,40.3,0,0,0-11,35.8l-9.8,22.4a13.6,13.6,0,0,0,2.9,15.2,15.8,15.8,0,0,0,11.3,4.7,16.3,16.3,0,0,0,6.4-1.3l21-9.2a40.3,40.3,0,0,0,35.8-11l50.3-50.4,2.1,2.1a15.9,15.9,0,0,0,22.6,0l7-7a24.1,24.1,0,0,0,.8-33.2l22.4-22.3A36.2,36.2,0,0,0,224,67.5ZM137.9,152H70.1l43.3-43.3,33.9,33.9Zm64.2-69.9-28,28a8.1,8.1,0,0,0,0,11.4l4.9,4.8a8.1,8.1,0,0,1,0,11.4l-7,7L111.3,84l7-7a8,8,0,0,1,11.4,0l4.8,4.9a8.1,8.1,0,0,0,11.4,0l27.5-27.6c7.9-7.8,20.6-8.2,28.3-.8A19.7,19.7,0,0,1,208,67.7,19.4,19.4,0,0,1,202.1,82.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="52.3" y1="160" x2="141.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="52.3" y1="160" x2="141.3" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_in_line_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_in_line_horizontal />
  <Heroicons.arrows_in_line_horizontal class="w-4 h-4" />
  <Heroicons.arrows_in_line_horizontal solid />
  <Heroicons.arrows_in_line_horizontal mini />
  <Heroicons.arrows_in_line_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_in_line_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 96 96 128 64 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 160 160 128 192 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 96 88 128 56 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="200 160 168 128 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 96 96 128 64 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 160 160 128 192 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM69.7,90.3a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,56,96v24H16a8,8,0,0,0,0,16H56v24a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l32-32a8.1,8.1,0,0,0,0-11.4ZM240,120H200V96a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-32,32a8.1,8.1,0,0,0,0,11.4l32,32A8.3,8.3,0,0,0,192,168a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,200,160V136h40a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 96 96 128 64 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 160 160 128 192 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 96 96 128 64 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 160 160 128 192 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `equals` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.equals />
  <Heroicons.equals class="w-4 h-4" />
  <Heroicons.equals solid />
  <Heroicons.equals mini />
  <Heroicons.equals outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def equals(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="160" x2="216" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="96" x2="216" y2="96" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="160" x2="216" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="96" x2="216" y2="96" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,152H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M40,104H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paperclip_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paperclip_horizontal />
  <Heroicons.paperclip_horizontal class="w-4 h-4" />
  <Heroicons.paperclip_horizontal solid />
  <Heroicons.paperclip_horizontal mini />
  <Heroicons.paperclip_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paperclip_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,144H190a16,16,0,0,0,0-32H46c-17.2,0-31.2,14.3-31.2,32s14,32,31.2,32H192a48,48,0,0,0,0-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,120H48a28,28,0,0,0,0,56H188a48,48,0,0,0,0-96H76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,144H190a16,16,0,0,0,0-32H46c-17.2,0-31.2,14.3-31.2,32s14,32,31.2,32H192a48,48,0,0,0,0-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,184H46c-21.6,0-39.2-17.9-39.2-40S24.4,104,46,104H190a24,24,0,0,1,0,48H78a8,8,0,0,1,0-16H190a8,8,0,0,0,0-16H46c-12.8,0-23.2,10.8-23.2,24S33.2,168,46,168H192a40,40,0,0,0,0-80H80a8,8,0,0,1,0-16H192a56,56,0,0,1,0,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,144H190a16,16,0,0,0,0-32H46c-17.2,0-31.2,14.3-31.2,32s14,32,31.2,32H192a48,48,0,0,0,0-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,144H190a16,16,0,0,0,0-32H46c-17.2,0-31.2,14.3-31.2,32s14,32,31.2,32H192a48,48,0,0,0,0-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `vignette` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.vignette />
  <Heroicons.vignette class="w-4 h-4" />
  <Heroicons.vignette solid />
  <Heroicons.vignette mini />
  <Heroicons.vignette outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def vignette(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="64" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="128" cy="128" rx="56" ry="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48ZM128,176c-35.3,0-64-21.5-64-48s28.7-48,64-48,64,21.5,64,48S163.3,176,128,176Z" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="64" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-16,88c0,30.9-32.2,56-72,56s-72-25.1-72-56,32.2-56,72-56S200,97.1,200,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="128" cy="128" rx="64" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="128" cy="128" rx="64" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `strategy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.strategy />
  <Heroicons.strategy class="w-4 h-4" />
  <Heroicons.strategy solid />
  <Heroicons.strategy mini />
  <Heroicons.strategy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def strategy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="72" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="168" x2="216" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 80 136 40 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,40l16,16c40,40,8,88-24,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="72" cy="184" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="76" x2="80" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="76" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="172" x2="216" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="172" x2="176" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="140 84 140 44 180 44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M140,44l12,12c38.3,38.3,10.5,84-20,94.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" opacity="0.2"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="72" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="168" x2="216" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 80 136 40 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,40l16,16c40,40,8,88-24,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,188a36,36,0,1,1-36-36A36,36,0,0,1,104,188ZM34.3,117.7a8.2,8.2,0,0,0,11.4,0L60,103.3l14.3,14.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L71.3,92,85.7,77.7A8.1,8.1,0,0,0,74.3,66.3L60,80.7,45.7,66.3A8.1,8.1,0,0,0,34.3,77.7L48.7,92,34.3,106.3A8.1,8.1,0,0,0,34.3,117.7Zm173,70.3,14.4-14.3a8.1,8.1,0,0,0-11.4-11.4L196,176.7l-14.3-14.4a8.1,8.1,0,0,0-11.4,11.4L184.7,188l-14.4,14.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L196,199.3l14.3,14.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4ZM157.7,50.3,155.3,48H176a8,8,0,0,0,0-16H136a8,8,0,0,0-8,8V80a8,8,0,0,0,16,0V59.3l2.3,2.4c18,17.9,17.9,35.4,14.8,46.9-4.7,16.7-19.4,31.7-35,35.6a8.1,8.1,0,0,0-5.9,9.7A8,8,0,0,0,128,160l1.9-.2c21.3-5.3,40.4-24.6,46.6-47S175.9,68.6,157.7,50.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="72" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="72" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="168" x2="216" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="168" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="136 80 136 40 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136,40l16,16c40,40,8,88-24,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="72" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="72" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="168" x2="216" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="168" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="136 80 136 40 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136,40l16,16c40,40,8,88-24,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `copyright` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.copyright />
  <Heroicons.copyright class="w-4 h-4" />
  <Heroicons.copyright solid />
  <Heroicons.copyright mini />
  <Heroicons.copyright outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def copyright(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,152a40,40,0,1,1,0-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,152a40,40,0,1,1,0-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,152a40,40,0,1,1,0-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,20A108,108,0,1,0,236,128,108.1,108.1,0,0,0,128,20Zm0,196a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm0-160a72,72,0,1,0,72,72A72.1,72.1,0,0,0,128,56Zm0,104a31.8,31.8,0,0,0,25.6-12.8,8.1,8.1,0,0,1,11.2-1.6,8,8,0,0,1,1.6,11.2,48,48,0,1,1,0-57.6,8,8,0,0,1-1.6,11.2,8.1,8.1,0,0,1-11.2-1.6A32,32,0,1,0,128,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,152a40,40,0,1,1,0-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,152a40,40,0,1,1,0-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wine />
  <Heroicons.wine class="w-4 h-4" />
  <Heroicons.wine solid />
  <Heroicons.wine mini />
  <Heroicons.wine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,24h96l26.1,88.3a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.5,100.3C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,24h96l26.1,88.3a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M57.5,100.3C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200.4,106.7l1.7,5.6a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7l3.6-12h0C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7Z" opacity="0.2"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,24h96l26.1,88.3a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.5,100.3C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.7,110l-26-88.3A8,8,0,0,0,176,16H80a8,8,0,0,0-7.7,5.7L46.3,110a31.5,31.5,0,0,0,1.5,22.2A88.1,88.1,0,0,0,120,183.6V224H88a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16H136V183.6a88.1,88.1,0,0,0,72.2-51.4A31.5,31.5,0,0,0,209.7,110ZM131.6,96.8c-26.2-13-47.2-13-61.9-9.5L86,32h84l20.8,70.5C180.1,107,159.8,110.9,131.6,96.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,24h96l26.1,88.3a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M57.5,100.3C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,24h96l26.1,88.3a24.1,24.1,0,0,1-1.2,16.7,80,80,0,0,1-145.8,0,24.1,24.1,0,0,1-1.2-16.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M57.5,100.3C68.1,94.6,92.7,86.4,128,104c37.6,18.8,63.1,8.2,72.4,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `anchor_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.anchor_simple />
  <Heroicons.anchor_simple class="w-4 h-4" />
  <Heroicons.anchor_simple solid />
  <Heroicons.anchor_simple mini />
  <Heroicons.anchor_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def anchor_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="216" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,120H32a96,96,0,0,0,192,0H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="216" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,120H32a96,96,0,0,0,192,0H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="216" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,120H32a96,96,0,0,0,192,0H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,112H200a8,8,0,0,0,0,16h15.6A88,88,0,0,1,136,207.6V95a32,32,0,1,0-16,0V207.6A88,88,0,0,1,40.4,128H56a8,8,0,0,0,0-16H32a8,8,0,0,0-8,8,104,104,0,0,0,208,0A8,8,0,0,0,224,112ZM112,64a16,16,0,1,1,16,16A16,16,0,0,1,112,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="216" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,120H32a96,96,0,0,0,192,0H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="216" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,120H32a96,96,0,0,0,192,0H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `baby` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.baby />
  <Heroicons.baby class="w-4 h-4" />
  <Heroicons.baby solid />
  <Heroicons.baby mini />
  <Heroicons.baby outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def baby(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><path d="M154.5,168a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,32c-16,20-16,40-16,40a16,16,0,0,0,32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="128" r="16"/><circle cx="164" cy="128" r="16"/><path d="M154.5,168a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,32c-16,20-16,40-16,40a16,16,0,0,0,16,16,16.7,16.7,0,0,0,8-2.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><path d="M154.5,168a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,32c-16,20-16,40-16,40a16,16,0,0,0,32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M134.2,24.2a3.9,3.9,0,0,0-3.6,1.8C120.3,41.6,120,55.9,120,56a7.9,7.9,0,0,0,9.7,7.8c3.7-.7,6.2-4.2,6.3-8a8.1,8.1,0,0,1,8.8-7.8,8.2,8.2,0,0,1,7.2,8.3,24,24,0,0,1-48-.3c0-.6.1-10.8,5.4-24a4,4,0,0,0-4.6-5.4A104.1,104.1,0,0,0,24.1,131.7C26,186.8,71.2,231.1,126.3,232a104,104,0,0,0,7.9-207.8ZM80,128a12,12,0,1,1,12,12A12,12,0,0,1,80,128Zm79,46.7a56.3,56.3,0,0,1-62,0,8.1,8.1,0,0,1-2.2-11.1,8,8,0,0,1,11.1-2.3,39.8,39.8,0,0,0,44.2,0,8,8,0,0,1,11.1,2.3A8.1,8.1,0,0,1,159,174.7Zm5-34.7a12,12,0,1,1,12-12A12,12,0,0,1,164,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="128" r="10"/><circle cx="164" cy="128" r="10"/><path d="M154.5,168a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,32c-16,20-16,40-16,40a16,16,0,0,0,32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="128" r="8"/><circle cx="164" cy="128" r="8"/><path d="M154.5,168a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,32c-16,20-16,40-16,40a16,16,0,0,0,32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_switch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_switch />
  <Heroicons.user_switch class="w-4 h-4" />
  <Heroicons.user_switch solid />
  <Heroicons.user_switch mini />
  <Heroicons.user_switch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_switch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 128 224 152 248 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="8 128 32 104 56 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152V128A96,96,0,0,0,47.3,75.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,104v24a96,96,0,0,0,176.7,52.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="204 132 224 152 244 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="12 124 32 104 52 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,152V128A96,96,0,0,0,52,69.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,104v24a96,96,0,0,0,172,58.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32A96,96,0,0,0,63.8,199.4h0A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,64.2,39.4A96,96,0,0,0,128,32Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 128 224 152 248 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="8 128 32 104 56 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152V128A96,96,0,0,0,47.3,75.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,104v24a96,96,0,0,0,176.7,52.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M253.7,133.7l-24,24a8.2,8.2,0,0,1-11.4,0l-24-24a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,200,120h15.6A87.9,87.9,0,0,0,54.1,80.3,8,8,0,0,1,43,82.6a7.9,7.9,0,0,1-2.4-11A104,104,0,0,1,231.7,120H248a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,253.7,133.7ZM213,173.4a8,8,0,0,0-11.1,2.3,86.9,86.9,0,0,1-8.1,10.8h0a81.3,81.3,0,0,0-24.5-23,59.7,59.7,0,0,1-82.6,0,81.3,81.3,0,0,0-24.5,23h0A87.6,87.6,0,0,1,40.4,136H56a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8l-24-24a8.1,8.1,0,0,0-11.4,0l-24,24a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,8,136H24.3a103.7,103.7,0,0,0,34.5,69.6h0l.4.3a103.9,103.9,0,0,0,156.2-21.5A7.9,7.9,0,0,0,213,173.4ZM128,164a44,44,0,1,0-44-44A44,44,0,0,0,128,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="200 128 224 152 248 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="8 128 32 104 56 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,152V128A96,96,0,0,0,47.3,75.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,104v24a96,96,0,0,0,176.7,52.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="200 128 224 152 248 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="8 128 32 104 56 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,152V128A96,96,0,0,0,47.3,75.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,104v24a96,96,0,0,0,176.7,52.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_arrow_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_arrow_down />
  <Heroicons.file_arrow_down class="w-4 h-4" />
  <Heroicons.file_arrow_down solid />
  <Heroicons.file_arrow_down mini />
  <Heroicons.file_arrow_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_arrow_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 156 128 184 156 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="100 156 128 184 156 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="124" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 156 128 184 156 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3Zm-52,79.4-28,28a8.2,8.2,0,0,1-11.4,0l-28-28a8.1,8.1,0,0,1,11.4-11.4L120,164.7V120a8,8,0,0,1,16,0v44.7l14.3-14.4a8.1,8.1,0,0,1,11.4,11.4ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="100 156 128 184 156 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="120" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="100 156 128 184 156 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="120" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plus />
  <Heroicons.plus class="w-4 h-4" />
  <Heroicons.plus solid />
  <Heroicons.plus mini />
  <Heroicons.plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,120H136V40a8,8,0,0,0-16,0v80H40a8,8,0,0,0,0,16h80v80a8,8,0,0,0,16,0V136h80a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `prohibit` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.prohibit />
  <Heroicons.prohibit class="w-4 h-4" />
  <Heroicons.prohibit solid />
  <Heroicons.prohibit mini />
  <Heroicons.prohibit outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def prohibit(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="60.1" y1="60.1" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.1" y1="60.1" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="60.1" y1="60.1" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,128a71.3,71.3,0,0,1-15.8,44.9L83.1,71.8A71.3,71.3,0,0,1,128,56,72.1,72.1,0,0,1,200,128ZM56,128a72.1,72.1,0,0,0,72,72,71.3,71.3,0,0,0,44.9-15.8L71.8,83.1A71.3,71.3,0,0,0,56,128Zm180,0A108,108,0,1,1,128,20,108.1,108.1,0,0,1,236,128Zm-20,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.1" y1="60.1" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.1" y1="60.1" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `waves` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.waves />
  <Heroicons.waves class="w-4 h-4" />
  <Heroicons.waves solid />
  <Heroicons.waves mini />
  <Heroicons.waves outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def waves(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,72s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,128s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,184s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,72s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,128s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,184s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,72s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,128s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,184s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M33.7,77A8,8,0,0,1,35,65.8,81.8,81.8,0,0,1,64.1,52.2c16.1-4,41.1-5,68.3,13.1,42.4,28.3,77.2,1.6,78.6.4A8.2,8.2,0,0,1,222.3,67,8,8,0,0,1,221,78.2a81.8,81.8,0,0,1-29.1,13.6,81,81,0,0,1-19.7,2.4c-14,0-30.8-3.7-48.6-15.5C81.2,50.4,46.4,77.1,45,78.3A8.2,8.2,0,0,1,33.7,77ZM211,121.7c-1.4,1.2-36.2,27.9-78.6-.4-27.2-18.1-52.2-17.1-68.3-13.1A81.8,81.8,0,0,0,35,121.8,8,8,0,0,0,33.7,133,8.2,8.2,0,0,0,45,134.3c1.4-1.2,36.2-27.9,78.6.4,17.8,11.8,34.6,15.5,48.6,15.5a81,81,0,0,0,19.7-2.4A81.8,81.8,0,0,0,221,134.2a8,8,0,0,0,1.3-11.2A8.2,8.2,0,0,0,211,121.7Zm0,56c-1.4,1.2-36.2,27.9-78.6-.4-27.2-18.1-52.2-17.1-68.3-13.1A81.8,81.8,0,0,0,35,177.8,8,8,0,0,0,33.7,189,8.2,8.2,0,0,0,45,190.3c1.4-1.2,36.2-27.9,78.6.4,17.8,11.8,34.6,15.5,48.6,15.5a82.6,82.6,0,0,0,48.8-16,8,8,0,0,0,1.3-11.2A8.2,8.2,0,0,0,211,177.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,72s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,128s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,184s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,72s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,128s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,184s40-32,88,0,88,0,88,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bag` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bag />
  <Heroicons.bag class="w-4 h-4" />
  <Heroicons.bag solid />
  <Heroicons.bag mini />
  <Heroicons.bag outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bag(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H175.3a48,48,0,0,0-94.6,0H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM96,104a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Zm1-40a32,32,0,0,1,62,0Zm79,40a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `copy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.copy />
  <Heroicons.copy class="w-4 h-4" />
  <Heroicons.copy solid />
  <Heroicons.copy mini />
  <Heroicons.copy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def copy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="128" height="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="88" width="128" height="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="168 88 168 168 216 168 216 40 88 40 88 88 168 88" opacity="0.2"/><polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="128" height="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32Zm-8,128H176V88a8,8,0,0,0-8-8H96V48H208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="88" width="128" height="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="88" width="128" height="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `traffic_sign` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.traffic_sign />
  <Heroicons.traffic_sign class="w-4 h-4" />
  <Heroicons.traffic_sign solid />
  <Heroicons.traffic_sign mini />
  <Heroicons.traffic_sign outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def traffic_sign(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 144 168 120 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,152v-8a23.9,23.9,0,0,1,24-24h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 144 168 120 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,148v-4a23.9,23.9,0,0,1,24-24h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" opacity="0.2"/><polyline points="144 144 168 120 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,152v-8a23.9,23.9,0,0,1,24-24h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M244,116.7,139.3,12a15.9,15.9,0,0,0-22.6,0L12,116.7a16.1,16.1,0,0,0,0,22.6L116.7,244a15.9,15.9,0,0,0,22.6,0L244,139.3A16.1,16.1,0,0,0,244,116.7ZM176,120v.8a.4.4,0,0,0-.1.3.9.9,0,0,1-.1.5.8.8,0,0,1-.1.4v.3l-.2.4c0,.1-.1.2-.1.4l-.2.3v.4l-.2.3c-.1.1-.2.2-.2.3l-.3.4-.2.3-.5.5h0l-24,24a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L148.7,128H112a16,16,0,0,0-16,16v8a8,8,0,0,1-16,0v-8a32.1,32.1,0,0,1,32-32h36.7l-10.4-10.3a8.1,8.1,0,0,1,11.4-11.4l24,24h0l.5.5.2.3.3.4c0,.1.1.2.2.3l.2.3v.4l.2.3c0,.2.1.3.1.4l.2.4v.3a.8.8,0,0,1,.1.4.9.9,0,0,1,.1.5.4.4,0,0,0,.1.3v.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 144 168 120 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,152v-8a23.9,23.9,0,0,1,24-24h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 144 168 120 144 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="46" y="46" width="164" height="164.05" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,152v-8a23.9,23.9,0,0,1,24-24h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sidebar` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sidebar />
  <Heroicons.sidebar class="w-4 h-4" />
  <Heroicons.sidebar solid />
  <Heroicons.sidebar mini />
  <Heroicons.sidebar outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sidebar(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="56" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="56" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="144" x2="56" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="88" x2="88" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,208a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H88V208Z" opacity="0.2"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="56" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="56" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="144" x2="56" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM64,152H48a8,8,0,0,1,0-16H64a8,8,0,0,1,0,16Zm0-32H48a8,8,0,0,1,0-16H64a8,8,0,0,1,0,16Zm0-32H48a8,8,0,0,1,0-16H64a8,8,0,0,1,0,16ZM216,200H88V56H216V200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="80" x2="56" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="112" x2="56" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="144" x2="56" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="80" x2="56" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="112" x2="56" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="144" x2="56" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_align_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_align_right />
  <Heroicons.text_align_right class="w-4 h-4" />
  <Heroicons.text_align_right solid />
  <Heroicons.text_align_right mini />
  <Heroicons.text_align_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_align_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,76H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M216,100H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M216,140H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M216,180H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_three />
  <Heroicons.text_h_three class="w-4 h-4" />
  <Heroicons.text_h_three solid />
  <Heroicons.text_h_three mini />
  <Heroicons.text_h_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,108h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M192,108h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,108h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0Zm85.5,94.5a37.9,37.9,0,0,0-12-7.9l21.1-30a8,8,0,0,0,.5-8.3A8.1,8.1,0,0,0,240,100H192a8,8,0,0,0,0,16h32.6l-19.2,27.4a8,8,0,0,0-.5,8.3A8.1,8.1,0,0,0,212,156a20,20,0,1,1-14.1,34.1,8.1,8.1,0,0,0-11.4,11.4,36.1,36.1,0,0,0,51-51Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M192,108h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M192,108h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `baseball` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.baseball />
  <Heroicons.baseball class="w-4 h-4" />
  <Heroicons.baseball solid />
  <Heroicons.baseball mini />
  <Heroicons.baseball outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def baseball(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.2,113A94.7,94.7,0,0,1,173,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M173,158.5a94.7,94.7,0,0,1-3.8-15.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M86.8,113A94.7,94.7,0,0,0,83,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M83,158.5A94.7,94.7,0,0,0,86.8,143" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.8,70.9A103.8,103.8,0,0,1,196,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,195.8a115.6,115.6,0,0,1-9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,195.8a115.6,115.6,0,0,0,9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M69.2,70.9A103.8,103.8,0,0,0,60,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M181.2,79.4A98.3,98.3,0,0,1,196,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M196,195.8a98.3,98.3,0,0,1-14.8-19.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168.7,140a117.3,117.3,0,0,1-.7-12,117.3,117.3,0,0,1,.7-12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M74.8,79.4A98.3,98.3,0,0,0,60,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,195.8a98.3,98.3,0,0,0,14.8-19.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M87.3,140a117.3,117.3,0,0,0,.7-12,117.3,117.3,0,0,0-.7-12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M60.1,195.9a95.8,95.8,0,0,1-.2-135.6h0a95.5,95.5,0,0,1,28,67.7,95.8,95.8,0,0,1-28,67.8Z" opacity="0.2"/><path d="M196.1,195.9a95.8,95.8,0,0,1-.2-135.6h0a96,96,0,0,1,0,135.5Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.2,113A94.7,94.7,0,0,1,173,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M173,158.5a94.7,94.7,0,0,1-3.8-15.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M86.8,113A94.7,94.7,0,0,0,83,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M83,158.5A94.7,94.7,0,0,0,86.8,143" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.8,70.9A103.8,103.8,0,0,1,196,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,195.8a115.6,115.6,0,0,1-9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,195.8a115.6,115.6,0,0,0,9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M69.2,70.9A103.8,103.8,0,0,0,60,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M51.9,63.9a4,4,0,0,0-6,.3,103.9,103.9,0,0,0,0,127.6,4,4,0,0,0,6,.3l7.3-7.3a8,8,0,0,1,6.2-2.8,7.9,7.9,0,0,1,5.2,2,8.2,8.2,0,0,1,.6,11.4,99.9,99.9,0,0,1-7.8,8.2,3.9,3.9,0,0,0,.2,6,103.8,103.8,0,0,0,128.8,0,3.9,3.9,0,0,0,.2-6,103.3,103.3,0,0,1-7.9-8.3,8,8,0,1,1,12.1-10.5l7.3,7.3a4,4,0,0,0,6-.3,103.9,103.9,0,0,0,0-127.6,4,4,0,0,0-6-.3l-7.3,7.3a8.1,8.1,0,0,1-6.1,2.8,7.6,7.6,0,0,1-5.3-2,8.2,8.2,0,0,1-.6-11.4,99.9,99.9,0,0,1,7.8-8.2,3.9,3.9,0,0,0-.2-6,103.8,103.8,0,0,0-128.8,0,3.9,3.9,0,0,0-.2,6,99.9,99.9,0,0,1,7.8,8.2A8,8,0,0,1,65.3,74h0a8.1,8.1,0,0,1-6.1-2.8ZM79.2,88.2a9.6,9.6,0,0,1,2.8-.7,8.1,8.1,0,0,1,7.9,5.3,105.7,105.7,0,0,1,4.4,16.5,8,8,0,0,1-5.9,9.4,6.3,6.3,0,0,1-1.9.3h0a8,8,0,0,1-7.9-6.6,83.8,83.8,0,0,0-3.7-13.9C73.5,94.5,75.2,89.8,79.2,88.2Zm15.1,58.5a105.7,105.7,0,0,1-4.4,16.5,8.1,8.1,0,0,1-7.6,5.3h0a7,7,0,0,1-3.1-.7,8.2,8.2,0,0,1-4.3-10.3,83.8,83.8,0,0,0,3.7-13.9,8.1,8.1,0,0,1,7.7-6.6l2,.2A8.2,8.2,0,0,1,94.3,146.7Zm82.5,21.1a7,7,0,0,1-3.1.7,8.1,8.1,0,0,1-7.6-5.3,105.7,105.7,0,0,1-4.4-16.5,8.2,8.2,0,0,1,5.4-9.3,8.1,8.1,0,0,1,10.3,6.2,83.8,83.8,0,0,0,3.7,13.9A8.2,8.2,0,0,1,176.8,167.8Zm3.6-68a23.6,23.6,0,0,0-2.9,11.4,8,8,0,0,1-8,7.8l-1.4-.2c-4.3-.7-7.2-5.3-6.4-9.6A109,109,0,0,1,166,93.1a8.3,8.3,0,0,1,9.8-5.3A8,8,0,0,1,180.4,99.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M169.2,113A94.7,94.7,0,0,1,173,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M173,158.5a94.7,94.7,0,0,1-3.8-15.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M86.8,113A94.7,94.7,0,0,0,83,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M83,158.5A94.7,94.7,0,0,0,86.8,143" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M186.8,70.9A103.8,103.8,0,0,1,196,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M196,195.8a115.6,115.6,0,0,1-9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60,195.8a115.6,115.6,0,0,0,9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M69.2,70.9A103.8,103.8,0,0,0,60,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M169.2,113A94.7,94.7,0,0,1,173,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M173,158.5a94.7,94.7,0,0,1-3.8-15.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M86.8,113A94.7,94.7,0,0,0,83,97.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M83,158.5A94.7,94.7,0,0,0,86.8,143" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M186.8,70.9A103.8,103.8,0,0,1,196,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M196,195.8a115.6,115.6,0,0,1-9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60,195.8a115.6,115.6,0,0,0,9.2-10.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M69.2,70.9A103.8,103.8,0,0,0,60,60.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `headlights` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.headlights />
  <Heroicons.headlights class="w-4 h-4" />
  <Heroicons.headlights solid />
  <Heroicons.headlights mini />
  <Heroicons.headlights outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def headlights(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="176" x2="240" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="112" x2="240" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="144" x2="240" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="176" x2="240" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" opacity="0.2"/><line x1="168" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="176" x2="240" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="112" x2="240" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="144" x2="240" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H168A8,8,0,0,1,160,80Zm80,88H168a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16Zm0-64H168a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16Zm0,32H168a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16ZM128,48H88.9C44.6,48,8.3,83.6,8,127.4A79.9,79.9,0,0,0,88,208h40a16,16,0,0,0,16-16V64A16,16,0,0,0,128,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="176" x2="240" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="112" x2="240" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="144" x2="240" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="240" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="176" x2="240" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="112" x2="240" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="144" x2="240" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,200a72,72,0,0,1-72-72.5C16.3,87.8,49.2,56,88.9,56H128a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_fist` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_fist />
  <Heroicons.hand_fist class="w-4 h-4" />
  <Heroicons.hand_fist solid />
  <Heroicons.hand_fist mini />
  <Heroicons.hand_fist outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_fist(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,104a24,24,0,0,1-48,0V64a24,24,0,0,1,48,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,64a24,24,0,0,1,48,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,176a40,40,0,0,1,40-40H152a23.9,23.9,0,0,1-24-24V96a8,8,0,0,1,8-8h64a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0v16a24,24,0,0,1-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,104a24,24,0,0,1-48,0V64a24,24,0,0,1,48,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,64a24,24,0,0,1,48,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,176a40,40,0,0,1,40-40H152a23.9,23.9,0,0,1-24-24V96a8,8,0,0,1,8-8h64a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0v16a24,24,0,0,1-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,64a24,24,0,0,1,48,0V88h24a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0V64a24,24,0,0,1,48,0" opacity="0.2"/><path d="M128,104a24,24,0,0,1-48,0V64a24,24,0,0,1,48,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,64a24,24,0,0,1,48,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,176a40,40,0,0,1,40-40H152a23.9,23.9,0,0,1-24-24V96a8,8,0,0,1,8-8h64a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0v16a24,24,0,0,1-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,80H184V64a32,32,0,0,0-56-21.1A31.8,31.8,0,0,0,104,32,32.1,32.1,0,0,0,72.2,60.4,32,32,0,0,0,24,88v40a104,104,0,0,0,208,0V112A32.1,32.1,0,0,0,200,80ZM152,48a16,16,0,0,1,16,16V80H136V64A16,16,0,0,1,152,48ZM88,64a16,16,0,0,1,32,0v40a16,16,0,0,1-32,0ZM40,88a16,16,0,0,1,32,0v16a16,16,0,0,1-32,0Zm88,128a88,88,0,0,1-87.9-84.2A32,32,0,0,0,80,125.1a31.9,31.9,0,0,0,44.6,3.4,32.3,32.3,0,0,0,11.8,11.4A47.7,47.7,0,0,0,120,176a8,8,0,0,0,16,0,32.1,32.1,0,0,1,32-32,8,8,0,0,0,0-16H152a16,16,0,0,1-16-16V96h64a16,16,0,0,1,16,16v16A88.1,88.1,0,0,1,128,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,104a24,24,0,0,1-48,0V64a24,24,0,0,1,48,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,64a24,24,0,0,1,48,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,176a40,40,0,0,1,40-40H152a23.9,23.9,0,0,1-24-24V96a8,8,0,0,1,8-8h64a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0v16a24,24,0,0,1-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,104a24,24,0,0,1-48,0V64a24,24,0,0,1,48,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,64a24,24,0,0,1,48,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,176a40,40,0,0,1,40-40H152a23.9,23.9,0,0,1-24-24V96a8,8,0,0,1,8-8h64a23.9,23.9,0,0,1,24,24v16a96,96,0,0,1-192,0V88a24,24,0,0,1,48,0v16a24,24,0,0,1-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_down />
  <Heroicons.arrow_fat_down class="w-4 h-4" />
  <Heroicons.arrow_fat_down solid />
  <Heroicons.arrow_fat_down mini />
  <Heroicons.arrow_fat_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" opacity="0.2"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,141.7l-96,96a8.1,8.1,0,0,1-11.4,0l-96-96a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,32,128H72V48A16,16,0,0,1,88,32h80a16,16,0,0,1,16,16v80h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,229.7,141.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136l96,96,96-96H176V48a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_up_right />
  <Heroicons.arrow_circle_up_right class="w-4 h-4" />
  <Heroicons.arrow_circle_up_right solid />
  <Heroicons.arrow_circle_up_right mini />
  <Heroicons.arrow_circle_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a104,104,0,1,0,0,147A103.9,103.9,0,0,0,201.5,54.5ZM164,148a8,8,0,0,1-16,0V119.3l-42.3,42.4A8.5,8.5,0,0,1,100,164a8.3,8.3,0,0,1-5.7-2.3,8.1,8.1,0,0,1,0-11.4L136.7,108H108a8,8,0,0,1,0-16h48a7.7,7.7,0,0,1,3,.6,8.1,8.1,0,0,1,4.4,4.3,8.5,8.5,0,0,1,.6,3.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_line_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_line_down />
  <Heroicons.arrow_fat_line_down class="w-4 h-4" />
  <Heroicons.arrow_fat_line_down solid />
  <Heroicons.arrow_fat_line_down mini />
  <Heroicons.arrow_fat_line_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_line_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 72 80 72 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 80 80 80 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 72 80 72 80 136 32 136" opacity="0.2"/><polygon points="32 136 128 232 224 136 176 136 176 72 80 72 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,141.7l-96,96a8.1,8.1,0,0,1-11.4,0l-96-96a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,32,128H72V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8v56h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,229.7,141.7ZM184,40a8,8,0,0,0-8-8H80a8,8,0,0,0,0,16h96A8,8,0,0,0,184,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 72 80 72 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 72 80 72 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_slash />
  <Heroicons.shield_slash class="w-4 h-4" />
  <Heroicons.shield_slash solid />
  <Heroicons.shield_slash mini />
  <Heroicons.shield_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.5,193.5c-21.5,24.6-48.8,35-57,37.7a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7V56a8,8,0,0,1,8-8h7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M98.5,48H208a8,8,0,0,1,8,8v58.7c0,20.1-4.1,36.9-10.5,51" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.5,193.5c-21.5,24.6-48.8,35-57,37.7a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7V56a8,8,0,0,1,8-8h7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M109.4,48H208a8,8,0,0,1,8,8v58.7a126.2,126.2,0,0,1-7.1,42.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.5,193.5c-21.5,24.6-48.8,35-57,37.7a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7V56a8,8,0,0,1,8-8h7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M98.5,48H208a8,8,0,0,1,8,8v58.7c0,20.1-4.1,36.9-10.5,51" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.9,237.9a8.2,8.2,0,0,1-5.4,2.1,8,8,0,0,1-5.9-2.6l-29.2-32.1A146.4,146.4,0,0,1,133,238.8a14.3,14.3,0,0,1-10,0c-15.2-5-91-34.7-91-124.1V56a15.9,15.9,0,0,1,7.5-13.5L27.6,29.4a7.9,7.9,0,0,1,.5-11.3,8,8,0,0,1,11.3.5l21.8,24h0L193.5,188.1h0l34.9,38.4A8,8,0,0,1,227.9,237.9Zm-28.3-66.8a7.9,7.9,0,0,0,5.9,2.6h1.3a7.9,7.9,0,0,0,6-4.6c7.4-16.3,11.2-34.6,11.2-54.3V56a16,16,0,0,0-16-16H98.5a8.1,8.1,0,0,0-7.3,4.8,8,8,0,0,0,1.4,8.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M187.5,193.5c-21.5,24.6-48.8,35-57,37.7a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7V56a8,8,0,0,1,8-8h7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M98.5,48H208a8,8,0,0,1,8,8v58.7c0,20.1-4.1,36.9-10.5,51" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="33.5" y1="24" x2="222.5" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M187.5,193.5c-21.5,24.6-48.8,35-57,37.7a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7V56a8,8,0,0,1,8-8h7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M98.5,48H208a8,8,0,0,1,8,8v58.7c0,20.1-4.1,36.9-10.5,51" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `music_notes_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.music_notes_plus />
  <Heroicons.music_notes_plus class="w-4 h-4" />
  <Heroicons.music_notes_plus solid />
  <Heroicons.music_notes_plus mini />
  <Heroicons.music_notes_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def music_notes_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="56" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="119.2" x2="208" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 136.5 49.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="159.1" y1="92.2" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="56" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 204 80 64 128.2 52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="95" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="127.3" x2="208" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" opacity="0.2"/><circle cx="52" cy="204" r="28" opacity="0.2"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="56" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="119.2" x2="208" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 136.5 49.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="159.1" y1="92.2" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,56a8,8,0,0,1-8,8H208V80a8,8,0,0,1-16,0V64H176a8,8,0,0,1,0-16h16V32a8,8,0,0,1,16,0V48h16A8,8,0,0,1,232,56Zm-24,55.2a8,8,0,0,0-8,8v22.9a35.3,35.3,0,0,0-20-6.1,36,36,0,1,0,36,36V119.2A8,8,0,0,0,208,111.2ZM162.4,99.5a7.9,7.9,0,0,0,4.4-5.2,8.3,8.3,0,0,0-2-7.7,9,9,0,0,0-2.6-1.7A32.3,32.3,0,0,1,144,56a37.1,37.1,0,0,1,.3-4.7,7.9,7.9,0,0,0-2-6.9,8.1,8.1,0,0,0-7.8-2.3L78.1,56.2A8,8,0,0,0,72,64V174.1A35.3,35.3,0,0,0,52,168a36,36,0,1,0,36,36V118.2L160.8,100Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="56" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="119.2" x2="208" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 204 80 64 136.5 49.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="159.1" y1="92.2" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="56" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="119.2" x2="208" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 204 80 64 136.5 49.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="159.1" y1="92.2" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fish` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fish />
  <Heroicons.fish class="w-4 h-4" />
  <Heroicons.fish solid />
  <Heroicons.fish mini />
  <Heroicons.fish outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fish(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="12"/><path d="M186.3,167.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72a17.7,17.7,0,0,1,.1-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.2,153.2,8,176l56,16,16,56,22.8-54.2h0c138.4-3.3,120-122.9,114.4-148.9a8.2,8.2,0,0,0-6.1-6.1c-26-5.6-145.6-24-148.9,114.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="16"/><path d="M186.3,167.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72a17.7,17.7,0,0,1,.1-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M62.2,153.2,12,176l52,16,16,52,22.8-50.2h0c138.4-3.3,120-122.9,114.4-148.9a8.2,8.2,0,0,0-6.1-6.1c-26-5.6-145.6-24-148.9,114.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88.1,69.7c-14.8,17.9-25,44.4-25.9,83.5h0L8,176l56,16,16,56,22.8-54.2h0c39-.9,65.6-11.1,83.5-25.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72,17.7,17.7,0,0,1,88.1,69.7Z" opacity="0.2"/><circle cx="156" cy="76" r="12"/><path d="M186.3,167.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72a17.7,17.7,0,0,1,.1-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.2,153.2,8,176l56,16,16,56,22.8-54.2h0c138.4-3.3,120-122.9,114.4-148.9a8.2,8.2,0,0,0-6.1-6.1c-26-5.6-145.6-24-148.9,114.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,76a12,12,0,1,1-12-12A12,12,0,0,1,168,76Zm37.7,83.5c-20.4,25.9-53.2,40.1-97.5,42.1L87.4,251.1A8.1,8.1,0,0,1,80,256h-.5a7.9,7.9,0,0,1-7.2-5.8L57.5,198.5,5.8,183.7a8,8,0,0,1-.9-15.1l49.5-20.8c2-44.3,16.1-77.1,42.1-97.5,41.1-32.4,99.4-23,116.3-19.3A15.9,15.9,0,0,1,225,43.2C228.7,60.1,238.1,118.4,205.7,159.5Zm3.7-112.9c-15.2-3.2-67.4-11.8-103,16.3A74.1,74.1,0,0,0,96,72.7,40.1,40.1,0,0,0,136,112a8,8,0,0,1,8,8,40.1,40.1,0,0,0,39.3,40,80,80,0,0,0,9.8-10.4C221.2,114,212.6,61.8,209.4,46.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="10"/><path d="M186.3,167.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72a17.7,17.7,0,0,1,.1-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M62.2,153.2,8,176l56,16,16,56,22.8-54.2h0c138.4-3.3,120-122.9,114.4-148.9a8.2,8.2,0,0,0-6.1-6.1c-26-5.6-145.6-24-148.9,114.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="8"/><path d="M186.3,167.9H184a48,48,0,0,1-48-48A48,48,0,0,1,88,72a17.7,17.7,0,0,1,.1-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M62.2,153.2,8,176l56,16,16,56,22.8-54.2h0c138.4-3.3,120-122.9,114.4-148.9a8.2,8.2,0,0,0-6.1-6.1c-26-5.6-145.6-24-148.9,114.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_arrow_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_arrow_down />
  <Heroicons.cloud_arrow_down class="w-4 h-4" />
  <Heroicons.cloud_arrow_down solid />
  <Heroicons.cloud_arrow_down mini />
  <Heroicons.cloud_arrow_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_arrow_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="118.1 174.1 152 208 185.9 174.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="118.1 174.1 152 208 185.9 174.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="128" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" opacity="0.2"/><polyline points="118.1 174.1 152 208 185.9 174.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160.1,40A88.1,88.1,0,0,0,81.3,88.7h0a86.6,86.6,0,0,0-9.3,39,8.2,8.2,0,0,1-7.4,8.3,8,8,0,0,1-8.6-8,105,105,0,0,1,5.3-32.9,4,4,0,0,0-4.7-5.2A64,64,0,0,0,8,152c0,35.2,29.8,64,64.9,64H160a88,88,0,0,0,.1-176Zm31.5,123.7-33.9,34A8.5,8.5,0,0,1,152,200a8.3,8.3,0,0,1-5.7-2.3l-33.9-34a8,8,0,0,1,11.3-11.3L144,172.7V112a8,8,0,0,1,16,0v60.7l20.3-20.3a8,8,0,0,1,11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="118.1 174.1 152 208 185.9 174.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="118.1 174.1 152 208 185.9 174.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="152" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `article_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.article_medium />
  <Heroicons.article_medium class="w-4 h-4" />
  <Heroicons.article_medium solid />
  <Heroicons.article_medium mini />
  <Heroicons.article_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def article_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24.1" y1="56" x2="40.1" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120.1" y1="56" x2="136.1" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24.1" y1="136" x2="48.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112.1" y1="136" x2="136.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.1" y1="136" x2="240.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40.1 136 40.1 56 80.1 120 120.1 56 120.1 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="56" x2="136" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="136" x2="48" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="136" x2="136" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 136 40 56 80 120 120 56 120 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="48" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="48" x2="136" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="128" x2="48" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="88" x2="240" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 128 40 48 80 112 120 48 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="56" x2="136" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="136" x2="48" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="136" x2="136" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 136 40 56 80 120 120 56 120 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,136a8,8,0,0,1-8,8H24a8,8,0,0,1,0-16h8V64H24a8,8,0,0,1,0-16H40a8,8,0,0,1,6.8,3.8L80,104.9l33.2-53.1A8,8,0,0,1,120,48h16a8,8,0,0,1,0,16h-8v64h8a8,8,0,0,1,0,16H112a8,8,0,0,1,0-16V83.9L86.8,124.2a8,8,0,0,1-13.6,0L48,83.9V128A8,8,0,0,1,56,136Zm112-24h72a8,8,0,0,0,0-16H168a8,8,0,0,0,0,16Zm72,16H168a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16Zm0,32H72a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm0,32H72a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="56" x2="136" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="136" x2="48" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="136" x2="136" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 136 40 56 80 120 120 56 120 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="56" x2="136" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="136" x2="48" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="136" x2="136" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 136 40 56 80 120 120 56 120 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bookmark_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bookmark_simple />
  <Heroicons.bookmark_simple class="w-4 h-4" />
  <Heroicons.bookmark_simple solid />
  <Heroicons.bookmark_simple mini />
  <Heroicons.bookmark_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bookmark_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" opacity="0.2"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,32H72A16,16,0,0,0,56,48V224a8.1,8.1,0,0,0,4.1,7,7.6,7.6,0,0,0,3.9,1,7.9,7.9,0,0,0,4.2-1.2L128,193.4l59.7,37.4a8.3,8.3,0,0,0,8.2.2,8.1,8.1,0,0,0,4.1-7V48A16,16,0,0,0,184,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_seven` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_seven />
  <Heroicons.number_seven class="w-4 h-4" />
  <Heroicons.number_seven solid />
  <Heroicons.number_seven mini />
  <Heroicons.number_seven outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_seven(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 176 40 112 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 176 40 112 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 176 40 112 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,240a7.3,7.3,0,0,1-2.5-.4,8,8,0,0,1-5.1-10.1L164.9,48H80a8,8,0,0,1,0-16h96a7.9,7.9,0,0,1,6.5,3.3,8.1,8.1,0,0,1,1.1,7.2l-64,192A7.9,7.9,0,0,1,112,240Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 176 40 112 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 176 40 112 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_out` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_out />
  <Heroicons.arrows_out class="w-4 h-4" />
  <Heroicons.arrows_out solid />
  <Heroicons.arrows_out mini />
  <Heroicons.arrows_out outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_out(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48V88a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L188,79.3l-30.3,30.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L176.7,68,162.3,53.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,168,40h40A8,8,0,0,1,216,48ZM98.3,146.3,68,176.7,53.7,162.3a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,40,168v40a8,8,0,0,0,8,8H88a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8L79.3,188l30.4-30.3a8.1,8.1,0,0,0-11.4-11.4Zm112.8,14.3a8.4,8.4,0,0,0-8.8,1.7L188,176.7l-30.3-30.4a8.1,8.1,0,0,0-11.4,11.4L176.7,188l-14.4,14.3a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,168,216h40a8,8,0,0,0,8-8V168A8,8,0,0,0,211.1,160.6ZM79.3,68,93.7,53.7a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,4.9,7.4A8.5,8.5,0,0,0,48,96a8.3,8.3,0,0,0,5.7-2.3L68,79.3l30.3,30.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="88 208 48 208 48 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 88 48 48 88 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_wavy_question` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_wavy_question />
  <Heroicons.circle_wavy_question class="w-4 h-4" />
  <Heroicons.circle_wavy_question solid />
  <Heroicons.circle_wavy_question mini />
  <Heroicons.circle_wavy_question outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_wavy_question(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="176" r="16"/><path d="M128,136a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" opacity="0.2"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.9,102.8c-3.8-3.9-7.7-8-9.2-11.5s-1.4-8.7-1.5-14c-.1-9.7-.3-20.8-8-28.5s-18.8-7.9-28.5-8c-5.3-.1-10.7-.2-14-1.5s-7.6-5.4-11.5-9.2C146.3,23.5,138.4,16,128,16s-18.3,7.5-25.2,14.1c-3.9,3.8-8,7.7-11.5,9.2s-8.7,1.4-14,1.5c-9.7.1-20.8.3-28.5,8s-7.9,18.8-8,28.5c-.1,5.3-.2,10.7-1.5,14s-5.4,7.6-9.2,11.5C23.5,109.7,16,117.6,16,128s7.5,18.3,14.1,25.2c3.8,3.9,7.7,8,9.2,11.5s1.4,8.7,1.5,14c.1,9.7.3,20.8,8,28.5s18.8,7.9,28.5,8c5.3.1,10.7.2,14,1.5s7.6,5.4,11.5,9.2c6.9,6.6,14.8,14.1,25.2,14.1s18.3-7.5,25.2-14.1c3.9-3.8,8-7.7,11.5-9.2s8.7-1.4,14-1.5c9.7-.1,20.8-.3,28.5-8s7.9-18.8,8-28.5c.1-5.3.2-10.7,1.5-14s5.4-7.6,9.2-11.5c6.6-6.9,14.1-14.8,14.1-25.2S232.5,109.7,225.9,102.8ZM128,192a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm8-48.9v.9a8,8,0,0,1-16,0v-8a8,8,0,0,1,8-8,20,20,0,1,0-20-20,8,8,0,0,1-16,0,36,36,0,1,1,44,35.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="180" r="10"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="180" r="8"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `picture_in_picture` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.picture_in_picture />
  <Heroicons.picture_in_picture class="w-4 h-4" />
  <Heroicons.picture_in_picture solid />
  <Heroicons.picture_in_picture mini />
  <Heroicons.picture_in_picture outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def picture_in_picture(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,200V136a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M136,200V136a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,56H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8h96V136a8,8,0,0,1,8-8h80V64A8,8,0,0,0,216,56Z" opacity="0.2"/><rect x="32" y="56" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,200V136a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40A16,16,0,0,0,24,64V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V64A16,16,0,0,0,216,48ZM40,64H216v56H144a16,16,0,0,0-16,16v56H40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136,200V136a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136,200V136a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plugs_connected` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plugs_connected />
  <Heroicons.plugs_connected class="w-4 h-4" />
  <Heroicons.plugs_connected solid />
  <Heroicons.plugs_connected mini />
  <Heroicons.plugs_connected outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plugs_connected(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="24" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="92" x2="164" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="160" x2="200" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="104" x2="32" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="32" x2="104" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="200" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="28" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="228" y1="28" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="92" y1="92" x2="164" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="212" x2="161.3" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="94.7" y1="28" x2="100" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="156" x2="228" y2="161.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="28" y1="94.7" x2="44" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)"/><line x1="80" y1="176" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="24" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="92" x2="164" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="160" x2="200" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="104" x2="32" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="32" x2="104" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="200" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,18.3a8.1,8.1,0,0,0-11.4,0L176,68.7l-5.4-5.4a31.9,31.9,0,0,0-45.2,0L100,88.7l-2.3-2.4A8.1,8.1,0,0,0,86.3,97.7l2.4,2.3L63.3,125.4a31.9,31.9,0,0,0,0,45.2l5.4,5.4L18.3,226.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L80,187.3l5.4,5.4a32.1,32.1,0,0,0,45.2,0L156,167.3l2.3,2.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4l-2.4-2.3,25.4-25.4a31.9,31.9,0,0,0,0-45.2L187.3,80l50.4-50.3A8.1,8.1,0,0,0,237.7,18.3Zm-56.3,101L156,144.7,111.3,100l25.4-25.4a15.9,15.9,0,0,1,22.6,0l22.1,22.1a15.9,15.9,0,0,1,0,22.6Zm50.2,43.2A7.9,7.9,0,0,1,224,168a7.3,7.3,0,0,1-2.5-.4l-24-8a8,8,0,1,1,5-15.2l24,8A8,8,0,0,1,231.6,162.5ZM24.4,93.5a8,8,0,0,1,10.1-5.1l24,8A8,8,0,0,1,56,112a7.3,7.3,0,0,1-2.5-.4l-24-8A8,8,0,0,1,24.4,93.5Zm64-59a8,8,0,0,1,15.2-5l8,24a8,8,0,0,1-5.1,10.1,7.3,7.3,0,0,1-2.5.4,7.9,7.9,0,0,1-7.6-5.5Zm79.2,187a8,8,0,0,1-5.1,10.1,7.3,7.3,0,0,1-2.5.4,7.9,7.9,0,0,1-7.6-5.5l-8-24a8,8,0,1,1,15.2-5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="24" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="92" y1="92" x2="164" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="160" x2="200" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="104" x2="32" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="32" x2="104" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="200" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="24" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="60.1" y="88.4" width="135.8" height="79.2" rx="24" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="92" y1="92" x2="164" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="160" x2="200" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="104" x2="32" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="32" x2="104" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="200" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wind` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wind />
  <Heroicons.wind class="w-4 h-4" />
  <Heroicons.wind solid />
  <Heroicons.wind mini />
  <Heroicons.wind outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wind(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.5,192.3A24,24,0,1,0,152,160H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M97.5,63.7A24,24,0,1,1,120,96H24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185.5,95.7A24,24,0,1,1,208,128H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M102.1,52A24,24,0,1,1,120,92H24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.1,92A24,24,0,1,1,208,132H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134.1,212A24,24,0,1,0,152,172H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.5,192.3A24,24,0,1,0,152,160H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M97.5,63.7A24,24,0,1,1,120,96H24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185.5,95.7A24,24,0,1,1,208,128H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,184a32,32,0,0,1-62,11.1,8,8,0,1,1,15-5.5A16,16,0,1,0,152,168H40a8,8,0,0,1,0-16H152A32.1,32.1,0,0,1,184,184Zm-64-80A32,32,0,1,0,90,60.9a8,8,0,1,0,15,5.5A16,16,0,1,1,120,88H24a8,8,0,0,0,0,16Zm88-32a32.1,32.1,0,0,0-30,20.9,8,8,0,1,0,15,5.5A16,16,0,1,1,208,120H32a8,8,0,0,0,0,16H208a32,32,0,0,0,0-64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.5,192.3A24,24,0,1,0,152,160H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M97.5,63.7A24,24,0,1,1,120,96H24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M185.5,95.7A24,24,0,1,1,208,128H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.5,192.3A24,24,0,1,0,152,160H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M97.5,63.7A24,24,0,1,1,120,96H24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M185.5,95.7A24,24,0,1,1,208,128H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `megaphone` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.megaphone />
  <Heroicons.megaphone class="w-4 h-4" />
  <Heroicons.megaphone solid />
  <Heroicons.megaphone mini />
  <Heroicons.megaphone outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def megaphone(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80V203.7a7.9,7.9,0,0,0,3.6,6.7l11,7.3a8,8,0,0,0,12.2-4.7L192,160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,160a40,40,0,0,0,0-80H152S97.5,80,45.1,36.1A8,8,0,0,0,32,42.2V197.8a8,8,0,0,0,13.1,6.1C97.5,160,152,160,152,160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,79.5V203.1a7.9,7.9,0,0,0,4.4,7.1l18.7,9.3a7.9,7.9,0,0,0,11.3-5.2L192,160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M192,160a40,40,0,0,0,0-80H152S97.5,80,45.1,36.1A8,8,0,0,0,32,42.2V197.8a8,8,0,0,0,13.1,6.1C97.5,160,152,160,152,160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,160h40a40,40,0,0,0,0-80H152Z" opacity="0.2"/><path d="M152,80V203.7a7.9,7.9,0,0,0,3.6,6.7l11,7.3a8,8,0,0,0,12.2-4.7L192,160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,160a40,40,0,0,0,0-80H152S97.5,80,45.1,36.1A8,8,0,0,0,32,42.2V197.8a8,8,0,0,0,13.1,6.1C97.5,160,152,160,152,160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,120a48,48,0,0,0-48-48H152c-.5,0-52.4-.7-101.7-42.1a15.9,15.9,0,0,0-17.1-2.2A15.7,15.7,0,0,0,24,42.2V197.8a15.7,15.7,0,0,0,9.2,14.5,16.4,16.4,0,0,0,6.8,1.5,15.9,15.9,0,0,0,10.3-3.7c37.9-31.8,77.2-39.6,93.7-41.5v35.1a15.9,15.9,0,0,0,7.1,13.3l11,7.4a16.8,16.8,0,0,0,14.7,1.6,15.9,15.9,0,0,0,9.7-11.1l11.9-47.3A48.2,48.2,0,0,0,240,120Zm-69,91-11-7.3V168h21.8Zm21-59H160V88h32a32,32,0,0,1,0,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80V203.7a7.9,7.9,0,0,0,3.6,6.7l11,7.3a8,8,0,0,0,12.2-4.7L192,160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M192,160a40,40,0,0,0,0-80H152S97.5,80,45.1,36.1A8,8,0,0,0,32,42.2V197.8a8,8,0,0,0,13.1,6.1C97.5,160,152,160,152,160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80V203.7a7.9,7.9,0,0,0,3.6,6.7l11,7.3a8,8,0,0,0,12.2-4.7L192,160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M192,160a40,40,0,0,0,0-80H152S97.5,80,45.1,36.1A8,8,0,0,0,32,42.2V197.8a8,8,0,0,0,13.1,6.1C97.5,160,152,160,152,160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stripe_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stripe_logo />
  <Heroicons.stripe_logo class="w-4 h-4" />
  <Heroicons.stripe_logo solid />
  <Heroicons.stripe_logo mini />
  <Heroicons.stripe_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stripe_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M91.9,152c0,13.3,16.2,24,36.1,24s36.1-10.7,36.1-24c0-32-70.2-20-70.2-48,0-13.3,14.2-24,34.1-24,14.9,0,26.6,6,31.5,14.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M91.9,152c0,13.3,16.2,24,36.1,24s36.1-10.7,36.1-24c0-32-70.2-20-70.2-48,0-13.3,14.2-24,34.1-24,14.9,0,26.6,6,31.5,14.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><path d="M91.9,152c0,13.3,16.2,24,36.1,24s36.1-10.7,36.1-24c0-32-70.2-20-70.2-48,0-13.3,14.2-24,34.1-24,14.9,0,26.6,6,31.5,14.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM128,184c-24.7,0-44.1-14.1-44.1-32a8,8,0,0,1,16,0c0,7.6,11.6,16,28.1,16,13.3,0,28.1-6.6,28.1-16s-12.2-13.4-30.8-18.2c-8.7-2.2-17.7-4.5-24.8-8.2-9.7-5.2-14.6-12.4-14.6-21.6,0-18.2,18.1-32,42.1-32,17.2,0,31.9,7.2,38.5,18.7a8,8,0,0,1-3,10.9,7.9,7.9,0,0,1-10.9-3C148.9,92.2,139.3,88,128,88c-14.6,0-26.1,7-26.1,16,0,6.8,10.8,10.1,27.3,14.3,19.1,4.9,42.9,11,42.9,33.7C172.1,169.9,152.7,184,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M91.9,152c0,13.3,16.2,24,36.1,24s36.1-10.7,36.1-24c0-32-70.2-20-70.2-48,0-13.3,14.2-24,34.1-24,14.9,0,26.6,6,31.5,14.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M91.9,152c0,13.3,16.2,24,36.1,24s36.1-10.7,36.1-24c0-32-70.2-20-70.2-48,0-13.3,14.2-24,34.1-24,14.9,0,26.6,6,31.5,14.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bluetooth_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bluetooth_slash />
  <Heroicons.bluetooth_slash class="w-4 h-4" />
  <Heroicons.bluetooth_slash solid />
  <Heroicons.bluetooth_slash mini />
  <Heroicons.bluetooth_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bluetooth_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 71.6 120 32 184 80 150.5 105.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176.6 181.5 120 224 120 128 145.2 146.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176.6 181.5 120 224 120 119.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 59.7 120 32 184 80 156.9 100.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" opacity="0.2"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 71.6 120 32 184 80 150.5 105.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176.7 181.5 120 224 120 128 145.2 146.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.9,210.6l-31.4-34.5h0l-31.3-34.5h-.1L53.9,34.6A8,8,0,0,0,42.1,45.4l70.8,77.9L51.2,169.6A8,8,0,0,0,56,184a7.7,7.7,0,0,0,4.8-1.6L112,144v80a8.2,8.2,0,0,0,4.4,7.2,9,9,0,0,0,3.6.8,7.7,7.7,0,0,0,4.8-1.6l50.8-38.1,26.5,29.1A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1A7.9,7.9,0,0,0,213.9,210.6ZM128,208V144l11.8,8.8,25,27.6Z"/><path d="M120,79.6a8,8,0,0,0,8-8V48l42.7,32-25,18.7a7.9,7.9,0,0,0-1.6,11.2,7.8,7.8,0,0,0,6.4,3.2,8.1,8.1,0,0,0,4.8-1.6l33.5-25.1a8,8,0,0,0,0-12.8l-64-48A8,8,0,0,0,112,32V71.6A8,8,0,0,0,120,79.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 71.6 120 32 184 80 150.5 105.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176.6 181.5 120 224 120 128 145.2 146.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 71.6 120 32 184 80 150.5 105.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176.6 181.5 120 224 120 128 145.2 146.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_tablet` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_tablet />
  <Heroicons.device_tablet class="w-4 h-4" />
  <Heroicons.device_tablet solid />
  <Heroicons.device_tablet mini />
  <Heroicons.device_tablet outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_tablet(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="72" x2="208" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="184" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="64" width="160" height="128" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24H64A24.1,24.1,0,0,0,40,48V208a24.1,24.1,0,0,0,24,24H192a24.1,24.1,0,0,0,24-24V48A24.1,24.1,0,0,0,192,24ZM64,40H192a8,8,0,0,1,8,8v8H56V48A8,8,0,0,1,64,40ZM192,216H64a8,8,0,0,1-8-8v-8H200v8A8,8,0,0,1,192,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_simple />
  <Heroicons.bell_simple class="w-4 h-4" />
  <Heroicons.bell_simple solid />
  <Heroicons.bell_simple mini />
  <Heroicons.bell_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="228" x2="160" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V108c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,104a72,72,0,0,1,72.5-72c39.8.3,71.5,33.2,71.5,72.9V112c0,35.8,7.5,56.6,14.1,68a7.9,7.9,0,0,1-6.9,12H48.8a7.9,7.9,0,0,1-6.9-12C48.5,168.6,56,147.8,56,112Z" opacity="0.2"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221,175.9c-5.9-10.2-13-29.6-13-63.9v-7.1c0-44.3-35.6-80.6-79.4-80.9H128a79.9,79.9,0,0,0-80,80v8c0,34.3-7.1,53.7-13,63.9a15.8,15.8,0,0,0-.1,16.1,15.9,15.9,0,0,0,13.9,8H207.2a15.9,15.9,0,0,0,13.9-8A15.8,15.8,0,0,0,221,175.9Z"/><path d="M159.9,216h-64a8,8,0,1,0,0,16h64a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="95.9" y1="224" x2="159.9" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `club` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.club />
  <Heroicons.club class="w-4 h-4" />
  <Heroicons.club solid />
  <Heroicons.club mini />
  <Heroicons.club outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def club(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112.5,179.2A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-36.5,79.2L160,232H96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104.5,186.6A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-28.5,86.6L160,232H96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112.5,179.2A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-36.5,79.2L160,232H96Z" opacity="0.2"/><path d="M112.5,179.2A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-36.5,79.2L160,232H96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,148a52,52,0,0,1-80.5,43.5l10.7,34.1a7.8,7.8,0,0,1-1.2,7.1,7.9,7.9,0,0,1-6.4,3.3H101.4a7.9,7.9,0,0,1-6.4-3.3,7.8,7.8,0,0,1-1.2-7.1l10.7-34.1a51.7,51.7,0,0,1-30,8.5c-27.7-.8-50.4-24-50.5-51.8A52.1,52.1,0,0,1,76,96l4,.2a53.3,53.3,0,0,1-3.9-23.4,52,52,0,1,1,99.8,23.4A51.5,51.5,0,0,1,232,148Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112.5,179.2A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-36.5,79.2L160,232H96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112.5,179.2A48,48,0,1,1,76,100a51.2,51.2,0,0,1,11.2,1.3h0A47.3,47.3,0,0,1,80,76a48,48,0,0,1,96,0,47.3,47.3,0,0,1-7.2,25.3h0A51.2,51.2,0,0,1,180,100a48,48,0,1,1-36.5,79.2L160,232H96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `poker_chip` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.poker_chip />
  <Heroicons.poker_chip class="w-4 h-4" />
  <Heroicons.poker_chip solid />
  <Heroicons.poker_chip mini />
  <Heroicons.poker_chip outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def poker_chip(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88.4" y1="88.4" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88.4" y1="167.6" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="167.6" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="88.4" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="80" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="94.1" y1="94.1" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="94.1" y1="161.9" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="161.9" y1="161.9" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="161.9" y1="94.1" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32Zm0,152a56,56,0,1,1,56-56A56,56,0,0,1,128,184Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88.4" y1="88.4" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88.4" y1="167.6" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="167.6" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="88.4" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M202.2,200.8a103.8,103.8,0,0,0,0-145.6,2.3,2.3,0,0,0-.7-.7,2.3,2.3,0,0,0-.7-.7,103.8,103.8,0,0,0-145.6,0,2.3,2.3,0,0,0-.7.7,2.3,2.3,0,0,0-.7.7,103.8,103.8,0,0,0,0,145.6l.7.7a2.3,2.3,0,0,0,.7.7,103.8,103.8,0,0,0,145.6,0,2.3,2.3,0,0,0,.7-.7A2.3,2.3,0,0,0,202.2,200.8ZM40.4,136H64.5a63.6,63.6,0,0,0,13,31.2L60.4,184.3A87.5,87.5,0,0,1,40.4,136Zm20-64.3L77.5,88.8a63.6,63.6,0,0,0-13,31.2H40.4A87.5,87.5,0,0,1,60.4,71.7ZM215.6,120H191.5a63.6,63.6,0,0,0-13-31.2l17.1-17.1A87.5,87.5,0,0,1,215.6,120ZM167.2,77.5a63.6,63.6,0,0,0-31.2-13V40.4a87.5,87.5,0,0,1,48.3,20ZM120,64.5a63.6,63.6,0,0,0-31.2,13L71.7,60.4a87.5,87.5,0,0,1,48.3-20Zm-31.2,114a63.6,63.6,0,0,0,31.2,13v24.1a87.5,87.5,0,0,1-48.3-20Zm47.2,13a63.6,63.6,0,0,0,31.2-13l17.1,17.1a87.5,87.5,0,0,1-48.3,20Zm42.5-24.3a63.6,63.6,0,0,0,13-31.2h24.1a87.5,87.5,0,0,1-20,48.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="72" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88.4" y1="88.4" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88.4" y1="167.6" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="167.6" y1="167.6" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="167.6" y1="88.4" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="72" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88.4" y1="88.4" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88.4" y1="167.6" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="184" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="167.6" y1="167.6" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="167.6" y1="88.4" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `drop_half` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.drop_half />
  <Heroicons.drop_half class="w-4 h-4" />
  <Heroicons.drop_half solid />
  <Heroicons.drop_half mini />
  <Heroicons.drop_half outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def drop_half(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="196.6" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="64" x2="177" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="224" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="132" x2="207.3" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="92" x2="194.7" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="172" x2="203" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,224a80,80,0,0,0,80-80c0-72-80-128-80-128Z" opacity="0.2"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M174,47.8A259.4,259.4,0,0,0,132.6,9.4a8.1,8.1,0,0,0-9.2,0A259.4,259.4,0,0,0,82,47.8C54.5,79.3,40,112.6,40,144a88,88,0,0,0,176,0C216,112.6,201.5,79.3,174,47.8ZM56,144c0-57.2,55.5-105,72-118V216A72.1,72.1,0,0,1,56,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="224" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="196.6" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="64" x2="177" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="224" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="206.7" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="196.6" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="206.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="64" x2="177" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_down />
  <Heroicons.caret_down class="w-4 h-4" />
  <Heroicons.caret_down solid />
  <Heroicons.caret_down mini />
  <Heroicons.caret_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 128 176 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 128 176 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="208 96 128 176 48 96 208 96" opacity="0.2"/><polygon points="208 96 128 176 48 96 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215.4,92.9A8,8,0,0,0,208,88H48a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8l80,80a8.2,8.2,0,0,0,11.4,0l80-80A8.4,8.4,0,0,0,215.4,92.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 128 176 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 96 128 176 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `receipt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.receipt />
  <Heroicons.receipt class="w-4 h-4" />
  <Heroicons.receipt solid />
  <Heroicons.receipt mini />
  <Heroicons.receipt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def receipt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="76" y1="104" x2="180" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="136" x2="180" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="76" y1="100" x2="180" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="140" x2="180" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" opacity="0.2"/><line x1="76" y1="104" x2="180" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="136" x2="180" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V208a7.9,7.9,0,0,0,3.8,6.8,8,8,0,0,0,7.8.4L64,200.9l28.4,14.3a8.3,8.3,0,0,0,7.2,0L128,200.9l28.4,14.3a8.5,8.5,0,0,0,7.2,0L192,200.9l28.4,14.3a8,8,0,0,0,7.8-.4A7.9,7.9,0,0,0,232,208V56A16,16,0,0,0,216,40ZM180,144H76a8,8,0,0,1,0-16H180a8,8,0,0,1,0,16Zm0-32H76a8,8,0,0,1,0-16H180a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="76" y1="104" x2="180" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76" y1="136" x2="180" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="76" y1="104" x2="180" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76" y1="136" x2="180" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,208V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V208l-32-16-32,16-32-16L96,208,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_teardrop_dots` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_teardrop_dots />
  <Heroicons.chat_teardrop_dots class="w-4 h-4" />
  <Heroicons.chat_teardrop_dots solid />
  <Heroicons.chat_teardrop_dots mini />
  <Heroicons.chat_teardrop_dots outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_teardrop_dots(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="132" cy="128" r="12"/><circle cx="84" cy="128" r="12"/><circle cx="180" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="132" cy="128" r="16"/><circle cx="180" cy="128" r="16"/><circle cx="84" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" opacity="0.2"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="132" cy="128" r="12"/><circle cx="84" cy="128" r="12"/><circle cx="180" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,24A100.2,100.2,0,0,0,32,124v84.3A15.7,15.7,0,0,0,47.7,224H132a100,100,0,0,0,0-200ZM84,140a12,12,0,1,1,12-12A12,12,0,0,1,84,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,132,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,180,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="132" cy="128" r="10"/><circle cx="180" cy="128" r="10"/><circle cx="84" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="132" cy="128" r="8"/><circle cx="84" cy="128" r="8"/><circle cx="180" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `power` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.power />
  <Heroicons.power class="w-4 h-4" />
  <Heroicons.power solid />
  <Heroicons.power mini />
  <Heroicons.power outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def power(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,54.2a88,88,0,1,1-96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,54.2a88,88,0,1,1-96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,54.2a88,88,0,1,1-96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm-8,32a8,8,0,0,1,16,0v60a8,8,0,0,1-16,0Zm8,152A80,80,0,0,1,83.5,61.5a8,8,0,0,1,8.9,13.3,64.1,64.1,0,1,0,71.1,0,8.1,8.1,0,0,1-2.2-11.1,8,8,0,0,1,11.1-2.2A80,80,0,0,1,128,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,54.2a88,88,0,1,1-96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="48" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,54.2a88,88,0,1,1-96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_grabbing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_grabbing />
  <Heroicons.hand_grabbing class="w-4 h-4" />
  <Heroicons.hand_grabbing solid />
  <Heroicons.hand_grabbing mini />
  <Heroicons.hand_grabbing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_grabbing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,92a20,20,0,0,0-40,0v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,108V92a20,20,0,0,0-40,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,148V116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,92a20,20,0,0,0-40,0v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,108V92a20,20,0,0,0-40,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,148V116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0V92a20,20,0,0,0-40,0,20,20,0,0,0-40,0Z" opacity="0.2"/><path d="M128,92a20,20,0,0,0-40,0v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,108V92a20,20,0,0,0-40,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,148V116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,80a27.8,27.8,0,0,0-13.4,3.4,28,28,0,0,0-46.6-11A28,28,0,0,0,80,92v16H68a28.1,28.1,0,0,0-28,28v16a88,88,0,0,0,176,0V108A28.1,28.1,0,0,0,188,80Zm12,72a72,72,0,0,1-144,0V136a12,12,0,0,1,12-12H80v24a8,8,0,0,0,16,0V92a12,12,0,0,1,24,0v32a8,8,0,0,0,16,0V92a12,12,0,0,1,24,0v32a8,8,0,0,0,16,0V108a12,12,0,0,1,24,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,92a20,20,0,0,0-40,0v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,108V92a20,20,0,0,0-40,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,148V116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,92a20,20,0,0,0-40,0v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,108V92a20,20,0,0,0-40,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,148V116H68a20.1,20.1,0,0,0-20,20v16a80,80,0,0,0,160,0V108a20,20,0,0,0-40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_all` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_all />
  <Heroicons.selection_all class="w-4 h-4" />
  <Heroicons.selection_all solid />
  <Heroicons.selection_all mini />
  <Heroicons.selection_all outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_all(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="80" width="96" height="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="80" y="80" width="96" height="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="80" width="96" height="96" opacity="0.2"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="80" width="96" height="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,40a8,8,0,0,1,8-8h32a8,8,0,0,1,0,16H112A8,8,0,0,1,104,40Zm40,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM40,80a8,8,0,0,0,8-8V48H72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,48V72A8,8,0,0,0,40,80ZM176,184H80a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8v96A8,8,0,0,1,176,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="80" y="80" width="96" height="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="80" y="80" width="96" height="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `notepad` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.notepad />
  <Heroicons.notepad class="w-4 h-4" />
  <Heroicons.notepad solid />
  <Heroicons.notepad mini />
  <Heroicons.notepad outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def notepad(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="124" x2="160" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="164" x2="160" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="24" x2="84" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="24" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="24" x2="172" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" opacity="0.2"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,32H184V24a8,8,0,0,0-16,0v8H136V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H56A16,16,0,0,0,40,48V200a32,32,0,0,0,32,32H184a32,32,0,0,0,32-32V48A16,16,0,0,0,200,32ZM160,168H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="24" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,40H200a8,8,0,0,1,8,8V200a24,24,0,0,1-24,24H72a24,24,0,0,1-24-24V48A8,8,0,0,1,56,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="24" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_circle_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_circle_minus />
  <Heroicons.user_circle_minus class="w-4 h-4" />
  <Heroicons.user_circle_minus solid />
  <Heroicons.user_circle_minus mini />
  <Heroicons.user_circle_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_circle_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.5,96a94.4,94.4,0,0,1,5.5,32,96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M218.5,96a94.4,94.4,0,0,1,5.5,32,96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32A96,96,0,0,0,63.8,199.4h0A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,64.2,39.4A96,96,0,0,0,128,32Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.5,96a94.4,94.4,0,0,1,5.5,32,96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,76a44,44,0,1,1-44,44A44,44,0,0,1,128,76Zm48-12h48a8,8,0,0,0,0-16H176a8,8,0,0,0,0,16Zm39.9,24.5A7.9,7.9,0,0,0,211,98.7a88,88,0,0,1-17.2,87.7,81.3,81.3,0,0,0-24.5-23,59.7,59.7,0,0,1-82.6,0,81.3,81.3,0,0,0-24.5,23A88,88,0,0,1,128,40a92,92,0,0,1,13.9,1.1,8,8,0,0,0,2.5-15.8A99.8,99.8,0,0,0,128,24,104,104,0,0,0,57.8,204.7l1.3,1.2a104,104,0,0,0,137.8,0l1.3-1.2A104.2,104.2,0,0,0,226.1,93.3,8,8,0,0,0,215.9,88.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M218.5,96a94.4,94.4,0,0,1,5.5,32,96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M218.5,96a94.4,94.4,0,0,1,5.5,32,96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplane_tilt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplane_tilt />
  <Heroicons.airplane_tilt class="w-4 h-4" />
  <Heroicons.airplane_tilt solid />
  <Heroicons.airplane_tilt mini />
  <Heroicons.airplane_tilt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplane_tilt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" opacity="0.2"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215,86.2l-29.8,28,30.2,83.1a8,8,0,0,1-1.9,8.4l-24,24a8.2,8.2,0,0,1-6.4,2.3,8.1,8.1,0,0,1-5.8-3.5l-42.6-62.3-18.8,17.3V204a8.2,8.2,0,0,1-2.4,5.7l-20,20a7.9,7.9,0,0,1-5.6,2.3l-1.8-.2a8,8,0,0,1-5.8-5.2L67.4,188.5,29.3,175.6a8,8,0,0,1-5.2-5.8,8.3,8.3,0,0,1,2.1-7.5l20-20a8.1,8.1,0,0,1,5.7-2.3H72.6l18.7-18.8L27.4,78.7a8.7,8.7,0,0,1-3.5-5.9,8.2,8.2,0,0,1,2.3-6.5l24-24a7.9,7.9,0,0,1,8.4-1.8l83.1,30.2,26.6-28.2a5.2,5.2,0,0,1,1-1.1,32,32,0,0,1,47,43.3A6.4,6.4,0,0,1,215,86.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.5,80.4,175.9,112l32,88-24,24-47.8-70-24.2,22v24l-24,24L73.7,182.1,31.9,168l24-24h24l24-24-72-48,24-24,88,32,31.7-33.5-.7.5a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microsoft_excel_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microsoft_excel_logo />
  <Heroicons.microsoft_excel_logo class="w-4 h-4" />
  <Heroicons.microsoft_excel_logo solid />
  <Heroicons.microsoft_excel_logo mini />
  <Heroicons.microsoft_excel_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microsoft_excel_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74" y1="104" x2="110" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110" y1="104" x2="74" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,68V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="188" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="32" x2="136" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="68" width="128" height="120" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="78" y1="104" x2="114" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="114" y1="104" x2="78" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" opacity="0.2"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74" y1="104" x2="110" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110" y1="104" x2="74" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,24H72A16,16,0,0,0,56,40V64H40A16,16,0,0,0,24,80v96a16,16,0,0,0,16,16H56v24a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM69.2,158.4a8,8,0,0,1-1.6-11.2L82,128,67.6,108.8a8,8,0,1,1,12.8-9.6L92,114.7l11.6-15.5a8,8,0,0,1,12.8,9.6L102,128l14.4,19.2a8,8,0,0,1-1.6,11.2A7.7,7.7,0,0,1,110,160a8,8,0,0,1-6.4-3.2L92,141.3,80.4,156.8A8,8,0,0,1,74,160,7.7,7.7,0,0,1,69.2,158.4ZM128,216H72V192h56Zm0-152H72V40h56Zm72,152H144V192a16,16,0,0,0,16-16v-8h40Zm0-64H160V104h40Zm0-64H160V80a16,16,0,0,0-16-16V40h56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="74" y1="104" x2="110" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110" y1="104" x2="74" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="184" x2="136" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="32" x2="136" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="74" y1="104" x2="110" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110" y1="104" x2="74" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sticker` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sticker />
  <Heroicons.sticker class="w-4 h-4" />
  <Heroicons.sticker solid />
  <Heroicons.sticker mini />
  <Heroicons.sticker outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sticker(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,216H88a48,48,0,0,1-48-48V88A48,48,0,0,1,88,40h80a48,48,0,0,1,48,48v48C208,160,160,208,136,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,216V184a48,48,0,0,1,48-48h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,216H88a48,48,0,0,1-48-48V88A48,48,0,0,1,88,40h80a48,48,0,0,1,48,48v48C208,160,160,208,136,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M136,216V184a48,48,0,0,1,48-48h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,216V184a48,48,0,0,1,48-48h32C208,160,160,208,136,216Z" opacity="0.2"/><path d="M136,216H88a48,48,0,0,1-48-48V88A48,48,0,0,1,88,40h80a48,48,0,0,1,48,48v48C208,160,160,208,136,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,216V184a48,48,0,0,1,48-48h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,32H88A56,56,0,0,0,32,88v80a56,56,0,0,0,56,56h48a6.9,6.9,0,0,0,2.5-.4c26.3-8.8,76.3-58.8,85.1-85.1a6.9,6.9,0,0,0,.4-2.5V88A56,56,0,0,0,168,32ZM136,207.4V176a40,40,0,0,1,40-40h31.4C198.2,157.6,157.6,198.2,136,207.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,216H88a48,48,0,0,1-48-48V88A48,48,0,0,1,88,40h80a48,48,0,0,1,48,48v48C208,160,160,208,136,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136,216V184a48,48,0,0,1,48-48h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,216H88a48,48,0,0,1-48-48V88A48,48,0,0,1,88,40h80a48,48,0,0,1,48,48v48C208,160,160,208,136,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136,216V184a48,48,0,0,1,48-48h32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `video_camera_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.video_camera_slash />
  <Heroicons.video_camera_slash class="w-4 h-4" />
  <Heroicons.video_camera_slash solid />
  <Heroicons.video_camera_slash mini />
  <Heroicons.video_camera_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def video_camera_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="240 176 184 144 184 112 240 80 240 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="34.9" y1="24" x2="224" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.9,60H176a8,8,0,0,1,8,8v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,188a8,8,0,0,1-8,8H24a8,8,0,0,1-8-8V68a8,8,0,0,1,8-8H67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="240 176 184 144 184 112 240 80 240 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="34.9" y1="24" x2="224" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M121.7,60H176a8,8,0,0,1,8,8V188a8,8,0,0,1-8,8H24a8,8,0,0,1-8-8V68a8,8,0,0,1,8-8H67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="60" width="168" height="136" rx="8" opacity="0.2"/><polygon points="240 176 184 144 184 112 240 80 240 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="34.9" y1="24" x2="224" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.9,60H176a8,8,0,0,1,8,8v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,188a8,8,0,0,1-8,8H24a8,8,0,0,1-8-8V68a8,8,0,0,1,8-8H67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.9,226.6a7.9,7.9,0,0,1-.5,11.3A8.2,8.2,0,0,1,224,240a8,8,0,0,1-5.9-2.6l-42.4-46.6A15.9,15.9,0,0,1,160,204H24A16,16,0,0,1,8,188V68A16,16,0,0,1,24,52H49.6L29,29.4a8,8,0,0,1,.5-11.3,7.9,7.9,0,0,1,11.3.5ZM245.5,74.2a7.9,7.9,0,0,0-9.5-1.1L196,95.9a8,8,0,0,0-4,7v50.2a8,8,0,0,0,4,7l40,22.8a8.3,8.3,0,0,0,4,1.1,7.9,7.9,0,0,0,5.8-2.5,8,8,0,0,0,2.2-5.7V80.2A8,8,0,0,0,245.5,74.2Zm-83.4,54a8,8,0,0,0,9.8,1.6,8.2,8.2,0,0,0,4.1-7.3V68a16,16,0,0,0-16-16H111.1a8.5,8.5,0,0,0-6.6,3.1,8,8,0,0,0,.5,10.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="240 176 184 144 184 112 240 80 240 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="34.9" y1="24" x2="224" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M110.9,60H176a8,8,0,0,1,8,8v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,188a8,8,0,0,1-8,8H24a8,8,0,0,1-8-8V68a8,8,0,0,1,8-8H67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="240 176 184 144 184 112 240 80 240 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="34.9" y1="24" x2="224" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M110.9,60H176a8,8,0,0,1,8,8v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,188a8,8,0,0,1-8,8H24a8,8,0,0,1-8-8V68a8,8,0,0,1,8-8H67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `play` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.play />
  <Heroicons.play class="w-4 h-4" />
  <Heroicons.play solid />
  <Heroicons.play mini />
  <Heroicons.play outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def play(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" opacity="0.2"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232.3,114.3,88.3,26.4a15.5,15.5,0,0,0-16.1-.3A15.8,15.8,0,0,0,64,40V216a15.8,15.8,0,0,0,8.2,13.9,15.5,15.5,0,0,0,16.1-.3l144-87.9a16,16,0,0,0,0-27.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.1,121.2,84.2,33.2A8,8,0,0,0,72,40V216a8,8,0,0,0,12.2,6.8l143.9-88A7.9,7.9,0,0,0,228.1,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `needle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.needle />
  <Heroicons.needle class="w-4 h-4" />
  <Heroicons.needle solid />
  <Heroicons.needle mini />
  <Heroicons.needle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def needle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="72" x2="168" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" opacity="0.3"/><line x1="184" y1="72" x2="168" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212.3,43.7a40.1,40.1,0,0,0-56.6,0l-24,24a8.1,8.1,0,0,0-2.2,4.3C120.7,123.3,36,208.7,34.4,210.3h-.1a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0h0c.8-.9,86.8-86.4,138.3-95.2a8.1,8.1,0,0,0,4.3-2.2l24-24a40.1,40.1,0,0,0,0-56.6Zm-22.6,34-16,16a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4l16-16a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="72" x2="168" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="72" x2="168" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M182.6,118.6l24-24a32,32,0,0,0-45.2-45.2l-24,24C128,128,40,216,40,216S128,128,182.6,118.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `heart_straight_break` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.heart_straight_break />
  <Heroicons.heart_straight_break class="w-4 h-4" />
  <Heroicons.heart_straight_break solid />
  <Heroicons.heart_straight_break mini />
  <Heroicons.heart_straight_break outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def heart_straight_break(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 70.5 112 88 144 120 128 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 70.5 112 88 144 120 128 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" opacity="0.2"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 70.5 112 88 144 120 128 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.2,95a64.3,64.3,0,0,1-18.9,41.5l-81,81a15.9,15.9,0,0,1-22.6,0L33.6,134.4a59.9,59.9,0,0,1,2.3-87A57.7,57.7,0,0,1,79,32.8a64.4,64.4,0,0,1,33.8,12.3,4,4,0,0,1,.5,6.1L94.9,69.6a8,8,0,0,0,0,11.3l34.4,34.3-15,15.1a7.9,7.9,0,0,0,0,11.3,8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3l20.7-20.7a8,8,0,0,0,0-11.3L111.9,75.2l21.7-21.6h0l4-4a59.9,59.9,0,0,1,87,2.3A57.7,57.7,0,0,1,239.2,95Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 70.5 112 88 144 120 128 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 70.5 112 88 144 120 128 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link />
  <Heroicons.link class="w-4 h-4" />
  <Heroicons.link solid />
  <Heroicons.link mini />
  <Heroicons.link outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.3,71.4l19.8-19.8a44.1,44.1,0,0,1,62.3,62.3l-28.3,28.2a43.9,43.9,0,0,1-62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133.7,184.6l-19.8,19.8a44.1,44.1,0,0,1-62.3-62.3l28.3-28.2a43.9,43.9,0,0,1,62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.5,61.3l9.6-9.7a44.1,44.1,0,0,1,62.3,62.3l-30.3,30.2a43.9,43.9,0,0,1-62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M123.5,194.7l-9.6,9.7a44.1,44.1,0,0,1-62.3-62.3l30.3-30.2a43.9,43.9,0,0,1,62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.3,71.4l19.8-19.8a44.1,44.1,0,0,1,62.3,62.3l-28.3,28.2a43.9,43.9,0,0,1-62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133.7,184.6l-19.8,19.8a44.1,44.1,0,0,1-62.3-62.3l28.3-28.2a43.9,43.9,0,0,1,62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210,46a51.8,51.8,0,0,0-73.5,0L116.7,65.8A8,8,0,0,0,128,77.1l19.8-19.8a36.1,36.1,0,0,1,50.9,0,35.9,35.9,0,0,1,0,50.9l-28.3,28.3a36.1,36.1,0,0,1-50.9,0,8,8,0,1,0-11.3,11.3,52,52,0,0,0,73.5,0L210,119.5A51.8,51.8,0,0,0,210,46Z"/><path d="M128,178.9l-19.8,19.8a36,36,0,0,1-50.9-50.9l28.3-28.3a36.1,36.1,0,0,1,50.9,0,8,8,0,0,0,11.3-11.3,52,52,0,0,0-73.5,0L46,136.5A52,52,0,1,0,119.5,210l19.8-19.8A8,8,0,0,0,128,178.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.3,71.4l19.8-19.8a44.1,44.1,0,0,1,62.3,62.3l-28.3,28.2a43.9,43.9,0,0,1-62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M133.7,184.6l-19.8,19.8a44.1,44.1,0,0,1-62.3-62.3l28.3-28.2a43.9,43.9,0,0,1,62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.3,71.4l19.8-19.8a44.1,44.1,0,0,1,62.3,62.3l-28.3,28.2a43.9,43.9,0,0,1-62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M133.7,184.6l-19.8,19.8a44.1,44.1,0,0,1-62.3-62.3l28.3-28.2a43.9,43.9,0,0,1,62.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_lock` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_lock />
  <Heroicons.file_lock class="w-4 h-4" />
  <Heroicons.file_lock solid />
  <Heroicons.file_lock mini />
  <Heroicons.file_lock outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_lock(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="180" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,180V168a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M172,224h28a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="56" y="184" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,184V168a20,20,0,0,1,40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="180" width="72" height="44" opacity="0.2"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="180" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,180V168a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,16,0V40h88V88a8,8,0,0,0,8,8h48V216H168a8,8,0,0,0,0,16h32a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM160,51.3,188.7,80H160ZM128,172h-8v-4a28,28,0,0,0-56,0v4H56a8,8,0,0,0-8,8v44a8,8,0,0,0,8,8h72a8,8,0,0,0,8-8V180A8,8,0,0,0,128,172Zm-24,0H80v-4a12,12,0,0,1,24,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="180" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,180V168a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="180" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,180V168a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `upload_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.upload_simple />
  <Heroicons.upload_simple class="w-4 h-4" />
  <Heroicons.upload_simple solid />
  <Heroicons.upload_simple mini />
  <Heroicons.upload_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def upload_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 82 128 40 170 82" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 82 128 40 170 82" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="152" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 82 128 40 170 82" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78.6,85a8.2,8.2,0,0,1,1.7-8.7l42-42a8.1,8.1,0,0,1,11.4,0l42,42a8.2,8.2,0,0,1,1.7,8.7,8,8,0,0,1-7.4,5H136v62a8,8,0,0,1-16,0V90H86A8,8,0,0,1,78.6,85ZM216,144a8,8,0,0,0-8,8v56H48V152a8,8,0,0,0-16,0v56a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V152A8,8,0,0,0,216,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 82 128 40 170 82" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="152" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 82 128 40 170 82" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="152" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `timer` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.timer />
  <Heroicons.timer class="w-4 h-4" />
  <Heroicons.timer solid />
  <Heroicons.timer mini />
  <Heroicons.timer outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def timer(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="128" x2="167.6" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="8" x2="152" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="140" x2="161.9" y2="106.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="12" x2="152" y2="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" opacity="0.2"/><circle cx="128" cy="128" r="88" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="128" x2="167.6" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="8" x2="152" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,16h48a8,8,0,0,0,0-16H104a8,8,0,0,0,0,16Z"/><path d="M128,32a96,96,0,1,0,96,96A96.2,96.2,0,0,0,128,32Zm45.3,62.1-39.6,39.6a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4l39.6-39.6a8.1,8.1,0,1,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="167.6" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="8" x2="152" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="167.6" y2="88.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="8" x2="152" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pencil_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pencil_simple />
  <Heroicons.pencil_simple class="w-4 h-4" />
  <Heroicons.pencil_simple solid />
  <Heroicons.pencil_simple mini />
  <Heroicons.pencil_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pencil_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,64l56,56,26.3-26.3a8,8,0,0,0,0-11.4L173.7,37.7a8,8,0,0,0-11.4,0Z" opacity="0.2"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,76.7,179.7,32.3a16.6,16.6,0,0,0-11.3-5A16,16,0,0,0,156.7,32L130.3,58.3h0L36.7,152A15.9,15.9,0,0,0,32,163.3V208a16,16,0,0,0,16,16H92.7a16.1,16.1,0,0,0,11.3-4.7l120-120A16.1,16.1,0,0,0,224,76.7Zm-32,32L147.3,64,168,43.3,212.7,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ear_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ear_slash />
  <Heroicons.ear_slash class="w-4 h-4" />
  <Heroicons.ear_slash solid />
  <Heroicons.ear_slash mini />
  <Heroicons.ear_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ear_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M91.4,87.8A39.5,39.5,0,0,0,88,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M87,35.3A80,80,0,0,1,208,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84A79.9,79.9,0,0,1,63.3,56.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M163.1,119a24,24,0,0,0,4.9-15,39.9,39.9,0,0,0-53-37.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M166.9,170.8A20.1,20.1,0,0,1,140,152a25.5,25.5,0,0,1,1.6-9.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M91.4,87.8A39.5,39.5,0,0,0,88,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84A79.9,79.9,0,0,1,63.3,56.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M166.9,170.8A20.1,20.1,0,0,1,140,152a25.5,25.5,0,0,1,1.6-9.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M94.3,31.4A80.1,80.1,0,0,1,208,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M167,111.4a27.6,27.6,0,0,0,1-7.4,40,40,0,0,0-40-40l-3.9.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0C208,144,209,169,161.9,216Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M91.4,87.8A39.5,39.5,0,0,0,88,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M87,35.3A80,80,0,0,1,208,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84A79.9,79.9,0,0,1,63.3,56.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M163.1,119a24,24,0,0,0,4.9-15,39.9,39.9,0,0,0-53-37.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M166.9,170.8A20.1,20.1,0,0,1,140,152a25.5,25.5,0,0,1,1.6-9.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.9,210.6a7.9,7.9,0,0,1-.5,11.3A8.2,8.2,0,0,1,208,224a8,8,0,0,1-5.9-2.6l-37.9-41.7a29.7,29.7,0,0,1-4.2.3,28.1,28.1,0,0,1-28-28,31.1,31.1,0,0,1,.7-6.9L96,104.7a8,8,0,0,1-16-.7,50.4,50.4,0,0,1,2.2-14.5L64.5,70A71.4,71.4,0,0,0,56,104c0,26.7,8.5,34.9,17.6,43.6S92,165.4,92,188a36,36,0,0,0,63.8,22.9,7.9,7.9,0,0,1,11.2-1.1,8.1,8.1,0,0,1,1.1,11.3A52,52,0,0,1,76,188c0-15.8-5.7-21.3-13.5-28.8C52.5,149.5,40,137.5,40,104A87.8,87.8,0,0,1,53.2,57.6L42.1,45.4A8,8,0,0,1,53.9,34.6L69.2,51.5h.1l28,30.8h0l75.4,83h0ZM91.1,42.2A72,72,0,0,1,200,104a8,8,0,0,0,16,0A88,88,0,0,0,82.9,28.4a8,8,0,0,0-2.8,11A8.1,8.1,0,0,0,91.1,42.2Zm67.2,83.2a7.7,7.7,0,0,0,4.8,1.6,8,8,0,0,0,6.4-3.2A31.6,31.6,0,0,0,176,104a48,48,0,0,0-48-48,48.6,48.6,0,0,0-15.6,2.6,8,8,0,0,0,5.2,15.1A32.9,32.9,0,0,1,128,72a32.1,32.1,0,0,1,32,32,16,16,0,0,1-3.3,10.2A7.9,7.9,0,0,0,158.3,125.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M91.4,87.8A39.5,39.5,0,0,0,88,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M87,35.3A80,80,0,0,1,208,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84A79.9,79.9,0,0,1,63.3,56.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M163.1,119a24,24,0,0,0,4.9-15,39.9,39.9,0,0,0-53-37.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M166.9,170.8A20.1,20.1,0,0,1,140,152a25.5,25.5,0,0,1,1.6-9.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M91.4,87.8A39.5,39.5,0,0,0,88,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M87,35.3A80,80,0,0,1,208,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84A79.9,79.9,0,0,1,63.3,56.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M163.1,119a24,24,0,0,0,4.9-15,39.9,39.9,0,0,0-53-37.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M166.9,170.8A20.1,20.1,0,0,1,140,152a25.5,25.5,0,0,1,1.6-9.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_three />
  <Heroicons.number_three class="w-4 h-4" />
  <Heroicons.number_three solid />
  <Heroicons.number_three mini />
  <Heroicons.number_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,32h96l-56,80a56,56,0,1,1-39.6,95.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,32h96l-56,80a56,56,0,1,1-39.6,95.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,32h96l-56,80a56,56,0,1,1-39.6,95.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,168A64,64,0,0,1,74.8,213.3a8,8,0,0,1,11.3-11.4A47.9,47.9,0,1,0,120,120a8.1,8.1,0,0,1-7.1-4.3,7.8,7.8,0,0,1,.6-8.3L160.6,40H80a8,8,0,0,1,0-16h96a8.1,8.1,0,0,1,7.1,4.3,7.8,7.8,0,0,1-.6,8.3l-48.2,69A64.1,64.1,0,0,1,184,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,32h96l-56,80a56,56,0,1,1-39.6,95.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,32h96l-56,80a56,56,0,1,1-39.6,95.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_minus />
  <Heroicons.file_minus class="w-4 h-4" />
  <Heroicons.file_minus solid />
  <Heroicons.file_minus mini />
  <Heroicons.file_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM152,160H104a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm0-72V43.3L196.7,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `skip_back` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.skip_back />
  <Heroicons.skip_back class="w-4 h-4" />
  <Heroicons.skip_back solid />
  <Heroicons.skip_back mini />
  <Heroicons.skip_back outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def skip_back(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="40" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" opacity="0.2"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,32a8,8,0,0,1,8,8v73.7L183.7,40.6A16,16,0,0,1,208,54.3V201.7a15.9,15.9,0,0,1-8.2,14,15.4,15.4,0,0,1-7.8,2,16.2,16.2,0,0,1-8.3-2.3L64,142.3V216a8,8,0,0,1-16,0V40A8,8,0,0,1,56,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="40" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M67.2,121.2,187.8,47.4A8,8,0,0,1,200,54.3V201.7a8,8,0,0,1-12.2,6.9L67.2,134.8A8,8,0,0,1,67.2,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="40" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `globe_stand` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.globe_stand />
  <Heroicons.globe_stand class="w-4 h-4" />
  <Heroicons.globe_stand solid />
  <Heroicons.globe_stand mini />
  <Heroicons.globe_stand outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def globe_stand(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.5,169.5a103.9,103.9,0,0,1-147-147" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="232" x2="160" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M201.5,169.5a103.9,103.9,0,0,1-147-147" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="236" x2="160" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="200" x2="128" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" opacity="0.2"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.5,169.5a103.9,103.9,0,0,1-147-147" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="232" x2="160" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="80"/><path d="M207.2,175.2a8,8,0,0,0-11.3-11.3A96,96,0,0,1,60.1,28.1,8,8,0,1,0,48.8,16.8,112,112,0,0,0,120,207.7V224H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16H136V207.7A111.6,111.6,0,0,0,207.2,175.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M201.5,169.5a103.9,103.9,0,0,1-147-147" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="232" x2="160" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M201.5,169.5a103.9,103.9,0,0,1-147-147" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="232" x2="160" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_arc_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_arc_left />
  <Heroicons.arrow_arc_left class="w-4 h-4" />
  <Heroicons.arrow_arc_left solid />
  <Heroicons.arrow_arc_left mini />
  <Heroicons.arrow_arc_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_arc_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="92.1 148.1 28.1 148.1 28.1 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184A96,96,0,0,0,60.1,116.1l-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="92.1 148.1 28.1 148.1 28.1 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,184A96,96,0,0,0,60.1,116.1l-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="92.1 148.1 28.1 148.1 28.1 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184A96,96,0,0,0,60.1,116.1l-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,184a8,8,0,0,1-16,0A88,88,0,0,0,71.7,116.4l26.1,26.1a8,8,0,0,1,1.7,8.7,7.9,7.9,0,0,1-7.4,4.9h-64a8,8,0,0,1-8-8v-64a8,8,0,0,1,13.7-5.6L60.3,105a104,104,0,0,1,141.2,5.5A102.9,102.9,0,0,1,232,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="92.1 148.1 28.1 148.1 28.1 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,184A96,96,0,0,0,60.1,116.1l-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="92.1 148.1 28.1 148.1 28.1 84.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,184A96,96,0,0,0,60.1,116.1l-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dribbble_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dribbble_logo />
  <Heroicons.dribbble_logo class="w-4 h-4" />
  <Heroicons.dribbble_logo solid />
  <Heroicons.dribbble_logo mini />
  <Heroicons.dribbble_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dribbble_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71,205.3A160.1,160.1,0,0,1,208,128c5.4,0,10.7.3,16,.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,53.1A159.8,159.8,0,0,1,64,112a165.2,165.2,0,0,1-30.1-2.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M85.9,41.7a160.5,160.5,0,0,1,74.3,176.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M71,205.3A160.1,160.1,0,0,1,208,128c5.4,0,10.7.3,16,.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M188,53.1A159.8,159.8,0,0,1,64,112a165.2,165.2,0,0,1-30.1-2.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M85.9,41.7a160.5,160.5,0,0,1,74.3,176.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71,205.3A160.1,160.1,0,0,1,208,128c5.4,0,10.7.3,16,.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,53.1A159.8,159.8,0,0,1,64,112a165.2,165.2,0,0,1-30.1-2.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M85.9,41.7a160.5,160.5,0,0,1,74.3,176.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.3,36.9a4,4,0,0,1,.8-7.2,103.7,103.7,0,0,1,88.6,9.9,4,4,0,0,1,1.1,5.9,156.1,156.1,0,0,1-41.9,37A169,169,0,0,0,93.3,36.9ZM127.6,90a154.2,154.2,0,0,0-56-46.9,4.3,4.3,0,0,0-4.1.3A105.1,105.1,0,0,0,29.2,95.5a4,4,0,0,0,3,5.1A151.1,151.1,0,0,0,64,104,150.6,150.6,0,0,0,127.6,90Zm103.8,26.7a104,104,0,0,0-29.2-61.5,4.1,4.1,0,0,0-6,.3,168.3,168.3,0,0,1-45.7,40.4,171.5,171.5,0,0,1,13.6,29.9A167.3,167.3,0,0,1,208,120a171.5,171.5,0,0,1,19,1.1A4,4,0,0,0,231.4,116.7Zm-62.9,24.5a169,169,0,0,1,4.4,38.5,168.1,168.1,0,0,1-4.1,36.8,4,4,0,0,0,5.7,4.5,104.1,104.1,0,0,0,56.6-79.2,4,4,0,0,0-3.5-4.5A141.3,141.3,0,0,0,208,136,151.2,151.2,0,0,0,168.5,141.2Zm-19.7-10.4a142.6,142.6,0,0,0-12.4-27.2A167.2,167.2,0,0,1,64,120a167.3,167.3,0,0,1-34.9-3.7,4,4,0,0,0-4.8,3.6q-.3,4-.3,8.1a103.7,103.7,0,0,0,33,75.9,3.9,3.9,0,0,0,6.1-.9A168.8,168.8,0,0,1,148.8,130.8ZM75.7,213.2a4,4,0,0,0,1.5,5.5A102.9,102.9,0,0,0,128,232a98.3,98.3,0,0,0,18.1-1.6,3.8,3.8,0,0,0,3-2.6,151,151,0,0,0,7.8-48.1,154.2,154.2,0,0,0-3.7-33.5A153.2,153.2,0,0,0,75.7,213.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M71,205.3A160.1,160.1,0,0,1,208,128c5.4,0,10.7.3,16,.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,53.1A159.8,159.8,0,0,1,64,112a165.2,165.2,0,0,1-30.1-2.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M85.9,41.7a160.5,160.5,0,0,1,74.3,176.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M71,205.3A160.1,160.1,0,0,1,208,128c5.4,0,10.7.3,16,.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,53.1A159.8,159.8,0,0,1,64,112a165.2,165.2,0,0,1-30.1-2.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M85.9,41.7a160.5,160.5,0,0,1,74.3,176.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_jsx` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_jsx />
  <Heroicons.file_jsx class="w-4 h-4" />
  <Heroicons.file_jsx solid />
  <Heroicons.file_jsx mini />
  <Heroicons.file_jsx outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_jsx(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="164" y1="168" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="168" x2="164" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="164" x2="212" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="164" x2="172" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M100,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,164v36a20,20,0,0,1-40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="164" y1="168" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="168" x2="164" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168v32a24,24,0,0,1-48,0,8,8,0,0,1,16,0,8,8,0,0,0,16,0V168a8,8,0,0,1,16,0Zm41.7,15.8c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,134,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,119,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,104,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,119,225c15.7,0,25-7.9,25-21S130,186,121.7,183.8Zm83.1-22.2a8,8,0,0,0-11.2,1.6L182,178.7l-11.6-15.5a8,8,0,0,0-12.8,9.6L172,192l-14.4,19.2a8,8,0,0,0,1.6,11.2A7.7,7.7,0,0,0,164,224a8,8,0,0,0,6.4-3.2L182,205.3l11.6,15.5A8,8,0,0,0,200,224a7.7,7.7,0,0,0,4.8-1.6,8,8,0,0,0,1.6-11.2L192,192l14.4-19.2A8,8,0,0,0,204.8,161.6ZM216,88v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-20,0L152,44V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="164" y1="168" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="168" x2="164" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="164" y1="168" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="168" x2="164" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `coffee` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.coffee />
  <Heroicons.coffee class="w-4 h-4" />
  <Heroicons.coffee solid />
  <Heroicons.coffee mini />
  <Heroicons.coffee outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def coffee(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="24" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="24" x2="120" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="24" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="216" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,88h0a32,32,0,0,1,32,32v8a32,32,0,0,1-32,32h-3.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="216" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,88h4a32,32,0,0,1,32,32v8a32,32,0,0,1-32,32h-7.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="24" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="24" x2="120" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="24" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80Z" opacity="0.2"/><line x1="88" y1="24" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="24" x2="120" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="24" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="216" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,88h0a32,32,0,0,1,32,32v8a32,32,0,0,1-32,32h-3.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56V24a8,8,0,0,1,16,0V56a8,8,0,0,1-16,0Zm40,8a8,8,0,0,0,8-8V24a8,8,0,0,0-16,0V56A8,8,0,0,0,120,64Zm32,0a8,8,0,0,0,8-8V24a8,8,0,0,0-16,0V56A8,8,0,0,0,152,64Zm96,56v8a40,40,0,0,1-37.5,39.9,98,98,0,0,1-27,40.1H208a8,8,0,0,1,0,16H32a8,8,0,0,1,0-16H56.5A96.4,96.4,0,0,1,24,136V88a8,8,0,0,1,8-8H208A40,40,0,0,1,248,120Zm-16,0a24,24,0,0,0-16-22.6V136a92.9,92.9,0,0,1-1.2,15A24,24,0,0,0,232,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="24" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="24" x2="120" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="24" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="216" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,88h0a32,32,0,0,1,32,32v8a32,32,0,0,1-32,32h-3.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="24" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="24" x2="120" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="24" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="216" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M83.3,216A88,88,0,0,1,32,136V88H208v48a88,88,0,0,1-51.3,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,88h0a32,32,0,0,1,32,32v8a32,32,0,0,1-32,32h-3.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `drop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.drop />
  <Heroicons.drop class="w-4 h-4" />
  <Heroicons.drop solid />
  <Heroicons.drop mini />
  <Heroicons.drop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def drop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,191.2a47.9,47.9,0,0,0,39.2-39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M163.1,152A35.8,35.8,0,0,1,136,179.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" opacity="0.2"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,191.2a47.9,47.9,0,0,0,39.2-39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M174,47.8A259.4,259.4,0,0,0,132.6,9.4a8.1,8.1,0,0,0-9.2,0A259.4,259.4,0,0,0,82,47.8C54.5,79.3,40,112.6,40,144a88,88,0,0,0,176,0C216,112.6,201.5,79.3,174,47.8Zm9.2,105.6a55.8,55.8,0,0,1-45.8,45.7h-1.3a8,8,0,0,1-1.3-15.9,39.7,39.7,0,0,0,32.6-32.6,8,8,0,0,1,9.3-6.5A7.9,7.9,0,0,1,183.2,153.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136.1,191.2a47.9,47.9,0,0,0,39.2-39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,144c0-72-80-128-80-128S48,72,48,144a80,80,0,0,0,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136.1,191.2a47.9,47.9,0,0,0,39.2-39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_low />
  <Heroicons.speaker_low class="w-4 h-4" />
  <Heroicons.speaker_low solid />
  <Heroicons.speaker_low mini />
  <Heroicons.speaker_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.3,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3A8.1,8.1,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8.1,8.1,0,0,0,155.5,24.8ZM32,96H72v64H32Z"/><path d="M196.3,99.7a8,8,0,0,0-11.3,0,7.9,7.9,0,0,0,0,11.3,24.1,24.1,0,0,1,0,34,7.9,7.9,0,0,0,0,11.3,7.6,7.6,0,0,0,5.6,2.3,7.8,7.8,0,0,0,5.7-2.3,40.1,40.1,0,0,0,0-56.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magnet_straight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magnet_straight />
  <Heroicons.magnet_straight class="w-4 h-4" />
  <Heroicons.magnet_straight solid />
  <Heroicons.magnet_straight mini />
  <Heroicons.magnet_straight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magnet_straight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="96" x2="104" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,144a24,24,0,0,0,48,0V56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8v87c0,44.1-35.3,80.7-79.4,81A80,80,0,0,1,48,144V56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="96" x2="104" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,144a24,24,0,0,0,48,0V56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8v87c0,44.1-35.3,80.7-79.4,81A80,80,0,0,1,48,144V56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8V96H48Z" opacity="0.2"/><path d="M152,56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8V96H152Z" opacity="0.2"/><line x1="48" y1="96" x2="104" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,144a24,24,0,0,0,48,0V56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8v87c0,44.1-35.3,80.7-79.4,81A80,80,0,0,1,48,144V56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,40H160a16,16,0,0,0-16,16v88a16,16,0,0,1-32,0V56A16,16,0,0,0,96,40H56A16,16,0,0,0,40,56v88a87.9,87.9,0,0,0,88,88h.7c48.1-.4,87.3-40.3,87.3-89V56A16,16,0,0,0,200,40Zm0,16V96H160V56ZM96,56V96H56V56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="96" x2="104" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,144a24,24,0,0,0,48,0V56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8v87c0,44.1-35.3,80.7-79.4,81A80,80,0,0,1,48,144V56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="96" x2="104" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,144a24,24,0,0,0,48,0V56a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8v87c0,44.1-35.3,80.7-79.4,81A80,80,0,0,1,48,144V56a8,8,0,0,1,8-8H96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list_numbers` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list_numbers />
  <Heroicons.list_numbers class="w-4 h-4" />
  <Heroicons.list_numbers solid />
  <Heroicons.list_numbers mini />
  <Heroicons.list_numbers outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list_numbers(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="64" x2="216" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="192" x2="216" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 60 56 52 56 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.1,152.6a14,14,0,1,1,24.5,13.2L40,200H68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="108" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 60 56 52 56 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M41.1,152.6a14,14,0,1,1,24.5,13.2L40,200H68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="64" x2="216" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="192" x2="216" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 60 56 52 56 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.1,152.6a14,14,0,1,1,24.5,13.2L40,200H68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H104a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM104,72H216a8,8,0,0,0,0-16H104a8,8,0,0,0,0,16ZM216,184H104a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM43.6,67.2,48,64.9V108a8,8,0,0,0,16,0V52a7.9,7.9,0,0,0-3.8-6.8,8,8,0,0,0-7.8-.4l-16,8a8,8,0,1,0,7.2,14.4ZM72.2,170.3A21.5,21.5,0,0,0,76,158a22,22,0,0,0-42.3-8.6,8,8,0,0,0,14.8,6.3A5.8,5.8,0,0,1,54,152a6,6,0,0,1,6,6,5.7,5.7,0,0,1-.9,3.2l-25.5,34A8,8,0,0,0,40,208H68a8,8,0,0,0,0-16H56l16-21.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 60 56 52 56 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M41.1,152.6a14,14,0,1,1,24.5,13.2L40,200H68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 60 56 52 56 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M41.1,152.6a14,14,0,1,1,24.5,13.2L40,200H68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_open />
  <Heroicons.folder_open class="w-4 h-4" />
  <Heroicons.folder_open solid />
  <Heroicons.folder_open mini />
  <Heroicons.folder_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208l30.2-90.5a8,8,0,0,1,7.6-5.5H228.9a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,208l30.1-86.6a8.2,8.2,0,0,1,7.6-5.4h159a8,8,0,0,1,7.6,10.6L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208l30.2-90.5a8,8,0,0,1,7.6-5.5H208V88a8,8,0,0,0-8-8H130.7a8.1,8.1,0,0,1-4.8-1.6L98.1,57.6A8.1,8.1,0,0,0,93.3,56H40a8,8,0,0,0-8,8Z" opacity="0.2"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,208l30.2-90.5a8,8,0,0,1,7.6-5.5H228.9a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.9,110.6a16.2,16.2,0,0,0-13-6.6H216V88a16,16,0,0,0-16-16H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V208h0a7.9,7.9,0,0,0,8,8H208a8,8,0,0,0,7.6-5.5l28.5-85.4A16.3,16.3,0,0,0,241.9,110.6ZM93.3,64l27.8,20.8a15.6,15.6,0,0,0,9.6,3.2H200v16H69.8a16,16,0,0,0-15.2,10.9L40,158.7V64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,208l30.2-90.5a8,8,0,0,1,7.6-5.5H228.9a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,208V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H200a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,208l30.2-90.5a8,8,0,0,1,7.6-5.5H228.9a8,8,0,0,1,7.6,10.5L208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_down_left />
  <Heroicons.arrow_bend_down_left class="w-4 h-4" />
  <Heroicons.arrow_bend_down_left solid />
  <Heroicons.arrow_bend_down_left mini />
  <Heroicons.arrow_bend_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 104 32 152 80 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,56a96,96,0,0,1-96,96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 104 32 152 80 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,56a96,96,0,0,1-96,96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 104 32 152 80 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,56a96,96,0,0,1-96,96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,56A104.2,104.2,0,0,1,128,160H88v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,88,104v40h40a88.1,88.1,0,0,0,88-88,8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 104 32 152 80 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,56a96,96,0,0,1-96,96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 104 32 152 80 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,56a96,96,0,0,1-96,96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `layout` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.layout />
  <Heroicons.layout class="w-4 h-4" />
  <Heroicons.layout solid />
  <Heroicons.layout mini />
  <Heroicons.layout outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def layout(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="104" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="104" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,208V104H32v96a8,8,0,0,0,8,8H96" opacity="0.2"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,56H216V96H40ZM216,200H112V112H216v88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="104" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="104" x2="104" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eraser` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eraser />
  <Heroicons.eraser class="w-4 h-4" />
  <Heroicons.eraser solid />
  <Heroicons.eraser mini />
  <Heroicons.eraser outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eraser(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.5" y1="99.5" x2="159.4" y2="167.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L148.1,43a15.9,15.9,0,0,1,22.6,0L216,88.2a16.2,16.2,0,0,1,0,22.7L111,215.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.5" y1="99.5" x2="159.4" y2="167.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L148.1,43a15.9,15.9,0,0,1,22.6,0L216,88.2a16.2,16.2,0,0,1,0,22.7L111,215.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M111,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L91.5,99.5l67.9,67.9Z" opacity="0.2"/><line x1="91.5" y1="99.5" x2="159.4" y2="167.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L148.1,43a15.9,15.9,0,0,1,22.6,0L216,88.2a16.2,16.2,0,0,1,0,22.7L111,215.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,207.8H130.3l34.8-34.7h0l56.6-56.6a24.1,24.1,0,0,0,0-33.9L176.4,37.3a24,24,0,0,0-33.9,0L85.9,93.9h0L29.3,150.5a24,24,0,0,0,0,33.9l37.1,37.1a7.9,7.9,0,0,0,5.7,2.3H216a8,8,0,0,0,0-16ZM153.8,48.6a8.1,8.1,0,0,1,11.3,0l45.2,45.3a7.9,7.9,0,0,1,0,11.3l-50.9,50.9L102.9,99.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.5" y1="99.5" x2="159.4" y2="167.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L148.1,43a15.9,15.9,0,0,1,22.6,0L216,88.2a16.2,16.2,0,0,1,0,22.7L111,215.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.5" y1="99.5" x2="159.4" y2="167.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,215.8H72.1L35,178.7a15.9,15.9,0,0,1,0-22.6L148.1,43a15.9,15.9,0,0,1,22.6,0L216,88.2a16.2,16.2,0,0,1,0,22.7L111,215.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `queue` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.queue />
  <Heroicons.queue class="w-4 h-4" />
  <Heroicons.queue solid />
  <Heroicons.queue mini />
  <Heroicons.queue outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def queue(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="136" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="240 160 176 200 176 120 240 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="136" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="240 160 176 200 176 120 240 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="240 160 176 200 176 120 240 160" opacity="0.2"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="136" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="240 160 176 200 176 120 240 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H40A8,8,0,0,1,32,64Zm104,56H40a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Zm0,64H40a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Zm108.2-30.8-64-40A8,8,0,0,0,168,120v80a8.1,8.1,0,0,0,4.1,7,8,8,0,0,0,8.1-.2l64-40a8,8,0,0,0,0-13.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="136" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="240 160 176 200 176 120 240 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="136" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="240 160 176 200 176 120 240 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_check` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_check />
  <Heroicons.cloud_check class="w-4 h-4" />
  <Heroicons.cloud_check solid />
  <Heroicons.cloud_check mini />
  <Heroicons.cloud_check outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_check(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 116 144 164 120 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 116 144 164 120 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" opacity="0.2"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 116 144 164 120 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160.1,40A88.1,88.1,0,0,0,81.3,88.7h0a86.6,86.6,0,0,0-9.3,39,8.2,8.2,0,0,1-7.4,8.3,8,8,0,0,1-8.6-8,105,105,0,0,1,5.3-32.9,4,4,0,0,0-4.7-5.2A64,64,0,0,0,8,152c0,35.2,29.8,64,64.9,64H160a88,88,0,0,0,.1-176Zm37.6,81.7-48,48a8.2,8.2,0,0,1-11.4,0l-24-24a8.1,8.1,0,0,1,11.4-11.4L144,152.7l42.3-42.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 116 144 164 120 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 116 144 164 120 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `notebook` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.notebook />
  <Heroicons.notebook class="w-4 h-4" />
  <Heroicons.notebook solid />
  <Heroicons.notebook mini />
  <Heroicons.notebook outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def notebook(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="148" x2="176" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H80Z" opacity="0.2"/><line x1="112" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM80,208H48V48H80Zm96-56H112a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H112a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `webcam` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.webcam />
  <Heroicons.webcam class="w-4 h-4" />
  <Heroicons.webcam solid />
  <Heroicons.webcam mini />
  <Heroicons.webcam outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def webcam(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="208" x2="224" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="104" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="176" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="208" x2="224" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a72,72,0,1,0,72,72A72,72,0,0,0,128,32Zm0,104a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z" opacity="0.2"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="208" x2="224" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="32"/><path d="M224,200H136V183.6a80,80,0,1,0-16,0V200H32a8,8,0,0,0,0,16H224a8,8,0,0,0,0-16ZM80,104a48,48,0,1,1,48,48A48,48,0,0,1,80,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="176" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="208" x2="224" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="176" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="208" x2="224" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_moon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_moon />
  <Heroicons.cloud_moon class="w-4 h-4" />
  <Heroicons.cloud_moon solid />
  <Heroicons.cloud_moon mini />
  <Heroicons.cloud_moon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_moon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M47,138.9A64.1,64.1,0,0,1,9.6,94.4h0A68.3,68.3,0,0,0,24,96,64.1,64.1,0,0,0,88,32a68.3,68.3,0,0,0-1.6-14.4h0A64,64,0,0,1,136,80c0,1,0,2-.1,3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M50,136.5A63.9,63.9,0,0,1,17.6,94.4h0A68.3,68.3,0,0,0,32,96,64.1,64.1,0,0,0,96,32a68.3,68.3,0,0,0-1.6-14.4h0A64,64,0,0,1,144,80v1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M90.3,130.4a67.9,67.9,0,0,1,45.5-47.3h.1c.1-1,.1-2,.1-3A64,64,0,0,0,86.4,17.6h0A68.3,68.3,0,0,1,88,32,64.1,64.1,0,0,1,24,96,68.3,68.3,0,0,1,9.6,94.4h0A64.1,64.1,0,0,0,47,138.9h0A43.7,43.7,0,0,1,76,128a42.5,42.5,0,0,1,14.3,2.4Z" opacity="0.2"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M47,138.9A64.1,64.1,0,0,1,9.6,94.4h0A68.3,68.3,0,0,0,24,96,64.1,64.1,0,0,0,88,32a68.3,68.3,0,0,0-1.6-14.4h0A64,64,0,0,1,136,80c0,1,0,2-.1,3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,72a85.2,85.2,0,0,0-12.4,1A71.8,71.8,0,0,0,88.2,9.8a8,8,0,0,0-9.6,9.6A58.6,58.6,0,0,1,80,32,56,56,0,0,1,24,88a58.6,58.6,0,0,1-12.6-1.4,8,8,0,0,0-9.6,9.6,71.9,71.9,0,0,0,32.3,45A52,52,0,0,0,76,224h80a76,76,0,0,0,0-152ZM21.4,104H24A72.1,72.1,0,0,0,96,32V29.3a55.6,55.6,0,0,1,31.9,48.1A76.3,76.3,0,0,0,85,120.8a53.8,53.8,0,0,0-9-.8,51.8,51.8,0,0,0-30,9.6A55.9,55.9,0,0,1,21.4,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M47,138.9A64.1,64.1,0,0,1,9.6,94.4h0A68.3,68.3,0,0,0,24,96,64.1,64.1,0,0,0,88,32a68.3,68.3,0,0,0-1.6-14.4h0A64,64,0,0,1,136,80c0,1,0,2-.1,3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,148a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M47,138.9A64.1,64.1,0,0,1,9.6,94.4h0A68.3,68.3,0,0,0,24,96,64.1,64.1,0,0,0,88,32a68.3,68.3,0,0,0-1.6-14.4h0A64,64,0,0,1,136,80c0,1,0,2-.1,3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_one` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_one />
  <Heroicons.number_one class="w-4 h-4" />
  <Heroicons.number_one solid />
  <Heroicons.number_one mini />
  <Heroicons.number_one outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_one(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="84 64 132 32 132 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="84 64 132 32 132 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="84 64 132 32 132 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,232a8,8,0,0,1-8-8V47L88.4,70.6a8,8,0,0,1-11.1-2.2,8.1,8.1,0,0,1,2.3-11.1l48-32a8.3,8.3,0,0,1,8.2-.4A8,8,0,0,1,140,32V224A8,8,0,0,1,132,232Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="84 64 132 32 132 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="84 64 132 32 132 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_teardrop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_teardrop />
  <Heroicons.chat_teardrop class="w-4 h-4" />
  <Heroicons.chat_teardrop solid />
  <Heroicons.chat_teardrop mini />
  <Heroicons.chat_teardrop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_teardrop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" opacity="0.2"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,24A100.2,100.2,0,0,0,32,124v84.3A15.7,15.7,0,0,0,47.7,224H132a100,100,0,0,0,0-200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `quotes` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.quotes />
  <Heroicons.quotes class="w-4 h-4" />
  <Heroicons.quotes solid />
  <Heroicons.quotes mini />
  <Heroicons.quotes outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def quotes(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8Z" opacity="0.2"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8Z" opacity="0.2"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M116,72v88a48,48,0,0,1-48,48,8,8,0,0,1,0-16,32.1,32.1,0,0,0,32-32v-8H40a16,16,0,0,1-16-16V72A16,16,0,0,1,40,56h60A16,16,0,0,1,116,72ZM216,56H156a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h60v8a32.1,32.1,0,0,1-32,32,8,8,0,0,0,0,16,48,48,0,0,0,48-48V72A16,16,0,0,0,216,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,144H40a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,144H156a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h60a8,8,0,0,1,8,8v88a40,40,0,0,1-40,40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_foreground` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_foreground />
  <Heroicons.selection_foreground class="w-4 h-4" />
  <Heroicons.selection_foreground solid />
  <Heroicons.selection_foreground mini />
  <Heroicons.selection_foreground outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_foreground(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216H48a8,8,0,0,1-8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="88" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="168" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="160" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,216h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,88h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,88H48a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,168h40a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216H48a8,8,0,0,1-8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="88" x2="92" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="164" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="160" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,216h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,88h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,88H48a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M169.5,164h38.7a7.8,7.8,0,0,0,7.8-7.8V47.8a7.8,7.8,0,0,0-7.8-7.8H99.8A7.8,7.8,0,0,0,92,47.8V86.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="128" height="128" rx="8" opacity="0.2"/><path d="M56,216H48a8,8,0,0,1-8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="88" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="168" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="160" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,216h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,88h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,88H48a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,168h40a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8,8H48a16,16,0,0,1-16-16v-8a8,8,0,0,1,16,0v8h8A8,8,0,0,1,64,216Zm48-8H96a8,8,0,0,0,0,16h16a8,8,0,0,0,0-16ZM40,168a8,8,0,0,0,8-8V144a8,8,0,0,0-16,0v16A8,8,0,0,0,40,168Zm128,24a8,8,0,0,0-8,8v8h-8a8,8,0,0,0,0,16h8a16,16,0,0,0,16-16v-8A8,8,0,0,0,168,192Zm0-80a8,8,0,0,0,8-8V96a16,16,0,0,0-16-16h-8a8,8,0,0,0,0,16h8v8A8,8,0,0,0,168,112ZM56,80H48A16,16,0,0,0,32,96v8a8,8,0,0,0,16,0V96h8a8,8,0,0,0,0-16ZM208,32H96A16,16,0,0,0,80,48V88a8,8,0,0,0,8,8h24a8,8,0,0,0,0-16H96V48H208V160H176V144a8,8,0,0,0-16,0v24a8,8,0,0,0,8,8h40a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216H48a8,8,0,0,1-8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="88" x2="88" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="168" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="160" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,216h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,88h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,88H48a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,168h40a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216H48a8,8,0,0,1-8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="88" x2="88" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="168" x2="168" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="160" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,216h8a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,88h8a8,8,0,0,1,8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,88H48a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,168h40a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file />
  <Heroicons.file class="w-4 h-4" />
  <Heroicons.file solid />
  <Heroicons.file mini />
  <Heroicons.file outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_double_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_double_up />
  <Heroicons.caret_circle_double_up class="w-4 h-4" />
  <Heroicons.caret_circle_double_up solid />
  <Heroicons.caret_circle_double_up mini />
  <Heroicons.caret_circle_double_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_double_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 168 128 136 160 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 112 128 80 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 168 128 136 160 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 112 128 80 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 168 128 136 160 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 112 128 80 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,201.5a104,104,0,1,0-147,0A103.9,103.9,0,0,0,201.5,201.5Zm-99.8-83.8a8.1,8.1,0,0,1-11.4,0,8.2,8.2,0,0,1,0-11.4l32-32a8.1,8.1,0,0,1,11.4,0l32,32a8.1,8.1,0,0,1-11.4,11.4L128,91.3Zm0,56a8.1,8.1,0,0,1-11.4,0,8.2,8.2,0,0,1,0-11.4l32-32a8.1,8.1,0,0,1,11.4,0l32,32a8.1,8.1,0,0,1-11.4,11.4L128,147.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 168 128 136 160 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 112 128 80 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 168 128 136 160 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 112 128 80 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rewind_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rewind_circle />
  <Heroicons.rewind_circle class="w-4 h-4" />
  <Heroicons.rewind_circle solid />
  <Heroicons.rewind_circle mini />
  <Heroicons.rewind_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rewind_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="176 160 128 128 176 96 176 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="112 160 64 128 112 96 112 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="168 156 132 128 168 100 168 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="112 156 76 128 112 100 112 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32ZM112,160,64,128l48-32Zm64,0-48-32,48-32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="176 160 128 128 176 96 176 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="112 160 64 128 112 96 112 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128A104,104,0,1,0,128,24,104.2,104.2,0,0,0,24,128Zm44,0a8.2,8.2,0,0,1,3.4-6.6l40-28a8,8,0,0,1,8.3-.5A8.1,8.1,0,0,1,124,100v28a8.2,8.2,0,0,1,3.4-6.6l40-28a8,8,0,0,1,8.3-.5A8.1,8.1,0,0,1,180,100v56a8,8,0,0,1-8,8,8.6,8.6,0,0,1-4.6-1.4l-40-28A8.2,8.2,0,0,1,124,128v28a8,8,0,0,1-8,8,8.6,8.6,0,0,1-4.6-1.4l-40-28A8.2,8.2,0,0,1,68,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="172 160 124 128 172 96 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="116 160 68 128 116 96 116 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="172 160 124 128 172 96 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="116 160 68 128 116 96 116 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link_simple_break` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link_simple_break />
  <Heroicons.link_simple_break class="w-4 h-4" />
  <Heroicons.link_simple_break solid />
  <Heroicons.link_simple_break mini />
  <Heroicons.link_simple_break outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link_simple_break(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,173.3,111,201.5a39.7,39.7,0,0,1-56.5,0,40,40,0,0,1,0-56.5l28.2-28.3a8,8,0,0,0-11.3-11.3L43.1,133.7a56,56,0,0,0,79.2,79.2l28.3-28.3a8,8,0,0,0,0-11.3A7.9,7.9,0,0,0,139.3,173.3Z"/><path d="M212.9,43.1a56,56,0,0,0-79.2,0L105.4,71.4a8,8,0,0,0,11.3,11.3L145,54.5a39.7,39.7,0,0,1,56.5,0,40,40,0,0,1,0,56.5l-28.2,28.3a7.9,7.9,0,0,0,0,11.3,7.7,7.7,0,0,0,5.6,2.4,8,8,0,0,0,5.7-2.4l28.3-28.3A56.1,56.1,0,0,0,212.9,43.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `facebook_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.facebook_logo />
  <Heroicons.facebook_logo class="w-4 h-4" />
  <Heroicons.facebook_logo solid />
  <Heroicons.facebook_logo mini />
  <Heroicons.facebook_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def facebook_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,88H152a23.9,23.9,0,0,0-24,24V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,88H152a23.9,23.9,0,0,0-24,24V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,88H152a23.9,23.9,0,0,0-24,24V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128a104.3,104.3,0,0,1-91.5,103.3,4.1,4.1,0,0,1-4.5-4V152h24a8,8,0,0,0,8-8.5,8.2,8.2,0,0,0-8.3-7.5H136V112a16,16,0,0,1,16-16h16a8,8,0,0,0,8-8.5,8.2,8.2,0,0,0-8.3-7.5H152a32,32,0,0,0-32,32v24H96a8,8,0,0,0-8,8.5,8.2,8.2,0,0,0,8.3,7.5H120v75.3a4,4,0,0,1-4.4,4C62.8,224.9,22,179,24.1,124.1A104,104,0,0,1,232,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,88H152a23.9,23.9,0,0,0-24,24V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,88H152a23.9,23.9,0,0,0-24,24V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `keyhole` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.keyhole />
  <Heroicons.keyhole class="w-4 h-4" />
  <Heroicons.keyhole solid />
  <Heroicons.keyhole mini />
  <Heroicons.keyhole outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def keyhole(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M141.4,132.6a28,28,0,1,0-26.8,0l-13.8,32.2a8,8,0,0,0,7.3,11.2h39.8a8,8,0,0,0,7.3-11.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M146.6,129A28,28,0,1,0,100,108a28.5,28.5,0,0,0,9.4,21L98.9,165.8a8,8,0,0,0,7.7,10.2h42.8a8,8,0,0,0,7.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M141.4,132.6a28,28,0,1,0-26.8,0l-13.8,32.2a8,8,0,0,0,7.3,11.2h39.8a8,8,0,0,0,7.3-11.2Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M141.4,132.6a28,28,0,1,0-26.8,0l-13.8,32.2a8,8,0,0,0,7.3,11.2h39.8a8,8,0,0,0,7.3-11.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm18.4-81.8,12.5,29.1a12,12,0,0,1-11,16.7H108.1a12,12,0,0,1-11-16.7l12.5-29.1a32,32,0,0,1-2.9-50.1,32.4,32.4,0,0,1,25-7.9,32,32,0,0,1,14.7,58Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M141.4,132.6a28,28,0,1,0-26.8,0l-13.8,32.2a8,8,0,0,0,7.3,11.2h39.8a8,8,0,0,0,7.3-11.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M141.4,132.6a28,28,0,1,0-26.8,0l-13.8,32.2a8,8,0,0,0,7.3,11.2h39.8a8,8,0,0,0,7.3-11.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell />
  <Heroicons.bell class="w-4 h-4" />
  <Heroicons.bell solid />
  <Heroicons.bell mini />
  <Heroicons.bell outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" opacity="0.2"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220.8,175.9c-5.9-10.2-13-29.6-13-63.9v-7.1c0-44.3-35.5-80.6-79.2-80.9H128a79.9,79.9,0,0,0-79.8,80v8c0,34.3-7.1,53.7-13,63.9A16,16,0,0,0,49,200H88a40,40,0,0,0,80,0h39a15.9,15.9,0,0,0,13.9-8A16.2,16.2,0,0,0,220.8,175.9ZM128,224a24.1,24.1,0,0,1-24-24h48A24.1,24.1,0,0,1,128,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_six />
  <Heroicons.dice_six class="w-4 h-4" />
  <Heroicons.dice_six solid />
  <Heroicons.dice_six mini />
  <Heroicons.dice_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="84" r="12"/><circle cx="164" cy="84" r="12"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><circle cx="92" cy="172" r="12"/><circle cx="164" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="96" cy="84" r="16"/><circle cx="160" cy="84" r="16"/><circle cx="96" cy="128" r="16"/><circle cx="160" cy="128" r="16"/><circle cx="96" cy="172" r="16"/><circle cx="160" cy="172" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="84" r="12"/><circle cx="164" cy="84" r="12"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><circle cx="92" cy="172" r="12"/><circle cx="164" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32ZM92,184a12,12,0,1,1,12-12A12,12,0,0,1,92,184Zm0-44a12,12,0,1,1,12-12A12,12,0,0,1,92,140Zm0-44a12,12,0,1,1,12-12A12,12,0,0,1,92,96Zm72,88a12,12,0,1,1,12-12A12,12,0,0,1,164,184Zm0-44a12,12,0,1,1,12-12A12,12,0,0,1,164,140Zm0-44a12,12,0,1,1,12-12A12,12,0,0,1,164,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="84" r="10"/><circle cx="164" cy="84" r="10"/><circle cx="92" cy="128" r="10"/><circle cx="164" cy="128" r="10"/><circle cx="92" cy="172" r="10"/><circle cx="164" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="84" r="8"/><circle cx="164" cy="84" r="8"/><circle cx="92" cy="128" r="8"/><circle cx="164" cy="128" r="8"/><circle cx="92" cy="172" r="8"/><circle cx="164" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_four />
  <Heroicons.dice_four class="w-4 h-4" />
  <Heroicons.dice_four solid />
  <Heroicons.dice_four mini />
  <Heroicons.dice_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="100" r="12"/><circle cx="156" cy="100" r="12"/><circle cx="100" cy="156" r="12"/><circle cx="156" cy="156" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="96" cy="96" r="16"/><circle cx="160" cy="96" r="16"/><circle cx="96" cy="160" r="16"/><circle cx="160" cy="160" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="100" r="12"/><circle cx="156" cy="100" r="12"/><circle cx="100" cy="156" r="12"/><circle cx="156" cy="156" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32ZM100,168a12,12,0,1,1,12-12A12,12,0,0,1,100,168Zm0-56a12,12,0,1,1,12-12A12,12,0,0,1,100,112Zm56,56a12,12,0,1,1,12-12A12,12,0,0,1,156,168Zm0-56a12,12,0,1,1,12-12A12,12,0,0,1,156,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="100" cy="100" r="10"/><circle cx="156" cy="100" r="10"/><circle cx="100" cy="156" r="10"/><circle cx="156" cy="156" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="100" cy="100" r="8"/><circle cx="156" cy="100" r="8"/><circle cx="100" cy="156" r="8"/><circle cx="156" cy="156" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `polygon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.polygon />
  <Heroicons.polygon class="w-4 h-4" />
  <Heroicons.polygon solid />
  <Heroicons.polygon mini />
  <Heroicons.polygon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def polygon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="40" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="208" cy="72" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184.8" y1="65.7" x2="143.2" y2="54.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.2" y1="64.1" x2="57.8" y2="103.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="59.4" y1="134.2" x2="140.6" y2="193.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="185.4" x2="200" y2="94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="40" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="160" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="208" cy="72" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184.8" y1="65.7" x2="143.2" y2="54.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="102.2" y1="64.1" x2="57.8" y2="103.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="59.4" y1="134.2" x2="140.6" y2="193.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="185.4" x2="200" y2="94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="48" r="24" opacity="0.2"/><circle cx="40" cy="120" r="24" opacity="0.2"/><circle cx="160" cy="208" r="24" opacity="0.2"/><circle cx="208" cy="72" r="24" opacity="0.2"/><circle cx="120" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="40" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="208" cy="72" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184.8" y1="65.7" x2="143.2" y2="54.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.2" y1="64.1" x2="57.8" y2="103.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="59.4" y1="134.2" x2="140.6" y2="193.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="185.4" x2="200" y2="94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M230.6,49.4a31.9,31.9,0,0,0-45.2,0h0a30.2,30.2,0,0,0-5.2,6.7L152,48.4a32,32,0,0,0-54.6-23h0a32,32,0,0,0-5.8,37.4L57.7,93.3a32,32,0,0,0-40.3,4.1h0a31.9,31.9,0,0,0,0,45.2A31.6,31.6,0,0,0,40,152a32.1,32.1,0,0,0,20.3-7.2l70,51.3a32,32,0,0,0,7.1,34.5,31.9,31.9,0,0,0,45.2,0,31.9,31.9,0,0,0,0-45.2,43.3,43.3,0,0,0-4.7-4l27.3-77.5H208a31.6,31.6,0,0,0,22.6-9.4A31.9,31.9,0,0,0,230.6,49.4ZM162.8,176.1a32.4,32.4,0,0,0-23.1,7.1l-70-51.3a32.4,32.4,0,0,0-1.3-26.7l33.9-30.5A32.4,32.4,0,0,0,120,80a31.6,31.6,0,0,0,22.6-9.4,30.2,30.2,0,0,0,5.2-6.7L176,71.6a31.6,31.6,0,0,0,9.4,23,43.3,43.3,0,0,0,4.7,4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="40" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="160" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="208" cy="72" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184.8" y1="65.7" x2="143.2" y2="54.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102.2" y1="64.1" x2="57.8" y2="103.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="59.4" y1="134.2" x2="140.6" y2="193.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="185.4" x2="200" y2="94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="40" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="160" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="208" cy="72" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184.8" y1="65.7" x2="143.2" y2="54.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102.2" y1="64.1" x2="57.8" y2="103.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="59.4" y1="134.2" x2="140.6" y2="193.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="185.4" x2="200" y2="94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bed` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bed />
  <Heroicons.bed class="w-4 h-4" />
  <Heroicons.bed solid />
  <Heroicons.bed mini />
  <Heroicons.bed outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bed(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,168V80H208a32,32,0,0,1,32,32v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="208" x2="16" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="16 168 240 168 240 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="80" x2="16" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,168V80H208a32,32,0,0,1,32,32v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="208" x2="16" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="16 168 240 168 240 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="80" x2="16" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,80H208a32,32,0,0,1,32,32v56a0,0,0,0,1,0,0H104a0,0,0,0,1,0,0V80A0,0,0,0,1,104,80Z" opacity="0.2"/><path d="M104,168V80H208a32,32,0,0,1,32,32v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="208" x2="16" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="16 168 240 168 240 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="80" x2="16" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,72H24V48A8,8,0,0,0,8,48V208a8,8,0,0,0,16,0V176H232v32a8,8,0,0,0,16,0V112A40,40,0,0,0,208,72ZM24,88H96v72H24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,168V80H208a32,32,0,0,1,32,32v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="208" x2="16" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="16 168 240 168 240 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="80" x2="16" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,168V80H208a32,32,0,0,1,32,32v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="208" x2="16" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="16 168 240 168 240 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="80" x2="16" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `music_notes_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.music_notes_simple />
  <Heroicons.music_notes_simple class="w-4 h-4" />
  <Heroicons.music_notes_simple solid />
  <Heroicons.music_notes_simple mini />
  <Heroicons.music_notes_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def music_notes_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" opacity="0.2"/><circle cx="52" cy="204" r="28" opacity="0.2"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212.9,25.7a7.9,7.9,0,0,0-6.8-1.5l-128,32A8,8,0,0,0,72,64V174.1A35.3,35.3,0,0,0,52,168a36,36,0,1,0,36,36V70.2l112-28v99.9a35.3,35.3,0,0,0-20-6.1,36,36,0,1,0,36,36V32A7.8,7.8,0,0,0,212.9,25.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_key` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_key />
  <Heroicons.lock_key class="w-4 h-4" />
  <Heroicons.lock_key solid />
  <Heroicons.lock_key mini />
  <Heroicons.lock_key outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_key(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="144" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="164" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,88H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V96A8,8,0,0,0,208,88Zm-80,72a20,20,0,1,1,20-20A20,20,0,0,1,128,160Z" opacity="0.2"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="12"/><path d="M208,80H172V52a44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,86.8V184a8,8,0,0,1-16,0V166.8a28,28,0,1,1,16,0ZM156,80H100V52a28,28,0,0,1,56,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `medal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.medal />
  <Heroicons.medal class="w-4 h-4" />
  <Heroicons.medal solid />
  <Heroicons.medal mini />
  <Heroicons.medal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def medal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="96" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 160 176 240 128 216 80 240 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="96" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 160 176 240 128 216 80 240 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="48" opacity="0.2"/><circle cx="128" cy="96" r="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="96" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 160 176 240 128 216 80 240 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="56"/><path d="M128,8A87.9,87.9,0,0,0,72,163.8V240a7.9,7.9,0,0,0,3.8,6.8,8,8,0,0,0,7.8.4L128,224.9l44.4,22.3a9.4,9.4,0,0,0,3.6.8,8,8,0,0,0,8-8V163.8A87.9,87.9,0,0,0,128,8Zm0,160a72,72,0,1,1,72-72A72.1,72.1,0,0,1,128,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="96" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 160 176 240 128 216 80 240 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="96" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 160 176 240 128 216 80 240 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `money` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.money />
  <Heroicons.money class="w-4 h-4" />
  <Heroicons.money solid />
  <Heroicons.money mini />
  <Heroicons.money outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def money(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="64" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="192" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="64" x2="16" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="192" x2="16" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="64" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="192" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="64" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="192" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" opacity="0.2"/><path d="M232,64H176l64,56V72A8,8,0,0,0,232,64Z" opacity="0.2"/><path d="M232,192a8,8,0,0,0,8-8V136l-64,56Z" opacity="0.2"/><path d="M16,72v48L80,64H24A8,8,0,0,0,16,72Z" opacity="0.2"/><path d="M16,184a8,8,0,0,0,8,8H80L16,136Z" opacity="0.2"/><rect x="16" y="64" width="224" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="64" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="192" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="64" x2="16" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="192" x2="16" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,56H24A16,16,0,0,0,8,72V184a16,16,0,0,0,16,16H232a16,16,0,0,0,16-16V72A16,16,0,0,0,232,56ZM75,184,24,140.3V115.7L75,72H181l51,43.7v24.6L181,184Zm93-56a40,40,0,1,1-40-40A40,40,0,0,1,168,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="64" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="192" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="64" x2="16" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="192" x2="16" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="64" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="192" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="64" x2="16" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="192" x2="16" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sign_in` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sign_in />
  <Heroicons.sign_in class="w-4 h-4" />
  <Heroicons.sign_in solid />
  <Heroicons.sign_in mini />
  <Heroicons.sign_in outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sign_in(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="94 170 136 128 94 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,40h56a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="94 170 136 128 94 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M136,40h56a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="94 170 136 128 94 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,40h56a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M141.7,133.7l-42,42A8.3,8.3,0,0,1,94,178a7.7,7.7,0,0,1-3-.6,8,8,0,0,1-5-7.4V136H24a8,8,0,0,1,0-16H86V86a8,8,0,0,1,5-7.4,8.2,8.2,0,0,1,8.7,1.7l42,42A8.1,8.1,0,0,1,141.7,133.7ZM192,32H136a8,8,0,0,0,0,16h56V208H136a8,8,0,0,0,0,16h56a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="94 170 136 128 94 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136,40h56a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="94 170 136 128 94 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136,40h56a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paint_bucket` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paint_bucket />
  <Heroicons.paint_bucket class="w-4 h-4" />
  <Heroicons.paint_bucket solid />
  <Heroicons.paint_bucket mini />
  <Heroicons.paint_bucket outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paint_bucket(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223,123.5l-96.2,96.2a16.1,16.1,0,0,1-22.6,0L19.3,134.8a16.1,16.1,0,0,1,0-22.6L115.5,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="116" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,204c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="109.9" y1="101.9" x2="37.9" y2="29.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223,123.5l-96.2,96.2a16.1,16.1,0,0,1-22.6,0L19.3,134.8a16.1,16.1,0,0,1,0-22.6L115.5,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="124" cy="116" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M204,216c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="107" y1="99" x2="37.9" y2="29.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="124" cy="116" r="20" opacity="0.2"/><path d="M208,204c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" opacity="0.2"/><path d="M223,123.5l-96.2,96.2a16.1,16.1,0,0,1-22.6,0L19.3,134.8a16.1,16.1,0,0,1,0-22.6L115.5,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="116" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,204c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="109.9" y1="101.9" x2="37.9" y2="29.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,204a28,28,0,0,1-56,0c0-23,21.4-44.7,22.3-45.7a8.2,8.2,0,0,1,11.4,0C234.6,159.3,256,181,256,204ZM132.5,124.5a12,12,0,0,0,0-17,12.1,12.1,0,0,0-17,0,12,12,0,0,0,17,17Zm98.5-1a8.2,8.2,0,0,0-2.4-5.7L121.1,10.3a8,8,0,0,0-11.3,0L69.7,50.4l41,41a28,28,0,1,1-11.3,11.3l-41-41L13.7,106.5a24,24,0,0,0,0,34l84.8,84.8a24.1,24.1,0,0,0,34,0l96.1-96.2A8,8,0,0,0,231,123.5ZM43.5,24.2A8,8,0,0,0,32.2,35.5L58.4,61.7,69.7,50.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223,123.5l-96.2,96.2a16.1,16.1,0,0,1-22.6,0L19.3,134.8a16.1,16.1,0,0,1,0-22.6L115.5,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="124" cy="116" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,204c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="109.9" y1="101.9" x2="37.9" y2="29.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223,123.5l-96.2,96.2a16.1,16.1,0,0,1-22.6,0L19.3,134.8a16.1,16.1,0,0,1,0-22.6L115.5,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="124" cy="116" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,204c0-20,20-40,20-40s20,20,20,40a20,20,0,0,1-40,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="109.9" y1="101.9" x2="37.9" y2="29.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pencil_simple_line` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pencil_simple_line />
  <Heroicons.pencil_simple_line class="w-4 h-4" />
  <Heroicons.pencil_simple_line solid />
  <Heroicons.pencil_simple_line mini />
  <Heroicons.pencil_simple_line outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pencil_simple_line(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120,136,64l26.3-26.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" opacity="0.2"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,208H115.3l82.4-82.3h0L224,99.3a15.9,15.9,0,0,0,0-22.6L179.3,32a16.1,16.1,0,0,0-22.6,0L36.7,152A15.9,15.9,0,0,0,32,163.3V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16ZM48,163.3l96-96L188.7,112l-96,96H48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_notch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_notch />
  <Heroicons.folder_notch class="w-4 h-4" />
  <Heroicons.folder_notch solid />
  <Heroicons.folder_notch mini />
  <Heroicons.folder_notch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_notch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" opacity="0.2"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72ZM40,64H93.3l21.4,16L93.3,96H40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bluetooth` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bluetooth />
  <Heroicons.bluetooth class="w-4 h-4" />
  <Heroicons.bluetooth solid />
  <Heroicons.bluetooth mini />
  <Heroicons.bluetooth outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bluetooth(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,169.6,133.3,128l55.5-41.6a8,8,0,0,0,0-12.8l-64-48A8,8,0,0,0,112,32v80L60.8,73.6a8.1,8.1,0,0,0-11.2,1.6,8,8,0,0,0,1.6,11.2L106.7,128,51.2,169.6A8,8,0,0,0,56,184a7.7,7.7,0,0,0,4.8-1.6L112,144v80a8.2,8.2,0,0,0,4.4,7.2,9.4,9.4,0,0,0,3.6.8,7.7,7.7,0,0,0,4.8-1.6l64-48a8,8,0,0,0,0-12.8ZM128,48l42.7,32L128,112Zm0,160V144l42.7,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_list` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_list />
  <Heroicons.user_list class="w-4 h-4" />
  <Heroicons.user_list solid />
  <Heroicons.user_list mini />
  <Heroicons.user_list outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_list(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="104" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="80" x2="248" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="248" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M18,192a64,64,0,0,1,124,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="104" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="80" x2="244" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="128" x2="244" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="176" x2="244" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M18,192a64,64,0,0,1,124,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="104" r="40" opacity="0.2"/><circle cx="80" cy="104" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="80" x2="248" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="248" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M18,192a64,64,0,0,1,124,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,80a8,8,0,0,1,8-8h96a8,8,0,0,1,0,16H152A8,8,0,0,1,144,80Zm104,40H152a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Zm0,48H176a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16ZM109.1,142.1a48,48,0,1,0-58.2,0A72,72,0,0,0,10.3,190a8.1,8.1,0,0,0,1.4,6.9A7.8,7.8,0,0,0,18,200H142a7.8,7.8,0,0,0,6.3-3.1,8.1,8.1,0,0,0,1.4-6.9A72,72,0,0,0,109.1,142.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="104" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="80" x2="248" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="176" x2="248" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M18,192a64,64,0,0,1,124,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="104" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="80" x2="248" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="176" x2="248" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M18,192a64,64,0,0,1,124,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `mask_happy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.mask_happy />
  <Heroicons.mask_happy class="w-4 h-4" />
  <Heroicons.mask_happy solid />
  <Heroicons.mask_happy mini />
  <Heroicons.mask_happy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def mask_happy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.5,176a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M74.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154.5,176a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" opacity="0.2"/><path d="M146.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.5,176a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M217,35.1a15.9,15.9,0,0,0-14.8-1.7C188.2,38.9,159.8,48,128,48S67.8,38.9,53.8,33.4A16,16,0,0,0,32,48.3V104c0,35.8,9.7,69.5,27.2,95s42.6,41,68.8,41,50.7-14.5,68.8-41S224,139.8,224,104V48.3A15.9,15.9,0,0,0,217,35.1ZM80.1,133.3a8,8,0,0,1-11.3.7,8,8,0,0,1-.6-11.3,31.8,31.8,0,0,1,47.6,0,8,8,0,0,1-.6,11.3,8.1,8.1,0,0,1-5.3,2,8,8,0,0,1-6-2.7,16,16,0,0,0-23.8,0ZM159,182.7a56.3,56.3,0,0,1-62,0,8.1,8.1,0,0,1-2.2-11.1,8,8,0,0,1,11.1-2.3,39.8,39.8,0,0,0,44.2,0,8,8,0,0,1,11.1,2.3A8.1,8.1,0,0,1,159,182.7ZM187.2,134a8.1,8.1,0,0,1-5.3,2,8,8,0,0,1-6-2.7,16,16,0,0,0-23.8,0,8,8,0,0,1-11.3.7,8,8,0,0,1-.6-11.3,31.8,31.8,0,0,1,47.6,0A8,8,0,0,1,187.2,134Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M74.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.5,176a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M74.1,128a24,24,0,0,1,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.5,176a47.9,47.9,0,0,1-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_double_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_double_up_right />
  <Heroicons.arrow_bend_double_up_right class="w-4 h-4" />
  <Heroicons.arrow_bend_double_up_right solid />
  <Heroicons.arrow_bend_double_up_right mini />
  <Heroicons.arrow_bend_double_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_double_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 176 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a96,96,0,0,1,96-96h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 152 168 104 120 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,200a96,96,0,0,1,96-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 176 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a96,96,0,0,1,96-96h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,109.7l-48,48a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L212.7,104,170.3,61.7a8.1,8.1,0,0,1,11.4-11.4l48,48A8.1,8.1,0,0,1,229.7,109.7Zm-48-11.4-48-48a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,120,56V96.3A104.1,104.1,0,0,0,24,200a8,8,0,0,0,16,0,88.1,88.1,0,0,1,80-87.6V152a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l48-48A8.1,8.1,0,0,0,181.7,98.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 152 176 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,200a96,96,0,0,1,96-96h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 152 176 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,200a96,96,0,0,1,96-96h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `car` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.car />
  <Heroicons.car class="w-4 h-4" />
  <Heroicons.car solid />
  <Heroicons.car mini />
  <Heroicons.car outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def car(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,176v32a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,176v32a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120v56H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120Z" opacity="0.2"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,112H229.2L201.4,49.5A15.9,15.9,0,0,0,186.8,40H69.2a15.9,15.9,0,0,0-14.6,9.5L26.8,112H16a8,8,0,0,0,0,16h8v80a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V192h96v16a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V128h8a8,8,0,0,0,0-16ZM80,160H64a8,8,0,0,1,0-16H80a8,8,0,0,1,0,16Zm96,0a8,8,0,0,1,0-16h16a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,120,194.1,52.8a8,8,0,0,0-7.3-4.8H69.2a8,8,0,0,0-7.3,4.8L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fish_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fish_simple />
  <Heroicons.fish_simple class="w-4 h-4" />
  <Heroicons.fish_simple solid />
  <Heroicons.fish_simple mini />
  <Heroicons.fish_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fish_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="12"/><path d="M16,184C247.8,234.7,223.8,75.5,217.2,45a8.2,8.2,0,0,0-6.2-6.2C180.5,32.2,21.3,8.2,72,240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.3,152A96,96,0,0,1,104,54.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="16"/><path d="M16,184C247.8,234.7,223.8,75.5,217.2,45a8.2,8.2,0,0,0-6.2-6.2C180.5,32.2,21.3,8.2,72,240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M201.3,152A96,96,0,0,1,104,54.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,54.6C75.9,75.2,55.7,115.4,64,192h0c76.6,8.3,116.8-11.9,137.4-40h-.1A96,96,0,0,1,104,54.6Z" opacity="0.2"/><circle cx="156" cy="76" r="12"/><path d="M16,184C247.8,234.7,223.8,75.5,217.2,45a8.2,8.2,0,0,0-6.2-6.2C180.5,32.2,21.3,8.2,72,240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.3,152A96,96,0,0,1,104,54.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,76a12,12,0,1,1-12-12A12,12,0,0,1,168,76Zm30.2,92c-26.5,26.4-68.4,37.4-125.1,32.9,1.6,11.8,3.8,24.3,6.7,37.4a7.9,7.9,0,0,1-6.1,9.5L72,248a8,8,0,0,1-7.8-6.3c-3.3-14.9-5.7-29.1-7.4-42.5-13.4-1.7-27.6-4.2-42.5-7.4a8,8,0,0,1,3.4-15.7c13.1,2.9,25.6,5.2,37.4,6.8C50.6,126.2,61.6,84.3,88,57.8c41-41,105.8-30.9,124.7-26.8A15.9,15.9,0,0,1,225,43.3C229.1,62.2,239.2,127,198.2,168ZM209.4,46.7c-15-3.3-62.3-10.9-97.3,12.1a87.9,87.9,0,0,0,85.1,85.1C220.2,108.9,212.6,61.6,209.4,46.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="10"/><path d="M16,184C247.8,234.7,223.8,75.5,217.2,45a8.2,8.2,0,0,0-6.2-6.2C180.5,32.2,21.3,8.2,72,240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M201.3,152A96,96,0,0,1,104,54.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="76" r="8"/><path d="M16,184C247.8,234.7,223.8,75.5,217.2,45a8.2,8.2,0,0,0-6.2-6.2C180.5,32.2,21.3,8.2,72,240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M201.3,152A96,96,0,0,1,104,54.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bug` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bug />
  <Heroicons.bug class="w-4 h-4" />
  <Heroicons.bug solid />
  <Heroicons.bug mini />
  <Heroicons.bug outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bug(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="92" r="12"/><circle cx="100" cy="92" r="12"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="244" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,144a80,80,0,0,1-160,0V112a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="231.9" y1="188" x2="203.2" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="231.9" y1="68" x2="203.2" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24.1" y1="68" x2="52.8" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24.1" y1="188" x2="52.8" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="88" r="16"/><circle cx="100" cy="88" r="16"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,144a80,80,0,0,1-160,0V112a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="231.9" y1="188" x2="203.2" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="231.9" y1="68" x2="203.2" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24.1" y1="68" x2="52.8" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24.1" y1="188" x2="52.8" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,128v16a80,80,0,0,1-160,0V128Z" opacity="0.2"/><circle cx="155.9" cy="92" r="12"/><circle cx="99.9" cy="92" r="12"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="244" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,144a80,80,0,0,1-160,0V112a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="231.9" y1="188" x2="203.2" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="231.9" y1="68" x2="203.2" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24.1" y1="68" x2="52.8" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24.1" y1="188" x2="52.8" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M167.9,92a12,12,0,1,1-12-12A12,12,0,0,1,167.9,92Zm-68-12a12,12,0,1,0,12,12A12,12,0,0,0,99.9,80ZM252,128a8,8,0,0,1-8,8H216v8a88.1,88.1,0,0,1-3.2,23.7l23.1,13.4a8,8,0,0,1-4,14.9,7.6,7.6,0,0,1-4-1.1L207,182.8a88,88,0,0,1-158,0L28.1,194.9a7.6,7.6,0,0,1-4,1.1,8,8,0,0,1-4-14.9l23.1-13.4A88.1,88.1,0,0,1,40,144v-8H12a8,8,0,0,1,0-16H40v-8a88.1,88.1,0,0,1,3.2-23.7L20.1,74.9a8,8,0,0,1-3-10.9,8.1,8.1,0,0,1,11-2.9L49,73.2a88,88,0,0,1,158,0l20.9-12.1a8.1,8.1,0,0,1,11,2.9,8,8,0,0,1-3,10.9L212.8,88.3A88.1,88.1,0,0,1,216,112v8h28A8,8,0,0,1,252,128ZM136,144a8,8,0,0,0-16,0v64a8,8,0,0,0,16,0Zm64-32a72,72,0,0,0-144,0v8H200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="92" r="10"/><circle cx="100" cy="92" r="10"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="244" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,144a80,80,0,0,1-160,0V112a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="231.9" y1="188" x2="203.2" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="231.9" y1="68" x2="203.2" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24.1" y1="68" x2="52.8" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24.1" y1="188" x2="52.8" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="156" cy="92" r="8"/><circle cx="100" cy="92" r="8"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="244" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,144a80,80,0,0,1-160,0V112a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="231.9" y1="188" x2="203.2" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="231.9" y1="68" x2="203.2" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24.1" y1="68" x2="52.8" y2="84.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24.1" y1="188" x2="52.8" y2="171.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `beer_bottle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.beer_bottle />
  <Heroicons.beer_bottle class="w-4 h-4" />
  <Heroicons.beer_bottle solid />
  <Heroicons.beer_bottle mini />
  <Heroicons.beer_bottle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def beer_bottle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="208" y1="16" x2="240" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,24,152,72l-40,8L27.3,164.7a16.1,16.1,0,0,0,0,22.6l41.4,41.4a16.1,16.1,0,0,0,22.6,0L176,144l8-40,48-64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="40" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="208" y1="16" x2="240" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,24,152,72l-40,8L27.3,164.7a16.1,16.1,0,0,0,0,22.6l41.4,41.4a16.1,16.1,0,0,0,22.6,0L176,144l8-40,48-64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="212" x2="44" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="60.4" y="110.7" width="79.2" height="90.51" transform="translate(-81 116.4) rotate(-45)" opacity="0.2"/><line x1="208" y1="16" x2="240" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,24,152,72l-40,8L27.3,164.7a16.1,16.1,0,0,0,0,22.6l41.4,41.4a16.1,16.1,0,0,0,22.6,0L176,144l8-40,48-64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="40" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M245.7,42.3l-32-32a8.1,8.1,0,0,0-11.4,11.4l1.5,1.4L148.7,64.5l-38.3,7.7a8.5,8.5,0,0,0-4.1,2.1l-16,16h0l-56,56h0L21.7,159a23.9,23.9,0,0,0,0,34L63,234.3a23.9,23.9,0,0,0,34,0l12.7-12.6h0l56-56h0l16-16a8.5,8.5,0,0,0,2.1-4.1l7.7-38.3,41.4-55.1,1.4,1.5a8.2,8.2,0,0,0,11.4,0A8.1,8.1,0,0,0,245.7,42.3ZM74.3,223,33,181.7a8,8,0,0,1,0-11.4l7-7L92.7,216l-7,7A8.1,8.1,0,0,1,74.3,223ZM177.6,99.2a8.3,8.3,0,0,0-1.4,3.2l-7.6,37.7-8.6,8.6L107.3,96l8.6-8.6,37.7-7.6a8.3,8.3,0,0,0,3.2-1.4l58.4-43.8,6.2,6.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="208" y1="16" x2="240" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,24,152,72l-40,8L27.3,164.7a16.1,16.1,0,0,0,0,22.6l41.4,41.4a16.1,16.1,0,0,0,22.6,0L176,144l8-40,48-64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="216" x2="40" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="208" y1="16" x2="240" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,24,152,72l-40,8L27.3,164.7a16.1,16.1,0,0,0,0,22.6l41.4,41.4a16.1,16.1,0,0,0,22.6,0L176,144l8-40,48-64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="96" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="216" x2="40" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_left />
  <Heroicons.arrow_fat_left class="w-4 h-4" />
  <Heroicons.arrow_fat_left solid />
  <Heroicons.arrow_fat_left mini />
  <Heroicons.arrow_fat_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" opacity="0.2"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.3,229.7l-96-96a8.1,8.1,0,0,1,0-11.4l96-96a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,128,32V72h80a16,16,0,0,1,16,16v80a16,16,0,0,1-16,16H128v40a8,8,0,0,1-4.9,7.4A8.4,8.4,0,0,1,114.3,229.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,32,24,128l96,96V176h88a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H120Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_slash />
  <Heroicons.speaker_slash class="w-4 h-4" />
  <Heroicons.speaker_slash solid />
  <Heroicons.speaker_slash mini />
  <Heroicons.speaker_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l6.8-5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l6.8-5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="118.5 58.1 152 32 152 94.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.6,105.4a31.9,31.9,0,0,1,5.5,37.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M218.9,77.1a71.9,71.9,0,0,1,4.7,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80Z" opacity="0.2"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l6.8-5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L73.6,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3h0A7.9,7.9,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V175.1l42.1,46.3A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3ZM72,160H32V96H72Z"/><path d="M146.1,112.2a7.9,7.9,0,0,0,5.9,2.6,7.4,7.4,0,0,0,2.9-.5,8,8,0,0,0,5.1-7.5V32a8,8,0,0,0-12.9-6.3l-39.9,31a8.2,8.2,0,0,0-3,5.6,8.1,8.1,0,0,0,2,6.1Z"/><path d="M224.5,71.4a8,8,0,0,0-11.3,0,8.1,8.1,0,0,0,0,11.4,63.9,63.9,0,0,1,0,90.5,8,8,0,0,0,0,11.3,8.3,8.3,0,0,0,5.7,2.3,8,8,0,0,0,5.6-2.3,79.9,79.9,0,0,0,0-113.2Z"/><path d="M192,128a23.8,23.8,0,0,1-7.1,17,8,8,0,0,0,5.7,13.6,7.8,7.8,0,0,0,5.7-2.3,40.1,40.1,0,0,0,0-56.6,8.1,8.1,0,0,0-11.4,0,8,8,0,0,0,0,11.3A23.8,23.8,0,0,1,192,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l6.8-5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l6.8-5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microsoft_teams_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microsoft_teams_logo />
  <Heroicons.microsoft_teams_logo class="w-4 h-4" />
  <Heroicons.microsoft_teams_logo solid />
  <Heroicons.microsoft_teams_logo mini />
  <Heroicons.microsoft_teams_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microsoft_teams_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,88h32a8,8,0,0,1,8,8v72a56,56,0,0,1-56,56h0a56.1,56.1,0,0,1-53.7-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110" y1="104" x2="74" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="152" x2="92" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M108.3,72A32,32,0,1,1,152,83.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M166.1,45.2a26,26,0,1,1-3.4,28.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,88h27.3a4.7,4.7,0,0,1,4.7,4.7V152a32,32,0,0,1-32,32h-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="68" width="128" height="120" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="114" y1="104" x2="78" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="152" x2="96" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,88h60v80a56,56,0,0,1-56,56h0a55.9,55.9,0,0,1-52.3-36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134.3,68A32,32,0,1,1,164,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" opacity="0.2"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,88h32a8,8,0,0,1,8,8v72a56,56,0,0,1-56,56h0a56.1,56.1,0,0,1-53.7-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110" y1="104" x2="74" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="152" x2="92" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M108.3,72A32,32,0,1,1,152,83.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M166.1,45.2a26,26,0,1,1-3.4,28.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,88h27.3a4.7,4.7,0,0,1,4.7,4.7V152a32,32,0,0,1-32,32h-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.3,80h-4.5A33.5,33.5,0,0,0,220,62a34,34,0,0,0-51.4-29.2A40,40,0,0,0,96,56a42.6,42.6,0,0,0,.8,8H40A16,16,0,0,0,24,80v96a16,16,0,0,0,16,16H76.7a64,64,0,0,0,118.7-.2A40,40,0,0,0,232,152V92.7A12.7,12.7,0,0,0,219.3,80ZM136,32a24.1,24.1,0,0,1,24,24,24.3,24.3,0,0,1-4.1,13.4A15.9,15.9,0,0,0,144,64H113.4a24.5,24.5,0,0,1-1.4-8A24.1,24.1,0,0,1,136,32ZM84,152V112H74a8,8,0,0,1,0-16h36a8,8,0,0,1,0,16H100v40a8,8,0,0,1-16,0Zm100,16a48,48,0,0,1-48,48,48.5,48.5,0,0,1-41.6-24H144a16,16,0,0,0,16-16V96h24Zm2-88a18,18,0,0,1-14-6.7A39.2,39.2,0,0,0,176,56a37.7,37.7,0,0,0-.9-8.3A17.7,17.7,0,0,1,186,44a18,18,0,0,1,0,36Zm30,72a24,24,0,0,1-16.4,22.7,49.2,49.2,0,0,0,.4-6.7V96h16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,88h32a8,8,0,0,1,8,8v72a56,56,0,0,1-56,56h0a56.1,56.1,0,0,1-53.7-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110" y1="104" x2="74" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="92" y1="152" x2="92" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M108.3,72A32,32,0,1,1,152,83.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M166.1,45.2a26,26,0,1,1-3.4,28.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M192,88h27.3a4.7,4.7,0,0,1,4.7,4.7V152a32,32,0,0,1-32,32h-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,88h32a8,8,0,0,1,8,8v72a56,56,0,0,1-56,56h0a56.1,56.1,0,0,1-53.7-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110" y1="104" x2="74" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="92" y1="152" x2="92" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M108.3,72A32,32,0,1,1,152,83.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M166.1,45.2a26,26,0,1,1-3.4,28.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M192,88h27.3a4.7,4.7,0,0,1,4.7,4.7V152a32,32,0,0,1-32,32h-2.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `mountains` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.mountains />
  <Heroicons.mountains class="w-4 h-4" />
  <Heroicons.mountains solid />
  <Heroicons.mountains mini />
  <Heroicons.mountains outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def mountains(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M8,200,81.1,75.7a8.1,8.1,0,0,1,13.8,0L168,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="50.4" y1="128" x2="125.6" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144.1,159.4l33-55.8a8.1,8.1,0,0,1,13.8,0L248,200H168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M12,200,85.1,75.7a8.1,8.1,0,0,1,13.8,0L172,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="54.4" y1="128" x2="129.6" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M172,200h67.3l-52.4-88.4a8.1,8.1,0,0,0-13.8,0l-26.6,45" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="52" r="20" opacity="0.2"/><path d="M144.1,159.4l33-55.8a8.1,8.1,0,0,1,13.8,0L248,200H168Z" opacity="0.2"/><path d="M50.4,128h75.2L94.9,75.7a8.1,8.1,0,0,0-13.8,0Z" opacity="0.2"/><circle cx="164" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M8,200,81.1,75.7a8.1,8.1,0,0,1,13.8,0L168,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="50.4" y1="128" x2="125.6" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M144.1,159.4l33-55.8a8.1,8.1,0,0,1,13.8,0L248,200H168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M140,52a24,24,0,1,1,24,24A24.1,24.1,0,0,1,140,52ZM255,204a8.1,8.1,0,0,1-7,4H8a7.8,7.8,0,0,1-6.9-4,7.9,7.9,0,0,1,0-8.1L74.2,71.7a16,16,0,0,1,27.6,0l42.3,71.9,26.1-44.1a16.1,16.1,0,0,1,27.6,0l57.1,96.4A8.3,8.3,0,0,1,255,204ZM64.3,120h47.4L88,79.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M8,200,81.1,75.7a8.1,8.1,0,0,1,13.8,0L168,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="50.4" y1="128" x2="125.6" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M144.1,159.4l33-55.8a8.1,8.1,0,0,1,13.8,0L248,200H168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="52" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M8,200,81.1,75.7a8.1,8.1,0,0,1,13.8,0L168,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="50.4" y1="128" x2="125.6" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M144.1,159.4l33-55.8a8.1,8.1,0,0,1,13.8,0L248,200H168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cursor_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cursor_text />
  <Heroicons.cursor_text class="w-4 h-4" />
  <Heroicons.cursor_text solid />
  <Heroicons.cursor_text mini />
  <Heroicons.cursor_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cursor_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,208H160a32,32,0,0,1-32-32V80a32,32,0,0,1,32-32h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,208H96a32,32,0,0,0,32-32V80A32,32,0,0,0,96,48H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,208H160a32,32,0,0,1-32-32V80a32,32,0,0,1,32-32h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,208H96a32,32,0,0,0,32-32V80A32,32,0,0,0,96,48H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="128" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,208H160a32,32,0,0,1-32-32V80a32,32,0,0,1,32-32h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,208H96a32,32,0,0,0,32-32V80A32,32,0,0,0,96,48H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,208a8,8,0,0,1-8,8H160a40,40,0,0,1-32-16,40,40,0,0,1-32,16H80a8,8,0,0,1,0-16H96a24.1,24.1,0,0,0,24-24V136H104a8,8,0,0,1,0-16h16V80A24.1,24.1,0,0,0,96,56H80a8,8,0,0,1,0-16H96a40,40,0,0,1,32,16,40,40,0,0,1,32-16h16a8,8,0,0,1,0,16H160a24.1,24.1,0,0,0-24,24v40h16a8,8,0,0,1,0,16H136v40a24.1,24.1,0,0,0,24,24h16A8,8,0,0,1,184,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,208H160a32,32,0,0,1-32-32V80a32,32,0,0,1,32-32h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,208H96a32,32,0,0,0,32-32V80A32,32,0,0,0,96,48H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="128" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,208H160a32,32,0,0,1-32-32V80a32,32,0,0,1,32-32h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,208H96a32,32,0,0,0,32-32V80A32,32,0,0,0,96,48H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="128" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `article` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.article />
  <Heroicons.article class="w-4 h-4" />
  <Heroicons.article solid />
  <Heroicons.article mini />
  <Heroicons.article outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def article(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="96" x2="180" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="160" x2="180" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="92" x2="180" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="164" x2="180" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="96" x2="180" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76" y1="160" x2="180" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM180,168H76a8,8,0,0,1,0-16H180a8,8,0,0,1,0,16Zm0-32H76a8,8,0,0,1,0-16H180a8,8,0,0,1,0,16Zm0-32H76a8,8,0,0,1,0-16H180a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76" y1="96" x2="180" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76" y1="160" x2="180" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76" y1="96" x2="180" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76" y1="160" x2="180" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_image` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_image />
  <Heroicons.file_image class="w-4 h-4" />
  <Heroicons.file_image solid />
  <Heroicons.file_image mini />
  <Heroicons.file_image outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_image(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,224h8a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M196,224h4a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" opacity="0.2"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,224h8a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v96a8,8,0,0,0,16,0V40h88V88a8,8,0,0,0,8,8h48V216h-8a8,8,0,0,0,0,16h8a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM160,80V51.3L188.7,80Zm-1.3,139.6a8.3,8.3,0,0,1,.4,8.2A8,8,0,0,1,152,232H24a8,8,0,0,1-7-4.2,7.9,7.9,0,0,1,.3-8.1l32.6-50.8a12,12,0,0,1,20.2,0l6.4,10L94,152.6a12,12,0,0,1,20,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M192,224h8a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,224l-44.7-67a3.9,3.9,0,0,0-6.6,0L79.8,188.4a4,4,0,0,1-6.7-.1l-9.7-15.1a4.1,4.1,0,0,0-6.8,0L24,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M192,224h8a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_none` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_none />
  <Heroicons.wifi_none class="w-4 h-4" />
  <Heroicons.wifi_none solid />
  <Heroicons.wifi_none mini />
  <Heroicons.wifi_none outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_none(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8.1,8.1,0,0,1,237,87.5c-19,22.5-83,97.8-103,121.4a7.9,7.9,0,0,1-12,0C102,185.3,38,110,19,87.5A8.1,8.1,0,0,1,20.2,75.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,219.7a16,16,0,0,1-12.1-5.6L12.9,92.7A15.8,15.8,0,0,1,9.2,80.5a16.3,16.3,0,0,1,6.2-11c66.3-50,158.9-50,225.2,0a16.3,16.3,0,0,1,6.2,11,16,16,0,0,1-3.7,12.2l-103,121.4A16,16,0,0,1,128,219.7ZM25.1,82.3h0L128,203.6,230.9,82.4v-.2C170.4,36.6,85.7,36.6,25.1,82.3Zm-.1,0Zm-4.8-6.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="200" r="10"/>|,
          thin: ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `map_pin_line` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.map_pin_line />
  <Heroicons.map_pin_line class="w-4 h-4" />
  <Heroicons.map_pin_line solid />
  <Heroicons.map_pin_line mini />
  <Heroicons.map_pin_line outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def map_pin_line(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z" opacity="0.2"/><line x1="56" y1="232" x2="200" y2="232" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H150.5A253.6,253.6,0,0,0,174,200.2c27.5-31.5,42-64.8,42-96.2a88,88,0,0,0-176,0c0,31.4,14.5,64.7,42,96.2A253.6,253.6,0,0,0,105.5,224H56a8,8,0,0,0,0,16H200a8,8,0,0,0,0-16ZM128,72a32,32,0,1,1-32,32A32,32,0,0,1,128,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="232" x2="200" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="104" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,104c0,72-80,128-80,128S48,176,48,104a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_left_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_left_up />
  <Heroicons.arrow_u_left_up class="w-4 h-4" />
  <Heroicons.arrow_u_left_up solid />
  <Heroicons.arrow_u_left_up mini />
  <Heroicons.arrow_u_left_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_left_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 80 88 32 40 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,80v88a56,56,0,0,1-56,56h0a56,56,0,0,1-56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 80 88 32 40 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,80v88a56,56,0,0,1-56,56h0a56,56,0,0,1-56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 80 88 32 40 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,80v88a56,56,0,0,1-56,56h0a56,56,0,0,1-56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80v88a64,64,0,0,1-128,0V88H40a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,136,88H96v80a48,48,0,0,0,96,0V80a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 80 88 32 40 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,80v88a56,56,0,0,1-56,56h0a56,56,0,0,1-56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 80 88 32 40 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,80v88a56,56,0,0,1-56,56h0a56,56,0,0,1-56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_code` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_code />
  <Heroicons.file_code class="w-4 h-4" />
  <Heroicons.file_code solid />
  <Heroicons.file_code mini />
  <Heroicons.file_code outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_code(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 128 172 152 148 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 128 84 152 108 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,224a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 132 172 156 148 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 132 84 156 108 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 128 172 152 148 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 128 84 152 108 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,224a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3Zm-104,88a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-24-24a8.1,8.1,0,0,1,0-11.4l24-24a8.1,8.1,0,0,1,11.4,11.4L91.3,152Zm72-12.6-24,24a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L164.7,152l-18.4-18.3a8.1,8.1,0,0,1,11.4-11.4l24,24A8.1,8.1,0,0,1,181.7,157.7ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="148 128 172 152 148 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 128 84 152 108 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,224a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="148 128 172 152 148 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 128 84 152 108 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,224a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_right />
  <Heroicons.arrow_fat_right class="w-4 h-4" />
  <Heroicons.arrow_fat_right solid />
  <Heroicons.arrow_fat_right mini />
  <Heroicons.arrow_fat_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" opacity="0.2"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.9,231.4A8,8,0,0,1,128,224V184H48a16,16,0,0,1-16-16V88A16,16,0,0,1,48,72h80V32a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l96,96a8.1,8.1,0,0,1,0,11.4l-96,96A8.4,8.4,0,0,1,132.9,231.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32l96,96-96,96V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sun` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sun />
  <Heroicons.sun class="w-4 h-4" />
  <Heroicons.sun solid />
  <Heroicons.sun mini />
  <Heroicons.sun outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sun(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="62.9" x2="48.8" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="193.1" x2="48.8" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="193.1" x2="207.2" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="62.9" x2="207.2" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="28" x2="128" y2="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="198.7" y1="57.3" x2="210" y2="46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="228" y1="128" x2="244" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="198.7" y1="198.7" x2="210" y2="210" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="228" x2="128" y2="244" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="57.3" y1="198.7" x2="46" y2="210" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="28" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="57.3" y1="57.3" x2="46" y2="46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" opacity="0.2"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="62.9" x2="48.8" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="193.1" x2="48.8" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="193.1" x2="207.2" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="62.9" x2="207.2" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="68"/><path d="M128,44a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0V36A8,8,0,0,0,128,44Z"/><path d="M57.3,68.6a8.1,8.1,0,0,0,11.3,0,8,8,0,0,0,0-11.3L54.5,43.1A8.1,8.1,0,1,0,43.1,54.5Z"/><path d="M44,128a8,8,0,0,0-8-8H16a8,8,0,0,0,0,16H36A8,8,0,0,0,44,128Z"/><path d="M57.3,187.4,43.1,201.5a8.1,8.1,0,0,0,0,11.4,8.5,8.5,0,0,0,5.7,2.3,8.3,8.3,0,0,0,5.7-2.3l14.1-14.2a8,8,0,0,0-11.3-11.3Z"/><path d="M128,212a8,8,0,0,0-8,8v20a8,8,0,0,0,16,0V220A8,8,0,0,0,128,212Z"/><path d="M198.7,187.4a8,8,0,0,0-11.3,11.3l14.1,14.2a8.3,8.3,0,0,0,5.7,2.3,8.5,8.5,0,0,0,5.7-2.3,8.1,8.1,0,0,0,0-11.4Z"/><path d="M240,120H220a8,8,0,0,0,0,16h20a8,8,0,0,0,0-16Z"/><path d="M193.1,70.9a7.8,7.8,0,0,0,5.6-2.3l14.2-14.1a8.1,8.1,0,0,0-11.4-11.4L187.4,57.3a8,8,0,0,0,0,11.3A7.8,7.8,0,0,0,193.1,70.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="36" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="62.9" y1="62.9" x2="48.8" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="62.9" y1="193.1" x2="48.8" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="220" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="193.1" y1="193.1" x2="207.2" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="220" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="193.1" y1="62.9" x2="207.2" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="36" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="62.9" y1="62.9" x2="48.8" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="62.9" y1="193.1" x2="48.8" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="220" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="193.1" y1="193.1" x2="207.2" y2="207.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="220" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="193.1" y1="62.9" x2="207.2" y2="48.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `windows_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.windows_logo />
  <Heroicons.windows_logo class="w-4 h-4" />
  <Heroicons.windows_logo solid />
  <Heroicons.windows_logo mini />
  <Heroicons.windows_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def windows_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 216 136 201.5 136 201.5 136 144 216 144 216 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="104 195.6 40 184 40 144 104 144 104 195.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="216 40 136 54.5 136 54.5 136 112 216 112 216 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="104 60.4 40 72 40 112 104 112 104 60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="100 108 100 61.1 40 72 40 108 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="216 108 216 40 140 53.8 140 108 216 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="100 148 100 194.9 40 184 40 148 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="216 148 216 216 140 202.2 140 148 216 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 216 136 201.5 136 201.5 136 144 216 144 216 216" opacity="0.2"/><polygon points="104 195.6 40 184 40 144 104 144 104 195.6" opacity="0.2"/><polygon points="216 40 136 54.5 136 54.5 136 112 216 112 216 40" opacity="0.2"/><polygon points="104 60.4 40 72 40 112 104 112 104 60.4" opacity="0.2"/><polygon points="216 216 136 201.5 136 201.5 136 144 216 144 216 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="104 195.6 40 184 40 144 104 144 104 195.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="216 40 136 54.5 136 54.5 136 112 216 112 216 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="104 60.4 40 72 40 112 104 112 104 60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,144v51.6a8.1,8.1,0,0,1-2.9,6.2,7.8,7.8,0,0,1-5.1,1.8h-1.4l-64-11.6A8,8,0,0,1,32,184V144a8,8,0,0,1,8-8h64A8,8,0,0,1,112,144Zm-2.9-89.8a8,8,0,0,0-6.5-1.7l-64,11.6A8,8,0,0,0,32,72v40a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V60.4A8.1,8.1,0,0,0,109.1,54.2ZM216,136H136a8,8,0,0,0-8,8v57.5a8,8,0,0,0,6.6,7.8l80,14.6H216a7.4,7.4,0,0,0,5.1-1.9A7.9,7.9,0,0,0,224,216V144A8,8,0,0,0,216,136Zm5.1-102.1a7.7,7.7,0,0,0-6.5-1.8l-80,14.6a8,8,0,0,0-6.6,7.8V112a8,8,0,0,0,8,8h80a8,8,0,0,0,8-8V40A7.9,7.9,0,0,0,221.1,33.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 216 136 201.5 136 201.5 136 144 216 144 216 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="104 195.6 40 184 40 144 104 144 104 195.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="216 40 136 54.5 136 54.5 136 112 216 112 216 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="104 60.4 40 72 40 112 104 112 104 60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 216 136 201.5 136 201.5 136 144 216 144 216 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="104 195.6 40 184 40 144 104 144 104 195.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="216 40 136 54.5 136 54.5 136 112 216 112 216 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="104 60.4 40 72 40 112 104 112 104 60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `toilet` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.toilet />
  <Heroicons.toilet class="w-4 h-4" />
  <Heroicons.toilet solid />
  <Heroicons.toilet mini />
  <Heroicons.toilet outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def toilet(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,112V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="112" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,112a88,88,0,0,1-176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.6,193l-4.3,29.9a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1L162.4,193" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,108V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="68" x2="116" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,108a88,88,0,0,1-176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M94.1,189.2l-4.8,33.7a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1l-4.8-33.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,112V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v72Z" opacity="0.2"/><path d="M93.6,193l-4.3,29.9a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1L162.4,193h0a88,88,0,0,1-68.8,0Z" opacity="0.2"/><path d="M64,112V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="112" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,112a88,88,0,0,1-176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.6,193l-4.3,29.9a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1L162.4,193" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,112.1a8,8,0,0,0-8-8.1H40a8,8,0,0,0-8,8.1,96,96,0,0,0,52.8,85.6l-3.4,23.7a16.2,16.2,0,0,0,1.7,10.1A16,16,0,0,0,97.2,240h61.2a16.9,16.9,0,0,0,9.8-3,16.2,16.2,0,0,0,6.4-15.3l-3.4-24A96,96,0,0,0,224,112.1ZM97.2,224l2.9-20.1a97,97,0,0,0,55.8,0l2.9,20.1ZM60,88H196a4,4,0,0,0,4-4V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V84A4,4,0,0,0,60,88ZM88,48h15.7a8.2,8.2,0,0,1,8.3,7.5,8,8,0,0,1-8,8.5H88.3A8.2,8.2,0,0,1,80,56.5,8,8,0,0,1,88,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,112V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="64" x2="112" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,112a88,88,0,0,1-176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M93.6,193l-4.3,29.9a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1L162.4,193" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,112V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="64" x2="112" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,112a88,88,0,0,1-176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M93.6,193l-4.3,29.9a8,8,0,0,0,7.9,9.1h61.6a8,8,0,0,0,7.9-9.1L162.4,193" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_medium />
  <Heroicons.cell_signal_medium class="w-4 h-4" />
  <Heroicons.cell_signal_medium solid />
  <Heroicons.cell_signal_medium mini />
  <Heroicons.cell_signal_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,216H27.3a8,8,0,0,1-5.6-13.7L120,104Z" opacity="0.2"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M198.1,28.5A15.9,15.9,0,0,0,180.7,32L114.3,98.3h0L16,196.7a15.7,15.7,0,0,0-4.7,11.6,4.9,4.9,0,0,0,.1,1.2,14.7,14.7,0,0,0,1.1,4.6,16,16,0,0,0,6.9,7.8l1,.6,2.2.8a14.9,14.9,0,0,0,4.7.7H192a16,16,0,0,0,16-16V43.3A16,16,0,0,0,198.1,28.5ZM192,208H128V107.3l64-64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `vault` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.vault />
  <Heroicons.vault class="w-4 h-4" />
  <Heroicons.vault solid />
  <Heroicons.vault mini />
  <Heroicons.vault outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def vault(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="200" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="152" cy="128" r="16"/><line x1="152" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="152" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="200" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="200" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="148" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48ZM152,168a40,40,0,1,1,40-40A40,40,0,0,1,152,168Z" opacity="0.2"/><line x1="192" y1="200" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="152" cy="128" r="16"/><line x1="152" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="152" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V192a16,16,0,0,0,16,16H56v16a8,8,0,0,0,16,0V208H184v16a8,8,0,0,0,16,0V208h16a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-8,96H179.1a36,36,0,1,1,0-16H208a8,8,0,0,1,0,16Zm-44-8a20,20,0,1,1-20-20A20.1,20.1,0,0,1,164,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="200" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="200" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="152" cy="128" r="14"/><line x1="152" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="152" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="200" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="200" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="152" cy="128" r="12"/><line x1="152" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="152" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_two` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_two />
  <Heroicons.number_circle_two class="w-4 h-4" />
  <Heroicons.number_circle_two solid />
  <Heroicons.number_circle_two mini />
  <Heroicons.number_circle_two outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_two(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm24,144a8,8,0,0,1,0,16H104a7.3,7.3,0,0,1-2.5-.4A8,8,0,0,1,96,176a7.5,7.5,0,0,1,1.7-4.9l43.7-58.3A16,16,0,0,0,128,88a15.9,15.9,0,0,0-14.7,9.8,8,8,0,0,1-14.8-6.3,32,32,0,1,1,56,30.4l-.2.3L120,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_simple_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_simple_x />
  <Heroicons.speaker_simple_x class="w-4 h-4" />
  <Heroicons.speaker_simple_x solid />
  <Heroicons.speaker_simple_x mini />
  <Heroicons.speaker_simple_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_simple_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.2,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.2l69.9,54.3A7.9,7.9,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8Z"/><path d="M227.3,128l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L216,116.7,197.7,98.3a8.1,8.1,0,0,0-11.4,11.4L204.7,128l-18.4,18.3a8.1,8.1,0,0,0,0,11.4A8.3,8.3,0,0,0,192,160a8.5,8.5,0,0,0,5.7-2.3L216,139.3l18.3,18.4A8.3,8.3,0,0,0,240,160a8.5,8.5,0,0,0,5.7-2.3,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rss_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rss_simple />
  <Heroicons.rss_simple class="w-4 h-4" />
  <Heroicons.rss_simple solid />
  <Heroicons.rss_simple mini />
  <Heroicons.rss_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rss_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48A152.1,152.1,0,0,1,208,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,120a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48A152.1,152.1,0,0,1,208,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,120a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="56" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48A152.1,152.1,0,0,1,208,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,120a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="200" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,200a8,8,0,0,1-16,0c0-79.4-64.6-144-144-144a8,8,0,0,1,0-16C144.2,40,216,111.8,216,200ZM56,112a8,8,0,0,0,0,16,72.1,72.1,0,0,1,72,72,8,8,0,0,0,16,0A88.1,88.1,0,0,0,56,112Zm0,76a12,12,0,1,0,12,12A12,12,0,0,0,56,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48A152.1,152.1,0,0,1,208,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,120a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="56" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,48A152.1,152.1,0,0,1,208,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,120a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="56" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `funnel` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.funnel />
  <Heroicons.funnel class="w-4 h-4" />
  <Heroicons.funnel solid />
  <Heroicons.funnel mini />
  <Heroicons.funnel outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def funnel(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" opacity="0.2"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.5,49.5A15.9,15.9,0,0,0,213.9,40H42.1A16.1,16.1,0,0,0,30.2,66.8L96,139.1v78a15.9,15.9,0,0,0,8.5,14.1,16.4,16.4,0,0,0,7.5,1.9,16,16,0,0,0,8.9-2.7l32-21.4a15.9,15.9,0,0,0,7.1-13.3V139.1l65.8-72.3A15.9,15.9,0,0,0,228.5,49.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.1,48H213.9a8,8,0,0,1,5.9,13.4l-65.7,72.3a7.8,7.8,0,0,0-2.1,5.4v56.6a7.9,7.9,0,0,1-3.6,6.7l-32,21.3a8,8,0,0,1-12.4-6.6v-78a7.8,7.8,0,0,0-2.1-5.4L36.2,61.4A8,8,0,0,1,42.1,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cake` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cake />
  <Heroicons.cake class="w-4 h-4" />
  <Heroicons.cake solid />
  <Heroicons.cake mini />
  <Heroicons.cake outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cake(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="88" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,64c46.2-16,0-56,0-56S80,48,128,64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M162,126a34,34,0,0,1-68,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,126a34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,153.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V153.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c56-24,0-76,0-76S72,64,128,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M162,126a34,34,0,0,1-68,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M94,126a34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,153.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V153.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M162,126a34,34,0,0,1-68,0,34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126Z" opacity="0.2"/><path d="M128,64c46.2-16,0-56,0-56S80,48,128,64Z" opacity="0.2"/><line x1="128" y1="88" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,64c46.2-16,0-56,0-56S80,48,128,64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M162,126a34,34,0,0,1-68,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,126a34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,153.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V153.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206,80H136V69.4c11.5-5.1,18.2-12.5,20.1-22C160.2,26,136,4.3,133.2,2a7.8,7.8,0,0,0-10.3-.1C120,4.2,95.1,25.7,99.1,47.2c1.8,9.7,8.9,17.2,20.9,22.3V80H50a32.1,32.1,0,0,0-32,32v13.3A43.3,43.3,0,0,0,30.9,156l1.1,1v51a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V157l1.1-1A43.3,43.3,0,0,0,238,125.3V112A32.1,32.1,0,0,0,206,80Zm2,128H48V166.2A39.3,39.3,0,0,0,60.8,168,42.2,42.2,0,0,0,94,150.6a41.9,41.9,0,0,0,68,0A42.2,42.2,0,0,0,195.2,168h.8a40.6,40.6,0,0,0,12-1.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="88" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,64c46.2-16,0-56,0-56S80,48,128,64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M162,126a34,34,0,0,1-68,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M94,126a34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,153.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V153.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="88" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,64c46.2-16,0-56,0-56S80,48,128,64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M162,126a34,34,0,0,1-68,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M94,126a34,34,0,0,1-33.3,34c-19.1.4-34.7-15.6-34.7-34.7V112A23.9,23.9,0,0,1,50,88H206a23.9,23.9,0,0,1,24,24v13.3c0,19.1-15.6,35.1-34.7,34.7A34,34,0,0,1,162,126" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,153.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V153.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `upload` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.upload />
  <Heroicons.upload class="w-4 h-4" />
  <Heroicons.upload solid />
  <Heroicons.upload mini />
  <Heroicons.upload outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def upload(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 72 128 24 176 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="168" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M172,128h52a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 72 128 24 176 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="128" width="208" height="80" rx="8" opacity="0.2"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 72 128 24 176 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="168" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M74.3,77.7a8.1,8.1,0,0,1,0-11.4l48-48a8.1,8.1,0,0,1,11.4,0l48,48a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L136,43.3V128a8,8,0,0,1-16,0V43.3L85.7,77.7A8.1,8.1,0,0,1,74.3,77.7ZM240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16h68a4,4,0,0,1,4,4v3.5c0,13.4,11,24.8,24.5,24.5A24,24,0,0,0,152,128v-4a4,4,0,0,1,4-4h68A16,16,0,0,1,240,136Zm-40,32a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 72 128 24 176 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="168" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 72 128 24 176 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="168" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_double_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_double_down />
  <Heroicons.caret_double_down class="w-4 h-4" />
  <Heroicons.caret_double_down solid />
  <Heroicons.caret_double_down mini />
  <Heroicons.caret_double_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_double_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 128 128 208 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 48 128 128 48 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 128 128 208 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 48 128 128 48 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="208 48 128 128 48 48 208 48" opacity="0.2"/><polyline points="208 128 128 208 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="208 48 128 128 48 48 208 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,120H147.3l66.4-66.3a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,208,40H48a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8L108.7,120H48a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8l80,80a8.2,8.2,0,0,0,11.4,0l80-80a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,208,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 128 128 208 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 48 128 128 48 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="208 128 128 208 48 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 48 128 128 48 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stop />
  <Heroicons.stop class="w-4 h-4" />
  <Heroicons.stop solid />
  <Heroicons.stop mini />
  <Heroicons.stop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="52" width="152" height="152" rx="6.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="52" width="152" height="152" rx="6.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="52" width="152" height="152" rx="6.9" opacity="0.2"/><rect x="52" y="52" width="152" height="152" rx="6.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="14.9"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="52" width="152" height="152" rx="6.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="52" width="152" height="152" rx="6.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paint_roller` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paint_roller />
  <Heroicons.paint_roller class="w-4 h-4" />
  <Heroicons.paint_roller solid />
  <Heroicons.paint_roller mini />
  <Heroicons.paint_roller outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paint_roller(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="56" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,96h24a8,8,0,0,1,8,8v50a8.1,8.1,0,0,1-5.8,7.7L133.8,190.3A8.1,8.1,0,0,0,128,198v34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="96" x2="16" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="56" width="160" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M204,96h28a8,8,0,0,1,8,8v50a8.1,8.1,0,0,1-5.8,7.7L133.8,190.3A8.1,8.1,0,0,0,128,198v34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="96" x2="16" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="56" width="168" height="80" rx="8" opacity="0.2"/><rect x="40" y="56" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,96h24a8,8,0,0,1,8,8v50a8.1,8.1,0,0,1-5.8,7.7L133.8,190.3A8.1,8.1,0,0,0,128,198v34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="96" x2="16" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,104v50a16.2,16.2,0,0,1-11.6,15.4L136,198v34a8,8,0,0,1-16,0V198a16.2,16.2,0,0,1,11.6-15.4L232,154V104H216v24a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V104H16a8,8,0,0,1,0-16H32V64A16,16,0,0,1,48,48H200a16,16,0,0,1,16,16V88h16A16,16,0,0,1,248,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="56" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,96h24a8,8,0,0,1,8,8v50a8.1,8.1,0,0,1-5.8,7.7L133.8,190.3A8.1,8.1,0,0,0,128,198v34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="96" x2="16" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="56" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,96h24a8,8,0,0,1,8,8v50a8.1,8.1,0,0,1-5.8,7.7L133.8,190.3A8.1,8.1,0,0,0,128,198v34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="96" x2="16" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `skull` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.skull />
  <Heroicons.skull class="w-4 h-4" />
  <Heroicons.skull solid />
  <Heroicons.skull mini />
  <Heroicons.skull outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def skull(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="164" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,194.5a92,92,0,1,1,96,0V216a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="224" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="132" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="164" cy="132" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="224" x2="108" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="224" x2="148" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,224H76a8,8,0,0,1-8-8V185.7a92,92,0,0,1-32-69.5C35.9,66.1,76.6,24.7,126.7,24A92,92,0,0,1,188,185.7V216A8,8,0,0,1,180,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A92,92,0,0,0,80,194.5V216a8,8,0,0,0,8,8h80a8,8,0,0,0,8-8V194.5A92,92,0,0,0,128,24ZM92,152a20,20,0,1,1,20-20A20.1,20.1,0,0,1,92,152Zm72,0a20,20,0,1,1,20-20A20.1,20.1,0,0,1,164,152Z" opacity="0.2"/><circle cx="92" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="164" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,194.5a92,92,0,1,1,96,0V216a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="224" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M124.1,16.1c-51.6,1.9-93.7,43.6-96,95.3A99.4,99.4,0,0,0,72,198.9V216a16,16,0,0,0,16,16h8a4,4,0,0,0,4-4V204.3a8.2,8.2,0,0,1,7.5-8.3,8,8,0,0,1,8.5,8v24a4,4,0,0,0,4,4h16a4,4,0,0,0,4-4V204.3a8.2,8.2,0,0,1,7.5-8.3,8,8,0,0,1,8.5,8v24a4,4,0,0,0,4,4h8a16,16,0,0,0,16-16V198.9A100,100,0,0,0,124.1,16.1ZM92,152a20,20,0,1,1,20-20A20.1,20.1,0,0,1,92,152Zm72,0a20,20,0,1,1,20-20A20.1,20.1,0,0,1,164,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="164" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,194.5a92,92,0,1,1,96,0V216a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="224" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="224" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="164" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,194.5a92,92,0,1,1,96,0V216a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="224" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="224" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brackets_angle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brackets_angle />
  <Heroicons.brackets_angle class="w-4 h-4" />
  <Heroicons.brackets_angle solid />
  <Heroicons.brackets_angle mini />
  <Heroicons.brackets_angle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brackets_angle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 24 128 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 40 232 128 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 24 128 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 40 232 128 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 24 128 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 40 232 128 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M86.7,44.3,33.5,128l53.2,83.7a7.9,7.9,0,0,1-2.4,11A7.5,7.5,0,0,1,80,224a7.9,7.9,0,0,1-6.7-3.7l-56-88a7.9,7.9,0,0,1,0-8.6l56-88a8,8,0,1,1,13.4,8.6Zm152,79.4-56-88a8,8,0,1,0-13.4,8.6L222.5,128l-53.2,83.7a7.9,7.9,0,0,0,2.4,11A7.5,7.5,0,0,0,176,224a7.9,7.9,0,0,0,6.7-3.7l56-88A7.9,7.9,0,0,0,238.7,123.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 24 128 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 40 232 128 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 24 128 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 40 232 128 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `google_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.google_logo />
  <Heroicons.google_logo class="w-4 h-4" />
  <Heroicons.google_logo solid />
  <Heroicons.google_logo mini />
  <Heroicons.google_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def google_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128h88a88.1,88.1,0,1,1-25.8-62.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128h88a88.1,88.1,0,1,1-25.8-62.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128h88a88.1,88.1,0,1,1-25.8-62.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,184A80,80,0,1,1,184.6,71.4a8,8,0,0,1,0,11.3,7.9,7.9,0,0,1-11.3,0A64.1,64.1,0,1,0,191.5,136H128a8,8,0,0,1,0-16h72a8,8,0,0,1,8,8A80.1,80.1,0,0,1,128,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128h88a88.1,88.1,0,1,1-25.8-62.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128h88a88.1,88.1,0,1,1-25.8-62.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `person_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.person_simple />
  <Heroicons.person_simple class="w-4 h-4" />
  <Heroicons.person_simple solid />
  <Heroicons.person_simple mini />
  <Heroicons.person_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def person_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 224 128 152 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128s40-24,96-24,96,24,96,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="108" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 224 128 152 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,132s40-24,96-24,96,24,96,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="48" r="24" opacity="0.2"/><circle cx="127.9" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 224 128 152 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128s40-24,96-24,96,24,96,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M95.9,48a32,32,0,1,1,32,32A32,32,0,0,1,95.9,48Zm132.2,73.1C226.4,120.1,185.6,96,128,96S29.6,120.1,27.9,121.1a8,8,0,0,0,8.2,13.8c.4-.3,34.9-20.6,83.9-22.7V149L58,218.7a8,8,0,0,0,12,10.6L128,164l58,65.3a8,8,0,0,0,6,2.7,8.1,8.1,0,0,0,5.3-2,8,8,0,0,0,.7-11.3L136,149V112.2c48.8,2.1,83.5,22.4,83.9,22.7A8.7,8.7,0,0,0,224,136a8,8,0,0,0,4.1-14.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="104" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 224 128 152 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,128s40-24,96-24,96,24,96,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="104" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 224 128 152 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,128s40-24,96-24,96,24,96,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list_plus />
  <Heroicons.list_plus class="w-4 h-4" />
  <Heroicons.list_plus solid />
  <Heroicons.list_plus mini />
  <Heroicons.list_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="232" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="192" x2="232" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="232" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H40A8,8,0,0,1,32,64Zm8,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Zm104,48H40a8,8,0,0,0,0,16H144a8,8,0,0,0,0-16Zm88,0H216V168a8,8,0,0,0-16,0v16H184a8,8,0,0,0,0,16h16v16a8,8,0,0,0,16,0V200h16a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="192" x2="232" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="192" x2="232" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_up_left />
  <Heroicons.arrow_line_up_left class="w-4 h-4" />
  <Heroicons.arrow_line_up_left solid />
  <Heroicons.arrow_line_up_left mini />
  <Heroicons.arrow_line_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="168" x2="64" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 156 64 56 164 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="168" x2="64" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 156 64 56 164 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="168" x2="64" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 156 64 56 164 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,156V56a8,8,0,0,1,8-8H164a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8L125.3,106l56.4,56.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L114,117.3,69.7,161.7A8.3,8.3,0,0,1,64,164a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,56,156Zm160,52H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="168" x2="64" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 156 64 56 164 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="168" x2="64" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 156 64 56 164 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_bar` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_bar />
  <Heroicons.chart_bar class="w-4 h-4" />
  <Heroicons.chart_bar solid />
  <Heroicons.chart_bar mini />
  <Heroicons.chart_bar outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_bar(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="44 208 44 136 100 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="228" y1="208" x2="28" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 208 100 88 156 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="156" y="40" width="56" height="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="228" y1="208" x2="28" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="100 208 100 88 156 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="156" y="40" width="56" height="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="44 208 44 136 100 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="56" height="168" opacity="0.2"/><line x1="228" y1="208" x2="28" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 208 100 88 156 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="156" y="40" width="56" height="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="44 208 44 136 100 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228,200h-8V40a8,8,0,0,0-8-8H156a8,8,0,0,0-8,8V80H100a8,8,0,0,0-8,8v40H44a8,8,0,0,0-8,8v64H28a8,8,0,0,0,0,16H228a8,8,0,0,0,0-16ZM108,96h40V200H108ZM52,144H92v56H52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="228" y1="208" x2="28" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="100 208 100 88 156 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="156" y="40" width="56" height="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="44 208 44 136 100 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="228" y1="208" x2="28" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="100 208 100 88 156 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="156" y="40" width="56" height="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="44 208 44 136 100 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brandy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brandy />
  <Heroicons.brandy class="w-4 h-4" />
  <Heroicons.brandy solid />
  <Heroicons.brandy mini />
  <Heroicons.brandy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brandy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="224" x2="168" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.8,40A88,88,0,1,1,54.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="224" x2="168" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M201.8,40A88,88,0,1,1,54.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,88A88,88,0,0,1,40,88Z" opacity="0.2"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="224" x2="168" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M201.8,40A88,88,0,1,1,54.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88a96.2,96.2,0,0,0-15.5-52.4,8.2,8.2,0,0,0-6.7-3.6H54.2a8.2,8.2,0,0,0-6.7,3.6A96.1,96.1,0,0,0,120,183.7V216H88a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16H136V183.7A96.2,96.2,0,0,0,224,88ZM58.7,48H197.3a78.8,78.8,0,0,1,10.3,32H48.4A78.8,78.8,0,0,1,58.7,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="224" x2="168" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M201.8,40A88,88,0,1,1,54.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="224" x2="168" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M201.8,40A88,88,0,1,1,54.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `house` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.house />
  <Heroicons.house class="w-4 h-4" />
  <Heroicons.house solid />
  <Heroicons.house mini />
  <Heroicons.house outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def house(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" opacity="0.2"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.8,103.7,138.8,31a16,16,0,0,0-21.6,0l-80,72.7A16,16,0,0,0,32,115.5v92.1a16.4,16.4,0,0,0,4,11A15.9,15.9,0,0,0,48,224H96a8,8,0,0,0,8-8V168a8,8,0,0,1,8-8h32a8,8,0,0,1,8,8v48a8,8,0,0,0,8,8h48a15.6,15.6,0,0,0,7.6-1.9A16.1,16.1,0,0,0,224,208V115.5A16,16,0,0,0,218.8,103.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,208V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V115.5a8.3,8.3,0,0,1,2.6-5.9l80-72.7a8,8,0,0,1,10.8,0l80,72.7a8.3,8.3,0,0,1,2.6,5.9V208a8,8,0,0,1-8,8H160A8,8,0,0,1,152,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_plus />
  <Heroicons.file_plus class="w-4 h-4" />
  <Heroicons.file_plus solid />
  <Heroicons.file_plus mini />
  <Heroicons.file_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM152,160H136v16a8,8,0,0,1-16,0V160H104a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16a8,8,0,0,1,0,16Zm0-72V43.3L196.7,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="152" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_sticker` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_sticker />
  <Heroicons.smiley_sticker class="w-4 h-4" />
  <Heroicons.smiley_sticker solid />
  <Heroicons.smiley_sticker mini />
  <Heroicons.smiley_sticker outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_sticker(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" opacity="0.2"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a104,104,0,0,0,0,208,102.2,102.2,0,0,0,30.6-4.6,6.7,6.7,0,0,0,3.3-2l63.5-63.5a7.2,7.2,0,0,0,2-3.3A102.2,102.2,0,0,0,232,128,104.2,104.2,0,0,0,128,24Zm36,72a12,12,0,1,1-12,12A12,12,0,0,1,164,96ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm84.5,60a56,56,0,0,1-97,0,8,8,0,1,1,13.8-8,40.1,40.1,0,0,0,69.4,0,8,8,0,0,1,13.8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.2,219.8A97.2,97.2,0,0,1,128,224a96,96,0,1,1,96-96,97.2,97.2,0,0,1-4.2,28.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `download` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.download />
  <Heroicons.download class="w-4 h-4" />
  <Heroicons.download solid />
  <Heroicons.download mini />
  <Heroicons.download outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def download(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 80 128 128 176 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="168" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 80 128 128 176 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184.6,128H224a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H71.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="128" width="208" height="80" rx="8" opacity="0.2"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 80 128 128 176 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="168" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M74.3,85.7A8.1,8.1,0,0,1,85.7,74.3L120,108.7V24a8,8,0,0,1,16,0v84.7l34.3-34.4a8.1,8.1,0,0,1,11.4,11.4l-48,48a8.2,8.2,0,0,1-11.4,0ZM240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16H84.4a3.6,3.6,0,0,1,2.8,1.2L111,145a24.1,24.1,0,0,0,34,0l23.8-23.8a3.6,3.6,0,0,1,2.8-1.2H224A16,16,0,0,1,240,136Zm-40,32a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="24" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 80 128 128 176 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="168" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="24" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 80 128 128 176 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="168" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `x_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.x_square />
  <Heroicons.x_square class="w-4 h-4" />
  <Heroicons.x_square solid />
  <Heroicons.x_square mini />
  <Heroicons.x_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def x_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM165.7,154.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L128,139.3l-26.3,26.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L116.7,128,90.3,101.7a8.1,8.1,0,0,1,11.4-11.4L128,116.7l26.3-26.4a8.1,8.1,0,0,1,11.4,11.4L139.3,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sort_ascending` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sort_ascending />
  <Heroicons.sort_ascending class="w-4 h-4" />
  <Heroicons.sort_ascending solid />
  <Heroicons.sort_ascending mini />
  <Heroicons.sort_ascending outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sort_ascending(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 168 184 208 224 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="112" x2="184" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="128" x2="120" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="184" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="104" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 168 184 208 224 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="112" x2="184" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="64" x2="184" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="192" x2="104" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 168 184 208 224 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="112" x2="184" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="128" x2="120" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="184" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="104" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,173.7l-40,40a8.2,8.2,0,0,1-11.4,0l-40-40a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,144,160h32V112a8,8,0,0,1,16,0v48h32a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,229.7,173.7ZM120,120H48a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 168 184 208 224 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="112" x2="184" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="64" x2="184" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="192" x2="104" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 168 184 208 224 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="112" x2="184" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="64" x2="184" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="192" x2="104" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `crosshair_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.crosshair_simple />
  <Heroicons.crosshair_simple class="w-4 h-4" />
  <Heroicons.crosshair_simple solid />
  <Heroicons.crosshair_simple mini />
  <Heroicons.crosshair_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def crosshair_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="36" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="220" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="220" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="92" opacity="0.2"/><circle cx="128" cy="128" r="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,28A100,100,0,1,0,228,128,100.2,100.2,0,0,0,128,28Zm8,183.6V180a8,8,0,0,0-16,0v31.6A84.2,84.2,0,0,1,44.4,136H76a8,8,0,0,0,0-16H44.4A84.2,84.2,0,0,1,120,44.4V76a8,8,0,0,0,16,0V44.4A84.2,84.2,0,0,1,211.6,120H180a8,8,0,0,0,0,16h31.6A84.2,84.2,0,0,1,136,211.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="36" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="220" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="220" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="36" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="220" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="220" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_up_left />
  <Heroicons.arrow_square_up_left class="w-4 h-4" />
  <Heroicons.arrow_square_up_left solid />
  <Heroicons.arrow_square_up_left mini />
  <Heroicons.arrow_square_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM161.7,161.7a8.2,8.2,0,0,1-11.4,0L108,119.3V148a8,8,0,0,1-16,0V100a8,8,0,0,1,8-8h48a8,8,0,0,1,0,16H119.3l42.4,42.3A8.1,8.1,0,0,1,161.7,161.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `swap` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.swap />
  <Heroicons.swap class="w-4 h-4" />
  <Heroicons.swap solid />
  <Heroicons.swap mini />
  <Heroicons.swap outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def swap(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,160H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 136 80 160 104 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 120 176 96 152 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,160H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 136 80 160 104 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="152 120 176 96 152 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H96a8,8,0,0,0-8,8V96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8V160h40a8,8,0,0,0,8-8V48A8,8,0,0,0,208,40Z" opacity="0.2"/><path d="M80,160H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 136 80 160 104 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 120 176 96 152 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48V152a16,16,0,0,1-16,16H112v16a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-24-24a8.1,8.1,0,0,1,0-11.4l24-24a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,112,136v16h96V48H96v8a8,8,0,0,1-16,0V48A16,16,0,0,1,96,32H208A16,16,0,0,1,224,48ZM168,192a8,8,0,0,0-8,8v8H48V104h96v16a8.1,8.1,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l24-24a8.1,8.1,0,0,0,0-11.4l-24-24a8.2,8.2,0,0,0-8.8-1.7A8,8,0,0,0,144,72V88H48a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16H160a16,16,0,0,0,16-16v-8A8,8,0,0,0,168,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,160H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 136 80 160 104 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 120 176 96 152 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,160H208a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 136 80 160 104 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,96H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H160a8,8,0,0,0,8-8v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 120 176 96 152 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `linkedin_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.linkedin_logo />
  <Heroicons.linkedin_logo class="w-4 h-4" />
  <Heroicons.linkedin_logo solid />
  <Heroicons.linkedin_logo mini />
  <Heroicons.linkedin_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def linkedin_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="36" y="36" width="184" height="184" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,140a28,28,0,0,1,56,0v36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="80" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="36" y="36" width="184" height="184" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="124" y1="120" x2="124" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="120" x2="84" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M124,148a28,28,0,0,1,56,0v28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="84" cy="80" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="36" y="36" width="184" height="184" rx="8" opacity="0.2"/><rect x="36" y="36" width="184" height="184" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="112" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,140a28,28,0,0,1,56,0v36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="80" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,28H44A16,16,0,0,0,28,44V212a16,16,0,0,0,16,16H212a16,16,0,0,0,16-16V44A16,16,0,0,0,212,28ZM96,176a8,8,0,0,1-16,0V112a8,8,0,0,1,16,0ZM88,92a12,12,0,1,1,12-12A12,12,0,0,1,88,92Zm96,84a8,8,0,0,1-16,0V140a20,20,0,0,0-40,0v36a8,8,0,0,1-16,0V112a8,8,0,0,1,15.8-1.8A36,36,0,0,1,184,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="36" y="36" width="184" height="184" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="112" x2="120" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="112" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120,140a28,28,0,0,1,56,0v36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="88" cy="80" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="36" y="36" width="184" height="184" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="112" x2="120" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="112" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120,140a28,28,0,0,1,56,0v36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="88" cy="80" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_simple_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_simple_low />
  <Heroicons.speaker_simple_low class="w-4 h-4" />
  <Heroicons.speaker_simple_low solid />
  <Heroicons.speaker_simple_low mini />
  <Heroicons.speaker_simple_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_simple_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.2,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.2l69.9,54.3A7.9,7.9,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8Z"/><path d="M192,96a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V104A8,8,0,0,0,192,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_checkered` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_checkered />
  <Heroicons.shield_checkered class="w-4 h-4" />
  <Heroicons.shield_checkered solid />
  <Heroicons.shield_checkered mini />
  <Heroicons.shield_checkered outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_checkered(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.6" y1="128" x2="215.4" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="231.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40.6" y1="128" x2="215.4" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="128" y2="231.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,48h80a0,0,0,0,1,0,0v80a0,0,0,0,1,0,0H40a0,0,0,0,1,0,0V56A8,8,0,0,1,48,48Z" opacity="0.2"/><path d="M215.4,128c-7.1,73.7-71.5,98.8-84.9,103.2a7.7,7.7,0,0,1-2.5.4h0V128Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.6" y1="128" x2="215.4" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="231.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a16,16,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40ZM128,223.6C115.3,219.4,55.7,196,48.7,128H128V56h80v58.7a114.9,114.9,0,0,1-.7,13.3H128v95.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40.6" y1="128" x2="215.4" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="128" y2="231.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40.6" y1="128" x2="215.4" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="128" y2="231.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_commit` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_commit />
  <Heroicons.git_commit class="w-4 h-4" />
  <Heroicons.git_commit solid />
  <Heroicons.git_commit mini />
  <Heroicons.git_commit outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_commit(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="180" y1="128" x2="244" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="52" opacity="0.2"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,120H187.5a60,60,0,0,0-118.9,0H8a8,8,0,0,0,0,16H68.6a60,60,0,0,0,118.9,0H248a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="8" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="8" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wave_sawtooth` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wave_sawtooth />
  <Heroicons.wave_sawtooth class="w-4 h-4" />
  <Heroicons.wave_sawtooth solid />
  <Heroicons.wave_sawtooth mini />
  <Heroicons.wave_sawtooth outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wave_sawtooth(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 128 64 128 192 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 128 64 128 192 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 128 128 64 128 192 232 128 24 128" opacity="0.2"/><polyline points="24 128 128 64 128 192 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200a7.8,7.8,0,0,1-3.9-1,8.1,8.1,0,0,1-4.1-7V78.3L28.2,134.8a8,8,0,0,1-8.4-13.6l104-64A8,8,0,0,1,136,64V177.7l91.8-56.5a8,8,0,0,1,8.4,13.6l-104,64A7.9,7.9,0,0,1,128,200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 128 64 128 192 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 128 64 128 192 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_chevron` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_chevron />
  <Heroicons.shield_chevron class="w-4 h-4" />
  <Heroicons.shield_chevron solid />
  <Heroicons.shield_chevron mini />
  <Heroicons.shield_chevron outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_chevron(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="202.4 172.1 128 120 53.6 172.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="202.4 172.1 128 120 53.6 172.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M202.4,172.1c-21.4,40.2-61.6,55.7-71.9,59.1a7.2,7.2,0,0,1-5,0c-10.3-3.4-50.5-18.9-71.9-59.1h0L128,120l74.4,52.1Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="202.4 172.1 128 120 53.6 172.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a14.3,14.3,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40ZM48,56H208v58.7a115.1,115.1,0,0,1-8.8,45.4l-66.6-46.7a8.1,8.1,0,0,0-9.2,0L56.8,160.1A115.1,115.1,0,0,1,48,114.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="202.4 172.1 128 120 53.6 172.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="202.4 172.1 128 120 53.6 172.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calculator` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calculator />
  <Heroicons.calculator class="w-4 h-4" />
  <Heroicons.calculator solid />
  <Heroicons.calculator mini />
  <Heroicons.calculator outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calculator(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="64" width="96" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="148" r="12"/><circle cx="128" cy="148" r="12"/><circle cx="168" cy="148" r="12"/><circle cx="88" cy="188" r="12"/><circle cx="128" cy="188" r="12"/><circle cx="168" cy="188" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="92" y1="76" x2="164" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="104" cy="128" r="16"/><circle cx="152" cy="128" r="16"/><circle cx="104" cy="176" r="16"/><circle cx="152" cy="176" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="64" width="96" height="48" opacity="0.2"/><rect x="80" y="64" width="96" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="88" cy="148" r="12"/><circle cx="128" cy="148" r="12"/><circle cx="168" cy="148" r="12"/><circle cx="88" cy="188" r="12"/><circle cx="128" cy="188" r="12"/><circle cx="168" cy="188" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM88,200a12,12,0,1,1,12-12A12,12,0,0,1,88,200Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,88,160Zm40,40a12,12,0,1,1,12-12A12,12,0,0,1,128,200Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,160Zm40,40a12,12,0,1,1,12-12A12,12,0,0,1,168,200Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,168,160Zm16-56a8,8,0,0,1-8,8H80a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="64" width="96" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="88" cy="148" r="10"/><circle cx="128" cy="148" r="10"/><circle cx="168" cy="148" r="10"/><circle cx="88" cy="188" r="10"/><circle cx="128" cy="188" r="10"/><circle cx="168" cy="188" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="64" width="96" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="88" cy="148" r="8"/><circle cx="128" cy="148" r="8"/><circle cx="168" cy="148" r="8"/><circle cx="88" cy="188" r="8"/><circle cx="128" cy="188" r="8"/><circle cx="168" cy="188" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stack_overflow_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stack_overflow_logo />
  <Heroicons.stack_overflow_logo class="w-4 h-4" />
  <Heroicons.stack_overflow_logo solid />
  <Heroicons.stack_overflow_logo mini />
  <Heroicons.stack_overflow_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stack_overflow_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 152 48 216 208 216 208 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="176" x2="168" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95" y1="123.2" x2="172.2" y2="143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="115.3" y1="74" x2="184.6" y2="114" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="147.8" y1="31.8" x2="204.3" y2="88.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 152 48 216 208 216 208 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="172" x2="168" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100.3" y1="102.2" x2="175.5" y2="129.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="135.7" y1="40.9" x2="197" y2="92.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 152 48 216 208 216 208 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="176" x2="168" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95" y1="123.2" x2="172.2" y2="143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="115.3" y1="74" x2="184.6" y2="114" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="147.8" y1="31.8" x2="204.3" y2="88.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,152v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152a8,8,0,0,1,16,0v56H200V152a8,8,0,0,1,16,0ZM88,184h80a8,8,0,0,0,0-16H88a8,8,0,0,0,0,16Zm4.9-53.1,77.3,20.7a6.4,6.4,0,0,0,2,.3,8,8,0,0,0,2.1-15.7L97,115.5a8,8,0,1,0-4.1,15.4Zm18.4-50,69.3,40a7.3,7.3,0,0,0,4,1.1,7.7,7.7,0,0,0,6.9-4,7.9,7.9,0,0,0-2.9-10.9l-69.3-40a8,8,0,0,0-8,13.8ZM198.7,94a8,8,0,0,0,5.6,2.3A8.3,8.3,0,0,0,210,94a8,8,0,0,0,0-11.3L153.4,26.1a8,8,0,0,0-11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 152 48 216 208 216 208 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="176" x2="168" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="95" y1="123.2" x2="172.2" y2="143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="115.3" y1="74" x2="184.6" y2="114" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="147.8" y1="31.8" x2="204.3" y2="88.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 152 48 216 208 216 208 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="176" x2="168" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="95" y1="123.2" x2="172.2" y2="143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="115.3" y1="74" x2="184.6" y2="114" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="147.8" y1="31.8" x2="204.3" y2="88.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brackets_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brackets_square />
  <Heroicons.brackets_square class="w-4 h-4" />
  <Heroicons.brackets_square solid />
  <Heroicons.brackets_square mini />
  <Heroicons.brackets_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brackets_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 40 40 40 216 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 40 216 40 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 40 40 40 216 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 40 216 40 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 40 40 40 216 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 40 216 40 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,48V208H80a8,8,0,0,1,0,16H40a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8H80a8,8,0,0,1,0,16ZM216,32H176a8,8,0,0,0,0,16h32V208H176a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 40 40 40 216 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 40 216 40 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 40 40 40 40 216 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 40 216 40 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_left />
  <Heroicons.caret_circle_left class="w-4 h-4" />
  <Heroicons.caret_circle_left solid />
  <Heroicons.caret_circle_left mini />
  <Heroicons.caret_circle_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="144 92 104 128 144 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="24"/><polyline points="144 92 104 128 144 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="144 92 104 128 144 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm21.4,134.1a8,8,0,0,1,.5,11.3A7.9,7.9,0,0,1,144,172a8.2,8.2,0,0,1-5.4-2.1l-40-36a8,8,0,0,1,0-11.8l40-36a8,8,0,1,1,10.8,11.8L116,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="12"/><polyline points="144 92 104 128 144 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="8"/><polyline points="144 92 104 128 144 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `coin` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.coin />
  <Heroicons.coin class="w-4 h-4" />
  <Heroicons.coin solid />
  <Heroicons.coin mini />
  <Heroicons.coin outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def coin(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="104" rx="104" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,104v48c0,24,40,48,104,48s104-24,104-48V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="142.1" x2="192" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="142.1" x2="64" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="104" rx="104" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="152" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,104v48c0,24,40,48,104,48s104-24,104-48V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="142.1" x2="192" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="142.1" x2="64" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="104" rx="104" ry="48" opacity="0.2"/><ellipse cx="128" cy="104" rx="104" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,104v48c0,24,40,48,104,48s104-24,104-48V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="142.1" x2="192" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="142.1" x2="64" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207.6,63.8C186.8,53.5,159.3,48,128,48S69.2,53.5,48.4,63.8,16,88.8,16,104v48c0,15.2,11.8,29.9,32.4,40.2S96.7,208,128,208s58.8-5.5,79.6-15.8S240,167.2,240,152V104C240,88.8,228.2,74.1,207.6,63.8ZM120,159.9v32c-19-.7-35-3.5-48-7.5V153C86.3,157,102.5,159.3,120,159.9Zm16,0c17.5-.6,33.7-2.9,48-6.9v31.4c-13,4-29,6.8-48,7.5ZM32,152V133.5a84.5,84.5,0,0,0,16.4,10.7l7.6,3.4V178C40.2,170.2,32,160.3,32,152Zm168,26V147.6l7.6-3.4A84.5,84.5,0,0,0,224,133.5V152C224,160.3,215.8,170.2,200,178Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="104" rx="104" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="152" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,104v48c0,24,40,48,104,48s104-24,104-48V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="142.1" x2="192" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="142.1" x2="64" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="104" rx="104" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="152" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,104v48c0,24,40,48,104,48s104-24,104-48V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="142.1" x2="192" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="142.1" x2="64" y2="190.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ticket` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ticket />
  <Heroicons.ticket class="w-4 h-4" />
  <Heroicons.ticket solid />
  <Heroicons.ticket mini />
  <Heroicons.ticket outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ticket(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="56" x2="96" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,167.2a7.9,7.9,0,0,1,6.4-7.8,32.1,32.1,0,0,0,0-62.8A7.9,7.9,0,0,1,24,88.8V64a8,8,0,0,1,8-8H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="56" x2="96" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,167.2a7.9,7.9,0,0,1,6.4-7.8,32.1,32.1,0,0,0,0-62.8A7.9,7.9,0,0,1,24,88.8V64a8,8,0,0,1,8-8H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,56H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H96Z" opacity="0.2"/><line x1="96" y1="56" x2="96" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,167.2a7.9,7.9,0,0,1,6.4-7.8,32.1,32.1,0,0,0,0-62.8A7.9,7.9,0,0,1,24,88.8V64a8,8,0,0,1,8-8H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.2,104.5A16.1,16.1,0,0,0,240,88.8V64a16,16,0,0,0-16-16H32A16,16,0,0,0,16,64V88.8a16.1,16.1,0,0,0,12.8,15.7,24,24,0,0,1,0,47A16.1,16.1,0,0,0,16,167.2V192a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V167.2a16.1,16.1,0,0,0-12.8-15.7,24,24,0,0,1,0-47ZM32,167.2a40,40,0,0,0,0-78.4V64H88V192H32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="56" x2="96" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,167.2a7.9,7.9,0,0,1,6.4-7.8,32.1,32.1,0,0,0,0-62.8A7.9,7.9,0,0,1,24,88.8V64a8,8,0,0,1,8-8H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="56" x2="96" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,167.2a7.9,7.9,0,0,1,6.4-7.8,32.1,32.1,0,0,0,0-62.8A7.9,7.9,0,0,1,24,88.8V64a8,8,0,0,1,8-8H224a8,8,0,0,1,8,8V88.8a7.9,7.9,0,0,1-6.4,7.8,32.1,32.1,0,0,0,0,62.8,7.9,7.9,0,0,1,6.4,7.8V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `monitor` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.monitor />
  <Heroicons.monitor class="w-4 h-4" />
  <Heroicons.monitor solid />
  <Heroicons.monitor mini />
  <Heroicons.monitor outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def monitor(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="228" x2="96" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" opacity="0.2"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="40" width="208" height="160" rx="24"/><path d="M160,216H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three_circle_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three_circle_vertical />
  <Heroicons.dots_three_circle_vertical class="w-4 h-4" />
  <Heroicons.dots_three_circle_vertical solid />
  <Heroicons.dots_three_circle_vertical mini />
  <Heroicons.dots_three_circle_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three_circle_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="128" cy="80" r="12"/><circle cx="128" cy="176" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="100" r="16"/><circle cx="128" cy="156" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="128" cy="80" r="12"/><circle cx="128" cy="176" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128A104,104,0,1,0,128,232,104.2,104.2,0,0,0,232,128ZM116,80a12,12,0,1,1,12,12A12,12,0,0,1,116,80Zm0,48a12,12,0,1,1,12,12A12,12,0,0,1,116,128Zm0,48a12,12,0,1,1,12,12A12,12,0,0,1,116,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="80" r="10"/><circle cx="128" cy="128" r="10"/><circle cx="128" cy="176" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="80" r="8"/><circle cx="128" cy="128" r="8"/><circle cx="128" cy="176" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `nut` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.nut />
  <Heroicons.nut class="w-4 h-4" />
  <Heroicons.nut solid />
  <Heroicons.nut mini />
  <Heroicons.nut outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def nut(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215.9,73.7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5a8.1,8.1,0,0,0,4.1-7V80.7A8.1,8.1,0,0,0,215.9,73.7ZM128,164a36,36,0,1,1,36-36A36,36,0,0,1,128,164Z" opacity="0.2"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.9,66.7l-84-47.4a15.9,15.9,0,0,0-15.8,0l-84,47.4a16.2,16.2,0,0,0-8.1,14v94.6a16.2,16.2,0,0,0,8.1,14l84,47.4a15.9,15.9,0,0,0,15.8,0l84-47.4a16.2,16.2,0,0,0,8.1-14V80.7A16.2,16.2,0,0,0,219.9,66.7ZM128,164a36,36,0,1,1,36-36A36,36,0,0,1,128,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flask` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flask />
  <Heroicons.flask class="w-4 h-4" />
  <Heroicons.flask solid />
  <Heroicons.flask mini />
  <Heroicons.flask outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flask(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,32V93.8a8.4,8.4,0,0,1-1.1,4.1l-63.6,106A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-63.6-106a8.4,8.4,0,0,1-1.1-4.1V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="32" x2="168" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.6,165c11.8-8.7,32.1-13.6,65.4,3,35.7,17.9,56.5,10.8,67.9,1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,32V93.8a8.4,8.4,0,0,1-1.1,4.1l-63.6,106A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-63.6-106a8.4,8.4,0,0,1-1.1-4.1V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="32" x2="168" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M62.6,165c11.8-8.7,32.1-13.6,65.4,3,35.7,17.9,56.5,10.8,67.9,1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,32V93.8a8.4,8.4,0,0,1-1.1,4.1l-63.6,106A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-63.6-106a8.4,8.4,0,0,1-1.1-4.1V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="32" x2="168" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.6,165c11.8-8.7,32.1-13.6,65.4,3,35.7,17.9,56.5,10.8,67.9,1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.6,165,39.3,203.9A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-20.8-34.8h0c-11.4,9.7-32.2,16.8-67.9-1.1-33.3-16.6-53.6-11.7-65.4-3Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.6,199.8,160,93.8V40h8a8,8,0,0,0,0-16H88a8,8,0,0,0,0,16h8V93.8L55.8,160.7c0,.1-.1.2-.1.3L32.4,199.8A16,16,0,0,0,46.1,224H209.9a16,16,0,0,0,13.7-24.2ZM109.7,102a15.9,15.9,0,0,0,2.3-8.2V40h32V93.8a15.9,15.9,0,0,0,2.3,8.2l38.8,64.8c-13.1,7.1-31.4,5.1-53.5-6-14.3-7.1-32.7-13.5-50.3-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,32V93.8a8.4,8.4,0,0,1-1.1,4.1l-63.6,106A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-63.6-106a8.4,8.4,0,0,1-1.1-4.1V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="32" x2="168" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M62.6,165c11.8-8.7,32.1-13.6,65.4,3,35.7,17.9,56.5,10.8,67.9,1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,32V93.8a8.4,8.4,0,0,1-1.1,4.1l-63.6,106A8,8,0,0,0,46.1,216H209.9a8,8,0,0,0,6.8-12.1l-63.6-106a8.4,8.4,0,0,1-1.1-4.1V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="32" x2="168" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M62.6,165c11.8-8.7,32.1-13.6,65.4,3,35.7,17.9,56.5,10.8,67.9,1.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `heart_break` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.heart_break />
  <Heroicons.heart_break class="w-4 h-4" />
  <Heroicons.heart_break solid />
  <Heroicons.heart_break mini />
  <Heroicons.heart_break outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def heart_break(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M126.3,68.2A52,52,0,0,0,28,92c0,68,100,124,100,124S228,160,228,92a52,52,0,0,0-88.8-36.8l-32,32,32,32-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M126.3,68.2A52,52,0,0,0,28,92c0,68,100,124,100,124S228,160,228,92a52,52,0,0,0-88.8-36.8l-32,32,32,32-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.2,55.2A52,52,0,0,1,228,92c0,68-100,124-100,124S28,160,28,92a52,52,0,0,1,98.3-23.8Z" opacity="0.2"/><path d="M126.3,68.2A52,52,0,0,0,28,92c0,68,100,124,100,124S228,160,228,92a52,52,0,0,0-88.8-36.8l-32,32,32,32-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236,92c0,30.6-17.7,62-52.6,93.4A314.3,314.3,0,0,1,131.9,223a8.1,8.1,0,0,1-7.8,0C119.8,220.6,20,163.9,20,92a60,60,0,0,1,92.3-50.6,4,4,0,0,1,.6,6.2l-18,18a8,8,0,0,0,0,11.3l34.4,34.3-15,15.1a7.9,7.9,0,0,0,0,11.3,8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3l20.7-20.7a8,8,0,0,0,0-11.3L111.9,71.2l21.7-21.6h0A59.3,59.3,0,0,1,176,32,60,60,0,0,1,236,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M126.3,68.2A52,52,0,0,0,28,92c0,68,100,124,100,124S228,160,228,92a52,52,0,0,0-88.8-36.8l-32,32,32,32-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M126.3,68.2A52,52,0,0,0,28,92c0,68,100,124,100,124S228,160,228,92a52,52,0,0,0-88.8-36.8l-32,32,32,32-16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sliders` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sliders />
  <Heroicons.sliders class="w-4 h-4" />
  <Heroicons.sliders solid />
  <Heroicons.sliders mini />
  <Heroicons.sliders outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sliders(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="108" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="188" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="168" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="156" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="136" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="108" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="40" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="88" r="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="188" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="40" x2="200" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="200" cy="168" r="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="156" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="40" x2="56" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="56" cy="136" r="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="56" cy="136" r="20" opacity="0.2"/><line x1="128" y1="108" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="188" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="168" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="156" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="136" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,65.4V40a8,8,0,0,0-16,0V65.4a24,24,0,0,0,0,45.2V216a8,8,0,0,0,16,0V110.6a24,24,0,0,0,0-45.2Z"/><path d="M224,168a24,24,0,0,0-16-22.6V40a8,8,0,0,0-16,0V145.4a24,24,0,0,0,0,45.2V216a8,8,0,0,0,16,0V190.6A24,24,0,0,0,224,168Z"/><path d="M64,113.4V40a8,8,0,0,0-16,0v73.4a24,24,0,0,0,0,45.2V216a8,8,0,0,0,16,0V158.6a24,24,0,0,0,0-45.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="108" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="40" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="88" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="188" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="40" x2="200" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="200" cy="168" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="156" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="40" x2="56" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="56" cy="136" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="108" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="40" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="88" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="188" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="40" x2="200" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="200" cy="168" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="156" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="40" x2="56" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="56" cy="136" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sketch_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sketch_logo />
  <Heroicons.sketch_logo class="w-4 h-4" />
  <Heroicons.sketch_logo solid />
  <Heroicons.sketch_logo mini />
  <Heroicons.sketch_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sketch_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="72 40 184 40 240 104 128 224 16 104 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="177.1 104 128 224 78.9 104 128 40 177.1 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="72 40 184 40 240 104 128 224 16 104 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="177.1 104 128 224 78.9 104 128 40 177.1 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="184 40 128 40 78.9 104 128 224 240 104 184 40" opacity="0.2"/><polygon points="72 40 184 40 240 104 128 224 16 104 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="177.1 104 128 224 78.9 104 128 40 177.1 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M246,98.7l-56-64a8,8,0,0,0-6-2.7H72a8,8,0,0,0-6,2.7l-56,64a8.1,8.1,0,0,0,.2,10.8l112,120a8,8,0,0,0,11.6,0l112-120A8.1,8.1,0,0,0,246,98.7ZM222.4,96H181L144.2,48h36.2ZM73.5,112l30.6,74.6L34.4,112Zm109,0h39.1l-69.7,74.6ZM75.6,48h36.2L75,96H33.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="72 40 184 40 240 104 128 224 16 104 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="177.1 104 128 224 78.9 104 128 40 177.1 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="72 40 184 40 240 104 128 224 16 104 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="177.1 104 128 224 78.9 104 128 40 177.1 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple />
  <Heroicons.folder_simple class="w-4 h-4" />
  <Heroicons.folder_simple solid />
  <Heroicons.folder_simple mini />
  <Heroicons.folder_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" opacity="0.2"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `printer` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.printer />
  <Heroicons.printer class="w-4 h-4" />
  <Heroicons.printer solid />
  <Heroicons.printer mini />
  <Heroicons.printer outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def printer(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 80 64 40 192 40 192 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="152" width="128" height="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,176H28V96c0-8.8,7.8-16,17.3-16H210.7c9.5,0,17.3,7.2,17.3,16v80H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="116" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="40" width="128" height="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="64" y="156" width="128" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,176H28V96c0-8.8,7.8-16,17.3-16H210.7c9.5,0,17.3,7.2,17.3,16v80H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="116" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.7,80H45.3C35.8,80,28,87.2,28,96v80H64V152H192v24h36V96C228,87.2,220.2,80,210.7,80Z" opacity="0.2"/><rect x="64" y="40" width="128" height="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="152" width="128" height="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,176H28V96c0-8.8,7.8-16,17.3-16H210.7c9.5,0,17.3,7.2,17.3,16v80H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="116" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.7,72H200V40a8,8,0,0,0-8-8H64a8,8,0,0,0-8,8V72H45.3C31.4,72,20,82.8,20,96v80a8,8,0,0,0,8,8H56v36a8,8,0,0,0,8,8H192a8,8,0,0,0,8-8V184h28a8,8,0,0,0,8-8V96C236,82.8,224.6,72,210.7,72ZM72,48H184V72H72ZM184,212H72V160H184Zm4-84a12,12,0,1,1,12-12A12,12,0,0,1,188,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 80 64 40 192 40 192 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="64" y="152" width="128" height="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,176H28V96c0-8.8,7.8-16,17.3-16H210.7c9.5,0,17.3,7.2,17.3,16v80H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="116" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 80 64 40 192 40 192 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="64" y="152" width="128" height="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,176H28V96c0-8.8,7.8-16,17.3-16H210.7c9.5,0,17.3,7.2,17.3,16v80H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="116" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `desktop_tower` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.desktop_tower />
  <Heroicons.desktop_tower class="w-4 h-4" />
  <Heroicons.desktop_tower solid />
  <Heroicons.desktop_tower mini />
  <Heroicons.desktop_tower outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def desktop_tower(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,184H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="176" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="104" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="40" width="96" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="180" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,180H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80h76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="216" x2="68" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="204" y1="76" x2="180" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="204" y1="112" x2="180" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="144" y="40" width="96" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="180" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="192" cy="176" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="144" y="40" width="96" height="176" rx="8" opacity="0.2"/><path d="M112,184H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="176" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="104" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="40" width="96" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="180" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,80V184a8,8,0,0,1-8,8H96v16h16a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16H80V192H32A24.1,24.1,0,0,1,8,168V96A24.1,24.1,0,0,1,32,72h80A8,8,0,0,1,120,80ZM248,48V208a16,16,0,0,1-16,16H152a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h80A16,16,0,0,1,248,48ZM204,180a12,12,0,1,0-12,12A12,12,0,0,0,204,180Zm20-76a8,8,0,0,0-8-8H168a8,8,0,0,0,0,16h48A8,8,0,0,0,224,104Zm0-32a8,8,0,0,0-8-8H168a8,8,0,0,0,0,16h48A8,8,0,0,0,224,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,184H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="216" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="72" x2="176" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="104" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="144" y="40" width="96" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="184" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="192" cy="180" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,184H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="216" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="72" x2="176" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="104" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="144" y="40" width="96" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="184" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="192" cy="180" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_two` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_two />
  <Heroicons.number_square_two class="w-4 h-4" />
  <Heroicons.number_square_two solid />
  <Heroicons.number_square_two mini />
  <Heroicons.number_square_two outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_two(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM152,168a8,8,0,0,1,0,16H104a7.3,7.3,0,0,1-2.5-.4A8,8,0,0,1,96,176a7.5,7.5,0,0,1,1.7-4.9l43.7-58.3A16,16,0,0,0,128,88a15.9,15.9,0,0,0-14.7,9.8,8.1,8.1,0,0,1-10.5,4.2,8,8,0,0,1-4.3-10.5,32,32,0,1,1,56,30.4l-.2.3L120,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M105.9,94.7A24,24,0,0,1,152,104a23.6,23.6,0,0,1-4.1,13.4h0L104,176h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `coins` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.coins />
  <Heroicons.coins class="w-4 h-4" />
  <Heroicons.coins solid />
  <Heroicons.coins mini />
  <Heroicons.coins outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def coins(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="96" cy="84" rx="80" ry="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,84v40c0,19.9,35.8,36,80,36s80-16.1,80-36V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="117" x2="64" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,159.3V172c0,19.9,35.8,36,80,36s80-16.1,80-36V132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="165" x2="192" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="117" x2="128" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="96" cy="84" rx="80" ry="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M16,84v40c0,19.9,35.8,36,80,36s80-16.1,80-36V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="117" x2="64" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,159.3V172c0,19.9,35.8,36,80,36s80-16.1,80-36V132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="165" x2="192" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="117" x2="128" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="96" cy="84" rx="80" ry="36" opacity="0.2"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4h0C146.8,156.9,176,142,176,124Z" opacity="0.2"/><ellipse cx="96" cy="84" rx="80" ry="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,84v40c0,19.9,35.8,36,80,36s80-16.1,80-36V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="117" x2="64" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,159.3V172c0,19.9,35.8,36,80,36s80-16.1,80-36V132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="165" x2="192" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="117" x2="128" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,89.6V84c0-25.1-37.8-44-88-44S8,58.9,8,84v40c0,20.9,26.2,37.5,64,42.5V172c0,25.1,37.8,44,88,44s88-18.9,88-44V132C248,111.3,222.6,94.7,184,89.6ZM72,150.2V126.5A184,184,0,0,0,96,128a184,184,0,0,0,24-1.5v23.7A151.1,151.1,0,0,1,96,152,151.1,151.1,0,0,1,72,150.2Zm96-40.3V124c0,8.4-12.4,17.4-32,22.9V123.5C148.9,120.4,159.8,115.7,168,109.9ZM24,124V109.9c8.2,5.8,19.1,10.5,32,13.6v23.4C36.4,141.4,24,132.4,24,124Zm64,48v-4.2l8,.2q5.9,0,11.4-.3c4,1.4,8.2,2.6,12.6,3.7v23.5C100.4,189.4,88,180.4,88,172Zm48,26.2V174.4a188.4,188.4,0,0,0,24,1.6,184,184,0,0,0,24-1.5v23.7a160.9,160.9,0,0,1-48,0Zm64-3.3V171.5c12.9-3.1,23.8-7.8,32-13.6V172C232,180.4,219.6,189.4,200,194.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="96" cy="84" rx="80" ry="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M16,84v40c0,19.9,35.8,36,80,36s80-16.1,80-36V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="117" x2="64" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,159.3V172c0,19.9,35.8,36,80,36s80-16.1,80-36V132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="165" x2="192" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="117" x2="128" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="96" cy="84" rx="80" ry="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M16,84v40c0,19.9,35.8,36,80,36s80-16.1,80-36V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="117" x2="64" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,96.7c36.5,3.4,64,17.9,64,35.3,0,19.9-35.8,36-80,36-19.6,0-37.6-3.2-51.5-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,159.3V172c0,19.9,35.8,36,80,36s80-16.1,80-36V132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="165" x2="192" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="117" x2="128" y2="205" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `credit_card` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.credit_card />
  <Heroicons.credit_card class="w-4 h-4" />
  <Heroicons.credit_card solid />
  <Heroicons.credit_card mini />
  <Heroicons.credit_card outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def credit_card(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="168" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="136" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="96.9" x2="232" y2="96.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="164" x2="196" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="164" x2="124" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="96.9" x2="232" y2="96.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,96.9H232V192a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8Z" opacity="0.2"/><rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="168" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="136" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="96.9" x2="232" y2="96.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48H32A16,16,0,0,0,16,64V96.9h0v95a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V64A16,16,0,0,0,224,48ZM136,176H120a8,8,0,0,1,0-16h16a8,8,0,0,1,0,16Zm64,0H168a8,8,0,0,1,0-16h32a8,8,0,0,1,0,16ZM32,88.9V64H224V88.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="168" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="168" x2="136" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="96.9" x2="232" y2="96.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="168" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="168" x2="136" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="96.9" x2="232" y2="96.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_rs` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_rs />
  <Heroicons.file_rs class="w-4 h-4" />
  <Heroicons.file_rs solid />
  <Heroicons.file_rs mini />
  <Heroicons.file_rs outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_rs(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="199.3" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,220h24a8,8,0,0,0,8-8V92L156,36H52a8,8,0,0,0-8,8v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,204H52a20,20,0,0,0,0-40H36v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.5" y1="202.1" x2="72" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="199.3" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80.1,201.8A24,24,0,0,0,64,160H48a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h9l8.3,12.4A7.9,7.9,0,0,0,80,224a7.8,7.8,0,0,0,4.4-1.3,8,8,0,0,0,2.2-11.1ZM64,192H56V176h8a8,8,0,0,1,0,16Zm88,12c0,13.1-9.3,21-25,21a33.4,33.4,0,0,1-20.1-6.8h0A7.6,7.6,0,0,1,104,212a8,8,0,0,1,8-8,8.3,8.3,0,0,1,5.1,1.8H117a18.4,18.4,0,0,0,10,3.2c9,0,9-3,9-5s0-.9-1.2-1.6-5.8-2.2-9.2-3.1C117,197,104,193.5,104,180s9.5-21,23-21a33.4,33.4,0,0,1,20.1,6.8h0A7.6,7.6,0,0,1,150,172a8,8,0,0,1-8,8,8.3,8.3,0,0,1-5.1-1.8h.1a18.4,18.4,0,0,0-10-3.2c-4.6,0-7,1.7-7,5v.2c1.1,1.3,6.6,2.8,9.7,3.6C138,186,152,189.7,152,204ZM213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H168a8,8,0,0,1,8,8v80a8,8,0,0,0,8,8h16a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68.8" y1="199.3" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68.8" y1="199.3" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,224h16a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_out_line_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_out_line_horizontal />
  <Heroicons.arrows_out_line_horizontal class="w-4 h-4" />
  <Heroicons.arrows_out_line_horizontal solid />
  <Heroicons.arrows_out_line_horizontal mini />
  <Heroicons.arrows_out_line_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_out_line_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 160 16 128 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 96 240 128 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="12" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="44 96 12 128 44 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="128" x2="244" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="212 160 244 128 212 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 160 16 128 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 96 240 128 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM96,120H56V96a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-32,32a8.1,8.1,0,0,0,0,11.4l32,32A8.3,8.3,0,0,0,48,168a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,56,160V136H96a8,8,0,0,0,0-16Zm149.7,2.3-32-32a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,200,96v24H160a8,8,0,0,0,0,16h40v24a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l32-32A8.1,8.1,0,0,0,245.7,122.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 160 16 128 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 96 240 128 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="16" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 160 16 128 48 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 96 240 128 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `code_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.code_simple />
  <Heroicons.code_simple class="w-4 h-4" />
  <Heroicons.code_simple solid />
  <Heroicons.code_simple mini />
  <Heroicons.code_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def code_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="88 64 16 128 88 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 64 240 128 168 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="88 64 16 128 88 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 64 240 128 168 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="88 64 16 128 88 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 64 240 128 168 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94,58.7A8,8,0,0,0,82.7,58l-72,64a8,8,0,0,0,0,12l72,64a8.1,8.1,0,0,0,5.3,2,8,8,0,0,0,5.3-14L28,128,93.3,70A8,8,0,0,0,94,58.7Z"/><path d="M245.3,122l-72-64a8,8,0,0,0-10.6,12L228,128l-65.3,58a8,8,0,0,0,5.3,14,8.1,8.1,0,0,0,5.3-2l72-64a8,8,0,0,0,0-12Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="88 64 16 128 88 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 64 240 128 168 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="88 64 16 128 88 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 64 240 128 168 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_right_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_right_simple />
  <Heroicons.align_right_simple class="w-4 h-4" />
  <Heroicons.align_right_simple solid />
  <Heroicons.align_right_simple mini />
  <Heroicons.align_right_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_right_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="56" x2="224" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="24" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="56" x2="224" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="24" y="88" width="160" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="88" width="168" height="80" rx="8" opacity="0.2"/><line x1="224" y1="56" x2="224" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="24" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,56V200a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0ZM184,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V96A16,16,0,0,0,184,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="56" x2="224" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="24" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="56" x2="224" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="24" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cards` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cards />
  <Heroicons.cards class="w-4 h-4" />
  <Heroicons.cards solid />
  <Heroicons.cards mini />
  <Heroicons.cards outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cards(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,48H216a8,8,0,0,1,8,8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="28" y="84" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,44H220a8,8,0,0,1,8,8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" opacity="0.2"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,48H216a8,8,0,0,1,8,8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="176" height="144" rx="16"/><path d="M216,40H64a8,8,0,0,0,0,16H216V176a8,8,0,0,0,16,0V56A16,16,0,0,0,216,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,48H216a8,8,0,0,1,8,8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,48H216a8,8,0,0,1,8,8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_down_right />
  <Heroicons.arrow_circle_down_right class="w-4 h-4" />
  <Heroicons.arrow_circle_down_right solid />
  <Heroicons.arrow_circle_down_right mini />
  <Heroicons.arrow_circle_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,132a8.5,8.5,0,0,1-.6,3.1,8.2,8.2,0,0,1-4.3,4.3,8.5,8.5,0,0,1-3.1.6H108a8,8,0,0,1,0-16h28.7L94.3,105.7a8.1,8.1,0,0,1,11.4-11.4L148,136.7V108a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_star` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_star />
  <Heroicons.folder_star class="w-4 h-4" />
  <Heroicons.folder_star solid />
  <Heroicons.folder_star mini />
  <Heroicons.folder_star outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_star(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M98.4,46.7,128,80H32V52a8,8,0,0,1,8-8H92.4A8,8,0,0,1,98.4,46.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" opacity="0.2"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.6,200H40V88H216v32a8,8,0,0,0,16,0V88a16,16,0,0,0-16-16H131.3L104,44.7A15.9,15.9,0,0,0,92.7,40H40A16,16,0,0,0,24,56V200.6A15.4,15.4,0,0,0,39.4,216h81.2a8,8,0,1,0,0-16ZM92.7,56l16,16H40V56ZM241.1,167.8l-22.5,18.6,6.8,27.7a7.9,7.9,0,0,1-3,8.3,7.4,7.4,0,0,1-4.7,1.6,8.7,8.7,0,0,1-4.1-1.1L188,207.8l-25.6,15.1a8,8,0,0,1-8.8-.5,7.9,7.9,0,0,1-3-8.3l6.8-27.7-22.5-18.6a8.1,8.1,0,0,1,4.5-14.2l29.8-2.3,11.5-26.5a8,8,0,0,1,14.6,0l11.5,26.5,29.8,2.3a8.1,8.1,0,0,1,4.5,14.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `detective` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.detective />
  <Heroicons.detective class="w-4 h-4" />
  <Heroicons.detective solid />
  <Heroicons.detective mini />
  <Heroicons.detective outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def detective(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="120" x2="248" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="74" cy="182" r="26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="182" cy="182" r="26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="182" x2="156" y2="182" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="120" x2="244" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="180" r="28" opacity="0.2"/><circle cx="180" cy="180" r="28" opacity="0.2"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120Z" opacity="0.2"/><circle cx="76" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="120" x2="248" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,180a36,36,0,0,1-71.1,8H111.1a36,36,0,1,1,0-16h33.8a36,36,0,0,1,71.1,8Zm32-68H220.2L173.3,45a16.1,16.1,0,0,0-26.5.3L128,73.6,109.2,45.3A16.1,16.1,0,0,0,82.7,45L35.8,112H8a8,8,0,0,0,0,16H248a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="8" y1="120" x2="248" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="8" y1="120" x2="248" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,120,89.3,49.6a8,8,0,0,1,13.2.1L121.3,78a8,8,0,0,0,13.4,0l18.8-28.3a8,8,0,0,1,13.2-.1L216,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rewind` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rewind />
  <Heroicons.rewind class="w-4 h-4" />
  <Heroicons.rewind solid />
  <Heroicons.rewind mini />
  <Heroicons.rewind outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rewind(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M14.5,121.3l89.2-57.4A8,8,0,0,1,116,70.7V185.3a8,8,0,0,1-12.3,6.8L14.5,134.7A7.9,7.9,0,0,1,14.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,121.3l89.2-57.4A8,8,0,0,1,120,70.7V185.3a8,8,0,0,1-12.3,6.8L18.5,134.7A7.9,7.9,0,0,1,18.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M14.5,121.3l89.2-57.4A8,8,0,0,1,116,70.7V185.3a8,8,0,0,1-12.3,6.8L14.5,134.7A7.9,7.9,0,0,1,14.5,121.3Z" opacity="0.2"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" opacity="0.2"/><path d="M14.5,121.3l89.2-57.4A8,8,0,0,1,116,70.7V185.3a8,8,0,0,1-12.3,6.8L14.5,134.7A7.9,7.9,0,0,1,14.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M10.1,114.5,99.3,57.2A16,16,0,0,1,124,70.7v42.6l87.3-56.1A16,16,0,0,1,236,70.7V185.3a16.1,16.1,0,0,1-8.3,14.1,16.5,16.5,0,0,1-16.4-.6L124,142.7v42.6a16.1,16.1,0,0,1-8.3,14.1,16.5,16.5,0,0,1-16.4-.6L10.1,141.5a16.1,16.1,0,0,1,0-27Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M14.5,121.3l89.2-57.4A8,8,0,0,1,116,70.7V185.3a8,8,0,0,1-12.3,6.8L14.5,134.7A7.9,7.9,0,0,1,14.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M14.5,121.3l89.2-57.4A8,8,0,0,1,116,70.7V185.3a8,8,0,0,1-12.3,6.8L14.5,134.7A7.9,7.9,0,0,1,14.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M126.5,121.3l89.2-57.4A8,8,0,0,1,228,70.7V185.3a8,8,0,0,1-12.3,6.8l-89.2-57.4A7.9,7.9,0,0,1,126.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_sad` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_sad />
  <Heroicons.smiley_sad class="w-4 h-4" />
  <Heroicons.smiley_sad solid />
  <Heroicons.smiley_sad mini />
  <Heroicons.smiley_sad outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_sad(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,176a48.1,48.1,0,0,0-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/><path d="M165.3,169.8a48,48,0,0,0-74.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,176a48.1,48.1,0,0,0-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,72a12,12,0,1,1-12,12A12,12,0,0,1,164,96ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm81.6,86.9a7.6,7.6,0,0,1-4,1.1,7.7,7.7,0,0,1-6.9-4,40.1,40.1,0,0,0-69.4,0,8,8,0,1,1-13.8-8,56,56,0,0,1,97,0A8,8,0,0,1,173.6,182.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/><path d="M169.6,176a48.1,48.1,0,0,0-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/><path d="M169.6,176a48.1,48.1,0,0,0-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `keyboard` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.keyboard />
  <Heroicons.keyboard class="w-4 h-4" />
  <Heroicons.keyboard solid />
  <Heroicons.keyboard mini />
  <Heroicons.keyboard outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def keyboard(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="92" x2="192" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="164" x2="72" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="164" x2="148" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="164" x2="192" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8.5" opacity="0.2"/><rect x="24" y="56" width="208" height="144" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.5,47.5H32.5a17,17,0,0,0-17,17v127a17,17,0,0,0,17,17h191a17,17,0,0,0,17-17V64.5A17,17,0,0,0,223.5,47.5ZM64,168H56a8,8,0,0,1,0-16h8a8,8,0,0,1,0,16Zm96,0H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm40,0h-8a8,8,0,0,1,0-16h8a8,8,0,0,1,0,16Zm0-32H56a8,8,0,0,1,0-16H200a8,8,0,0,1,0,16Zm0-32H56a8,8,0,0,1,0-16H200a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="144" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thermometer_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thermometer_simple />
  <Heroicons.thermometer_simple class="w-4 h-4" />
  <Heroicons.thermometer_simple solid />
  <Heroicons.thermometer_simple mini />
  <Heroicons.thermometer_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thermometer_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="188" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,154.8V56a40,40,0,0,1,80,0v98.8h0a52,52,0,1,1-80,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,147h0V48a32,32,0,0,0-64,0v99h0a52,52,0,1,0,64,0Zm-32,61a20,20,0,1,1,20-20A20.1,20.1,0,0,1,128,208Z" opacity="0.2"/><path d="M96,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,143.3V48a40,40,0,0,0-80,0v95.3A59.4,59.4,0,0,0,68,188a60,60,0,0,0,120,0A59.4,59.4,0,0,0,168,143.3ZM128,24a24.1,24.1,0,0,1,24,24V80H104V48A24.1,24.1,0,0,1,128,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `train_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.train_simple />
  <Heroicons.train_simple class="w-4 h-4" />
  <Heroicons.train_simple solid />
  <Heroicons.train_simple mini />
  <Heroicons.train_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def train_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="172" r="12"/><circle cx="172" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="88" cy="168" r="16"/><circle cx="168" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,56a23.9,23.9,0,0,0-24-24H68A23.9,23.9,0,0,0,44,56v72H212Z" opacity="0.2"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="172" r="12"/><circle cx="172" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,24H68A32.1,32.1,0,0,0,36,56V184a32.1,32.1,0,0,0,32,32H80L65.6,235.2a8,8,0,0,0,1.6,11.2A7.7,7.7,0,0,0,72,248a8,8,0,0,0,6.4-3.2L100,216h56l21.6,28.8A8,8,0,0,0,184,248a7.7,7.7,0,0,0,4.8-1.6,8,8,0,0,0,1.6-11.2L176,216h12a32.1,32.1,0,0,0,32-32V56A32.1,32.1,0,0,0,188,24Zm0,176H68a16,16,0,0,1-16-16V136H204v48A16,16,0,0,1,188,200Z"/><circle cx="84" cy="172" r="12"/><circle cx="172" cy="172" r="12"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="172" cy="172" r="10"/><circle cx="84" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="172" r="8"/><circle cx="172" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clock` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clock />
  <Heroicons.clock class="w-4 h-4" />
  <Heroicons.clock solid />
  <Heroicons.clock mini />
  <Heroicons.clock outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clock(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 72 128 128 184 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stack` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stack />
  <Heroicons.stack class="w-4 h-4" />
  <Heroicons.stack solid />
  <Heroicons.stack mini />
  <Heroicons.stack outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stack(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 176 128 232 224 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 128 128 184 224 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="32 80 128 136 224 80 128 24 32 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 176 128 232 224 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="32 128 128 184 224 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="32 80 128 136 224 80 128 24 32 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 80 128 136 224 80 128 24 32 80" opacity="0.2"/><polyline points="32 176 128 232 224 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="32 128 128 184 224 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="32 80 128 136 224 80 128 24 32 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,169.1l-92,53.6L36,169.1a8,8,0,0,0-8,13.8l96,56a7.8,7.8,0,0,0,8,0l96-56a8,8,0,1,0-8-13.8Z"/><path d="M220,121.1l-92,53.6L36,121.1a8,8,0,0,0-8,13.8l96,56a7.8,7.8,0,0,0,8,0l96-56a8,8,0,1,0-8-13.8Z"/><path d="M28,86.9l96,56a7.8,7.8,0,0,0,8,0l96-56a8,8,0,0,0,0-13.8l-96-56a7.7,7.7,0,0,0-8,0l-96,56a8,8,0,0,0,0,13.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 176 128 232 224 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="32 128 128 184 224 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="32 80 128 136 224 80 128 24 32 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 176 128 232 224 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="32 128 128 184 224 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="32 80 128 136 224 80 128 24 32 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `target` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.target />
  <Heroicons.target class="w-4 h-4" />
  <Heroicons.target solid />
  <Heroicons.target mini />
  <Heroicons.target outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def target(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="224" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,60.1a96.2,96.2,0,1,0,18.7,26.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,94.1a47.9,47.9,0,1,0,14,31.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="224" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M161.9,94.1a47.9,47.9,0,1,0,0,67.8,47.1,47.1,0,0,0,13.2-24.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M195.9,60.1A96.1,96.1,0,1,0,218,94.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" opacity="0.2"/><line x1="128" y1="128" x2="224" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,60.1a96.2,96.2,0,1,0,18.7,26.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,94.1a47.9,47.9,0,1,0,14,31.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M211.2,79.4a8,8,0,0,0-3.8,10.7,88,88,0,1,1-23.1-29.7L161.5,83.2a56,56,0,0,0-73.1,84.4h0a56,56,0,0,0,95.5-42.8,7.9,7.9,0,0,0-8.4-7.5,8,8,0,0,0-7.6,8.4,40,40,0,0,1-62,35.7l24-24,37.7-37.7h0l62.1-62a8.1,8.1,0,0,0-11.4-11.4L195.7,49A104,104,0,0,0,54.5,54.5a103.8,103.8,0,0,0,0,147,103.8,103.8,0,0,0,147,0A104,104,0,0,0,221.9,83.2,8,8,0,0,0,211.2,79.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="224" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M195.9,60.1a96.2,96.2,0,1,0,18.7,26.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M161.9,94.1a47.9,47.9,0,1,0,14,31.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="224" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M195.9,60.1a96.2,96.2,0,1,0,18.7,26.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M161.9,94.1a47.9,47.9,0,1,0,14,31.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_top_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_top_simple />
  <Heroicons.align_top_simple class="w-4 h-4" />
  <Heroicons.align_top_simple solid />
  <Heroicons.align_top_simple mini />
  <Heroicons.align_top_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_top_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="32" x2="200" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="64" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="32" x2="200" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="88" y="72" width="80" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="64" width="80" height="168" rx="8" opacity="0.2"/><line x1="56" y1="32" x2="200" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="64" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32a8,8,0,0,1-8,8H56a8,8,0,0,1,0-16H200A8,8,0,0,1,208,32ZM160,56H96A16,16,0,0,0,80,72V224a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V72A16,16,0,0,0,160,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="32" x2="200" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="88" y="64" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="32" x2="200" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="88" y="64" width="80" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `moon_stars` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.moon_stars />
  <Heroicons.moon_stars class="w-4 h-4" />
  <Heroicons.moon_stars solid />
  <Heroicons.moon_stars mini />
  <Heroicons.moon_stars outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def moon_stars(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="112" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="88" x2="192" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="24" x2="168" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="112" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="88" x2="192" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="24" x2="168" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" opacity="0.2"/><line x1="216" y1="112" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="88" x2="192" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="24" x2="168" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,80H224V64a8,8,0,0,0-16,0V80H192a8,8,0,0,0,0,16h16v16a8,8,0,0,0,16,0V96h16a8,8,0,0,0,0-16Z"/><path d="M152,48h8v8a8,8,0,0,0,16,0V48h8a8,8,0,0,0,0-16h-8V24a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16Z"/><path d="M216.5,144.6l-2.2.4A84,84,0,0,1,111,41.6a5.7,5.7,0,0,0,.3-1.8,8,8,0,0,0-5-7.9,7.8,7.8,0,0,0-5.2-.2A100,100,0,1,0,224.3,154.9a7.9,7.9,0,0,0,0-4.8A8.2,8.2,0,0,0,216.5,144.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="112" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="88" x2="192" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="24" x2="168" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="112" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="88" x2="192" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="24" x2="168" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216.7,152.6A91.9,91.9,0,0,1,103.4,39.3h0A92,92,0,1,0,216.7,152.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_css` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_css />
  <Heroicons.file_css class="w-4 h-4" />
  <Heroicons.file_css solid />
  <Heroicons.file_css mini />
  <Heroicons.file_css outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_css(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M116,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M84,215.6A24.2,24.2,0,0,1,70,220c-14.4,0-26-12.5-26-28s11.6-28,26-28a24.2,24.2,0,0,1,14,4.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.7,183.8c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,142,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,127,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,112,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,127,225c15.7,0,25-7.9,25-21S138,186,129.7,183.8Zm7.2-5.7h0Zm-19.8,27.8h0ZM52,192c0,8.8,6.3,16,14,16a12.9,12.9,0,0,0,8.6-3.4,7.9,7.9,0,0,1,11.3.6,8,8,0,0,1-.5,11.3A29.3,29.3,0,0,1,66,224c-16.5,0-30-14.4-30-32s13.5-32,30-32a29.3,29.3,0,0,1,19.4,7.5,8,8,0,0,1,.5,11.3,7.9,7.9,0,0,1-11.3.6A12.9,12.9,0,0,0,66,176C58.3,176,52,183.2,52,192Zm141.7-8.2c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,206,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,191,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,176,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,191,225c15.7,0,25-7.9,25-21S202,186,193.7,183.8Zm7.2-5.7h0Zm-19.8,27.8h0Zm20.5-27.2Zm-64,0Zm76.1-96.4-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,210.5A21,21,0,0,1,66,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `google_chrome_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.google_chrome_logo />
  <Heroicons.google_chrome_logo class="w-4 h-4" />
  <Heroicons.google_chrome_logo solid />
  <Heroicons.google_chrome_logo mini />
  <Heroicons.google_chrome_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def google_chrome_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="92" x2="217" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96.8" y1="146" x2="52.3" y2="68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="159.2" y1="146" x2="114.7" y2="223.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="92" x2="217" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96.8" y1="146" x2="52.3" y2="68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="159.2" y1="146" x2="114.7" y2="223.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="36" opacity="0.2"/><line x1="128" y1="92" x2="217" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96.8" y1="146" x2="52.3" y2="68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="159.2" y1="146" x2="114.7" y2="223.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,16a88.1,88.1,0,0,1,76.2,44H128a44,44,0,0,0-41.2,28.6L62.1,69.8A87.6,87.6,0,0,1,128,40ZM40,128A87.7,87.7,0,0,1,51.8,84l38.1,66,.2.3a44,44,0,0,0,45.2,21.1l-24.8,42.9A88.3,88.3,0,0,1,40,128Zm88,88,38.1-66c.1-.1.1-.3.2-.4a43.8,43.8,0,0,0-4.4-49.6h49.5a86.5,86.5,0,0,1,4.6,28A88.1,88.1,0,0,1,128,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="92" x2="217" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96.8" y1="146" x2="52.3" y2="68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="159.2" y1="146" x2="114.7" y2="223.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="92" x2="217" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96.8" y1="146" x2="52.3" y2="68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="159.2" y1="146" x2="114.7" y2="223.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `messenger_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.messenger_logo />
  <Heroicons.messenger_logo class="w-4 h-4" />
  <Heroicons.messenger_logo solid />
  <Heroicons.messenger_logo mini />
  <Heroicons.messenger_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def messenger_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 144 112 112 144 144 176 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 144 112 112 144 144 176 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" opacity="0.2"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 144 112 112 144 144 176 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,0,0,36.8,178l-8.5,30A15.9,15.9,0,0,0,48,227.7l30-8.5A104,104,0,1,0,128,24Zm53.7,93.7-32,32a8.2,8.2,0,0,1-11.4,0L112,123.3,85.7,149.7a8.1,8.1,0,0,1-11.4-11.4l32-32a8.1,8.1,0,0,1,11.4,0L144,132.7l26.3-26.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 144 112 112 144 144 176 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 144 112 112 144 144 176 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `swatches` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.swatches />
  <Heroicons.swatches class="w-4 h-4" />
  <Heroicons.swatches solid />
  <Heroicons.swatches mini />
  <Heroicons.swatches outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def swatches(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M118.3,124.8l72.9-26.5a8,8,0,0,1,10.3,4.8l19.2,52.6a8,8,0,0,1-4.8,10.2L84.3,213.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,162.5V208a8,8,0,0,1-8,8H72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="72" cy="180" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M118.3,124.8l72.9-26.5a8,8,0,0,1,10.3,4.8l19.2,52.6a8,8,0,0,1-4.8,10.2L84.3,213.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M220,162.5V208a8,8,0,0,1-8,8H72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="180" x2="74.1" y2="168.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" opacity="0.2"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M118.3,124.8l72.9-26.5a8,8,0,0,1,10.3,4.8l19.2,52.6a8,8,0,0,1-4.8,10.2L84.3,213.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,162.5V208a8,8,0,0,1-8,8H72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="72" cy="180" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.2,153,209,100.3a16,16,0,0,0-20.5-9.5l-59.9,21.8,11-62.8a16,16,0,0,0-2.6-12,16.2,16.2,0,0,0-10.3-6.6L71.5,21.5A16.1,16.1,0,0,0,53,34.5L28.8,171.7a45,45,0,0,0,7.7,33.9,43.4,43.4,0,0,0,28.7,17.9,51.6,51.6,0,0,0,6.7.5H212a16,16,0,0,0,16-16V164.3A15.7,15.7,0,0,0,228.2,153ZM72,192a12,12,0,1,1,12-12A12,12,0,0,1,72,192Zm140,16H123.7L212,175.9Zm-98.5-13.3a41,41,0,0,0,1.8-7.1l10.1-56.8,68.6-25,19.1,52.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M118.3,124.8l72.9-26.5a8,8,0,0,1,10.3,4.8l19.2,52.6a8,8,0,0,1-4.8,10.2L84.3,213.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M220,162.5V208a8,8,0,0,1-8,8H72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="72" cy="180" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.7,173,60.9,35.9a7.9,7.9,0,0,1,9.2-6.5l55.2,9.7a8.1,8.1,0,0,1,6.5,9.3L107.5,186.3a36.1,36.1,0,0,1-41.1,29.3C46.5,212.4,33.2,192.9,36.7,173Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M118.3,124.8l72.9-26.5a8,8,0,0,1,10.3,4.8l19.2,52.6a8,8,0,0,1-4.8,10.2L84.3,213.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M220,162.5V208a8,8,0,0,1-8,8H72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="72" cy="180" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_arrow_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_arrow_up />
  <Heroicons.file_arrow_up class="w-4 h-4" />
  <Heroicons.file_arrow_up solid />
  <Heroicons.file_arrow_up mini />
  <Heroicons.file_arrow_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_arrow_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 148 128 120 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="100 152 128 124 156 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="184" x2="128" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="100 148 128 120 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.6,82.3l-55.9-56-.3-.2-.3-.3-.3-.2-.3-.2c-.1-.1-.2-.1-.2-.2l-.5-.3h-.2l-.5-.3H155l-.7-.3H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A7.8,7.8,0,0,0,213.6,82.3Zm-51.9,71.4a8.1,8.1,0,0,1-11.4,0L136,139.3V184a8,8,0,0,1-16,0V139.3l-14.3,14.4a8.1,8.1,0,0,1-11.4-11.4l28-28h.1l.5-.5.3-.2.4-.3.3-.2.3-.2h.4l.3-.2h.4l.4-.2h4.6l.4.2h.4l.3.2h.4l.3.2.3.2.4.3.3.2.5.5h.1l28,28A8.1,8.1,0,0,1,161.7,153.7ZM152,88V43.3L196.7,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="100 148 128 120 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="184" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="100 148 128 120 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="184" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_full` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_full />
  <Heroicons.cell_signal_full class="w-4 h-4" />
  <Heroicons.cell_signal_full solid />
  <Heroicons.cell_signal_full mini />
  <Heroicons.cell_signal_full outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_full(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" opacity="0.2"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M198.1,28.5A15.9,15.9,0,0,0,180.7,32L16,196.7A16,16,0,0,0,27.3,224H192a16,16,0,0,0,16-16V43.3A16,16,0,0,0,198.1,28.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="104" x2="120" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pause_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pause_circle />
  <Heroicons.pause_circle class="w-4 h-4" />
  <Heroicons.pause_circle solid />
  <Heroicons.pause_circle mini />
  <Heroicons.pause_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pause_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="96" x2="104" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="96" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="96" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM112,160a8,8,0,0,1-16,0V96a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V96a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="96" x2="104" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="96" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="96" x2="104" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="96" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `presentation` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.presentation />
  <Heroicons.presentation class="w-4 h-4" />
  <Heroicons.presentation solid />
  <Heroicons.presentation mini />
  <Heroicons.presentation outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def presentation(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H136V24a8,8,0,0,0-16,0V40H40A16,16,0,0,0,24,56V176a16,16,0,0,0,16,16H79.4L57.8,219A8,8,0,0,0,64,232a7.8,7.8,0,0,0,6.2-3l29.6-37h56.4l29.6,37a7.8,7.8,0,0,0,6.2,3,8,8,0,0,0,6.2-13l-21.6-27H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="184" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="184" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lightbulb_filament` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lightbulb_filament />
  <Heroicons.lightbulb_filament class="w-4 h-4" />
  <Heroicons.lightbulb_filament solid />
  <Heroicons.lightbulb_filament mini />
  <Heroicons.lightbulb_filament outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lightbulb_filament(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 112 128 144 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 112 128 144 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,168a79.8,79.8,0,0,1-32-63.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,49.7,144.1A20,20,0,0,0,168,184h0a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-.2A19.6,19.6,0,0,0,80,168Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" opacity="0.2"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 112 128 144 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,232a8,8,0,0,1-8,8H88a8,8,0,0,1,0-16h80A8,8,0,0,1,176,232Zm40-128a87.7,87.7,0,0,1-33.6,69.2A16.1,16.1,0,0,0,176,186v6a16,16,0,0,1-16,16H96a16,16,0,0,1-16-16v-6a16.2,16.2,0,0,0-6.2-12.7A87.8,87.8,0,0,1,40,104.5C39.7,56.8,78.3,17.1,125.9,16A87.9,87.9,0,0,1,216,104Zm-50.3,2.3a8.1,8.1,0,0,0-11.4,0L128,132.7l-26.3-26.4a8.1,8.1,0,0,0-11.4,11.4L120,147.3V184a8,8,0,0,0,16,0V147.3l29.7-29.6A8.1,8.1,0,0,0,165.7,106.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="200" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 112 128 144 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="200" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 112 128 144 160 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link_simple />
  <Heroicons.link_simple class="w-4 h-4" />
  <Heroicons.link_simple solid />
  <Heroicons.link_simple mini />
  <Heroicons.link_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="94.1" y1="161.9" x2="161.9" y2="94" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="94.1" y1="161.9" x2="161.9" y2="94" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="94.1" y1="161.9" x2="161.9" y2="94" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.3,88.4,88.4,156.3a8,8,0,0,0,0,11.3,8.1,8.1,0,0,0,11.3,0l67.9-67.9a8,8,0,0,0-11.3-11.3Z"/><path d="M139.3,173.3,111,201.5a39.7,39.7,0,0,1-56.5,0,40,40,0,0,1,0-56.5l28.2-28.3a8,8,0,0,0-11.3-11.3L43.1,133.7a56,56,0,0,0,79.2,79.2l28.3-28.3a8,8,0,0,0,0-11.3A7.9,7.9,0,0,0,139.3,173.3Z"/><path d="M212.9,43.1a56,56,0,0,0-79.2,0L105.4,71.4a8,8,0,0,0,11.3,11.3L145,54.5a39.7,39.7,0,0,1,56.5,0,40,40,0,0,1,0,56.5l-28.2,28.3a7.9,7.9,0,0,0,0,11.3,7.7,7.7,0,0,0,5.6,2.4,8,8,0,0,0,5.7-2.4l28.3-28.3A56.1,56.1,0,0,0,212.9,43.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="94.1" y1="161.9" x2="161.9" y2="94" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="94.1" y1="161.9" x2="161.9" y2="94" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M145,178.9l-28.3,28.3a48,48,0,0,1-67.9-67.9L77.1,111" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M178.9,145l28.3-28.3a48,48,0,0,0-67.9-67.9L111,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circles_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circles_three />
  <Heroicons.circles_three class="w-4 h-4" />
  <Heroicons.circles_three solid />
  <Heroicons.circles_three mini />
  <Heroicons.circles_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circles_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="40" opacity="0.2"/><circle cx="188" cy="172" r="40" opacity="0.2"/><circle cx="68" cy="172" r="40" opacity="0.2"/><circle cx="128" cy="68" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="48"/><circle cx="188" cy="172" r="48"/><circle cx="68" cy="172" r="48"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="68" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="172" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `slack_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.slack_logo />
  <Heroicons.slack_logo class="w-4 h-4" />
  <Heroicons.slack_logo solid />
  <Heroicons.slack_logo mini />
  <Heroicons.slack_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def slack_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,32h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V56a24,24,0,0,1,24-24Z" transform="translate(304 160) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,128V104a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128a24,24,0,0,1,24-24Z" transform="translate(24 328) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,128h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V152a24,24,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128v24a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24h0a23.9,23.9,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,32h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V56A24,24,0,0,1,152,32Z" transform="translate(304 160) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,128V104a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128a24,24,0,0,1,24-24Z" transform="translate(24 328) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,128h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V152A24,24,0,0,1,104,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,128v24a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24h0a23.9,23.9,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128a24,24,0,0,1,24-24Z" transform="translate(24 328) rotate(-90)" opacity="0.2"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" opacity="0.2"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" opacity="0.2"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" opacity="0.2"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,32h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V56A24,24,0,0,1,152,32Z" transform="translate(304 160) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,128V104a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128a24,24,0,0,1,24-24Z" transform="translate(24 328) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,128h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V152A24,24,0,0,1,104,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128v24a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24h0a23.9,23.9,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.1,128A32,32,0,0,0,200,72a32.2,32.2,0,0,0-16,4.3V56a32,32,0,0,0-56-21.1A32,32,0,0,0,72,56a32.2,32.2,0,0,0,4.3,16H56a32,32,0,0,0-21.1,56A32,32,0,0,0,56,184a32.2,32.2,0,0,0,16-4.3V200a32,32,0,0,0,56,21.1A32,32,0,0,0,184,200a32.2,32.2,0,0,0-4.3-16H200a32,32,0,0,0,21.1-56ZM88,56a16,16,0,0,1,32,0V72H104A16,16,0,0,1,88,56ZM40,104A16,16,0,0,1,56,88h48a16,16,0,0,1,16,16v16H56A16,16,0,0,1,40,104Zm128,96a16,16,0,0,1-32,0V184h16A16,16,0,0,1,168,200Zm32-32H152a16,16,0,0,1-16-16V136h64a16,16,0,0,1,0,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,32h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V56a24,24,0,0,1,24-24Z" transform="translate(304 160) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,128V104a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128A24,24,0,0,1,176,104Z" transform="translate(24 328) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,128h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V152A24,24,0,0,1,104,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,128v24a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24h0a23.9,23.9,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,56h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V80A24,24,0,0,1,80,56Z" transform="translate(184 24) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,80H104A23.9,23.9,0,0,1,80,56h0a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,32h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V56A24,24,0,0,1,152,32Z" transform="translate(304 160) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,128V104a23.9,23.9,0,0,1,24-24h0a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,104h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V128a24,24,0,0,1,24-24Z" transform="translate(24 328) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,176h24a23.9,23.9,0,0,1,24,24h0a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,128h24a0,0,0,0,1,0,0v72a24,24,0,0,1-24,24h0a24,24,0,0,1-24-24V152a24,24,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,128v24a23.9,23.9,0,0,1-24,24h0a23.9,23.9,0,0,1-24-24h0a23.9,23.9,0,0,1,24-24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gas_pump` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gas_pump />
  <Heroicons.gas_pump class="w-4 h-4" />
  <Heroicons.gas_pump solid />
  <Heroicons.gas_pump mini />
  <Heroicons.gas_pump outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gas_pump(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="216" x2="192" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,112h24a16,16,0,0,1,16,16v40a16,16,0,0,0,16,16h0a16,16,0,0,0,16-16V86.6a16.1,16.1,0,0,0-4.7-11.3L216,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="112" x2="88" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="216" x2="192" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,112h24a16,16,0,0,1,16,16v40a16,16,0,0,0,16,16h4a16,16,0,0,0,16-16V86.6a16.1,16.1,0,0,0-4.7-11.3L220,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="112" x2="96" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" opacity="0.2"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="216" x2="192" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,112h24a16,16,0,0,1,16,16v40a16,16,0,0,0,16,16h0a16,16,0,0,0,16-16V86.6a16.1,16.1,0,0,0-4.7-11.3L216,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="112" x2="88" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241,69.7,221.7,50.3a8.1,8.1,0,0,0-11.4,11.4L229.7,81a7.9,7.9,0,0,1,2.3,5.6V168a8,8,0,0,1-16,0V128a24.1,24.1,0,0,0-24-24H176V56a24.1,24.1,0,0,0-24-24H72A24.1,24.1,0,0,0,48,56V208H32a8,8,0,0,0,0,16H192a8,8,0,0,0,0-16H176V120h16a8,8,0,0,1,8,8v40a24,24,0,0,0,48,0V86.6A23.8,23.8,0,0,0,241,69.7ZM144,120H80a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="216" x2="192" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,112h24a16,16,0,0,1,16,16v40a16,16,0,0,0,16,16h0a16,16,0,0,0,16-16V86.6a16.1,16.1,0,0,0-4.7-11.3L216,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="112" x2="88" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,216V56A16,16,0,0,1,72,40h80a16,16,0,0,1,16,16V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="216" x2="192" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,112h24a16,16,0,0,1,16,16v40a16,16,0,0,0,16,16h0a16,16,0,0,0,16-16V86.6a16.1,16.1,0,0,0-4.7-11.3L216,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="112" x2="88" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fast_forward` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fast_forward />
  <Heroicons.fast_forward class="w-4 h-4" />
  <Heroicons.fast_forward solid />
  <Heroicons.fast_forward mini />
  <Heroicons.fast_forward outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fast_forward(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.5,121.3,152.3,63.9A8,8,0,0,0,140,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,241.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.5,121.3,148.3,63.9A8,8,0,0,0,136,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,237.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.5,121.3,152.3,63.9A8,8,0,0,0,140,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,241.5,121.3Z" opacity="0.2"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" opacity="0.2"/><path d="M241.5,121.3,152.3,63.9A8,8,0,0,0,140,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,241.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M253.2,128a16,16,0,0,1-7.3,13.5l-89.2,57.3A16,16,0,0,1,132,185.3V142.7L44.7,198.8A16,16,0,0,1,20,185.3V70.7A16,16,0,0,1,44.7,57.2L132,113.3V70.7a16,16,0,0,1,24.7-13.5l89.2,57.3A16,16,0,0,1,253.2,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.5,121.3,152.3,63.9A8,8,0,0,0,140,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,241.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.5,121.3,152.3,63.9A8,8,0,0,0,140,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,241.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M129.5,121.3,40.3,63.9A8,8,0,0,0,28,70.7V185.3a8,8,0,0,0,12.3,6.8l89.2-57.4A7.9,7.9,0,0,0,129.5,121.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_nervous` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_nervous />
  <Heroicons.smiley_nervous class="w-4 h-4" />
  <Heroicons.smiley_nervous solid />
  <Heroicons.smiley_nervous mini />
  <Heroicons.smiley_nervous outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_nervous(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="80 172 96 152 112 172 128 152 144 172 160 152 176 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="85.8 164.8 96 152 112 172 128 152 144 172 160 152 170.2 164.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="80 172 96 152 112 172 128 152 144 172 160 152 176 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,72a12,12,0,1,1-12,12A12,12,0,0,1,164,96ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm89,82.2a7.9,7.9,0,0,1-5,1.8,7.8,7.8,0,0,1-6.2-3L160,164.8,150.2,177a7.9,7.9,0,0,1-12.4,0L128,164.8,118.2,177a7.9,7.9,0,0,1-12.4,0L96,164.8,86.2,177a8,8,0,0,1-12.4-10l16-20a7.9,7.9,0,0,1,12.4,0l9.8,12.2,9.8-12.2a7.9,7.9,0,0,1,12.4,0l9.8,12.2,9.8-12.2a7.9,7.9,0,0,1,12.4,0l16,20A7.9,7.9,0,0,1,181,178.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 172 96 152 112 172 128 152 144 172 160 152 176 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 172 96 152 112 172 128 152 144 172 160 152 176 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `push_pin_simple_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.push_pin_simple_slash />
  <Heroicons.push_pin_simple_slash class="w-4 h-4" />
  <Heroicons.push_pin_simple_slash solid />
  <Heroicons.push_pin_simple_slash mini />
  <Heroicons.push_pin_simple_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def push_pin_simple_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.2" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="196.4" y2="155.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="171.6" y1="176" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="74.8" y2="69.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="171.6" y1="176" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="176" x2="74.8" y2="69.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="102.1" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="40" x2="193.8" y2="140.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 176 80 40 176 40 200 176 56 176" opacity="0.2"/><line x1="91.2" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="196.4" y2="155.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="171.6" y1="176" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="74.8" y2="69.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,221.9A8.2,8.2,0,0,1,208,224a8,8,0,0,1-5.9-2.6l-34-37.4H136v56a8,8,0,0,1-16,0V184H40a8,8,0,0,1,0-16h9.3L66.2,72,42.1,45.4A8,8,0,0,1,53.9,34.6l75.2,82.8,48.5,53.2h0l36.3,40A7.9,7.9,0,0,1,213.4,221.9Zm-22.9-60.8a7.9,7.9,0,0,0,5.9,2.6,8.5,8.5,0,0,0,3.5-.8,8.1,8.1,0,0,0,4.4-8.6L185.5,48H192a8,8,0,0,0,0-16H91.2A8,8,0,0,0,86,34a9.4,9.4,0,0,0-1,1,8.3,8.3,0,0,0-1.7,4.5,1.1,1.1,0,0,0,0,.8,7.9,7.9,0,0,0,2,5.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.2" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="40" x2="196.4" y2="155.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="171.6" y1="176" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="74.8" y2="69.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="91.2" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="40" x2="196.4" y2="155.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="171.6" y1="176" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="74.8" y2="69.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `game_controller` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.game_controller />
  <Heroicons.game_controller class="w-4 h-4" />
  <Heroicons.game_controller solid />
  <Heroicons.game_controller mini />
  <Heroicons.game_controller outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def game_controller(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="108" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="92" x2="88" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,55.7,84,56A52.1,52.1,0,0,0,32.8,99h0L16.4,183.1a28,28,0,0,0,47.4,24.7h0L107,160l65-.3a52,52,0,1,0,0-104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M223.2,98.7l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="108" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="92" x2="88" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M172,55.7,84,56A52.1,52.1,0,0,0,32.8,99h0L16.4,183.1a28,28,0,0,0,47.4,24.7h0L107,160l65-.3a52,52,0,1,0,0-104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M223.2,98.7l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149,159.8h23a52,52,0,0,0,52-52,45,45,0,0,0-.8-9h0l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48Z" opacity="0.2"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="108" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="92" x2="88" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,55.7,84,56A52.1,52.1,0,0,0,32.8,99h0L16.4,183.1a28,28,0,0,0,47.4,24.7h0L107,160l65-.3a52,52,0,1,0,0-104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M223.2,98.7l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M247.5,181.7h-.1L231.1,97.2c0-.1,0-.1-.1-.2a60,60,0,0,0-59-49.3h0L84,48A59.9,59.9,0,0,0,24.9,97.6v.2L8.6,181.6h0a35.9,35.9,0,0,0,29.2,41.7,31.8,31.8,0,0,0,6.2.6,36.4,36.4,0,0,0,25.5-10.5l.4-.5,40.7-45,34.9-.2L186.1,213l.5.5A36,36,0,0,0,212,224a33.6,33.6,0,0,0,6.3-.6A36.1,36.1,0,0,0,247.5,181.7ZM104,116H96v8a8,8,0,0,1-16,0v-8H72a8,8,0,0,1,0-16h8V92a8,8,0,0,1,16,0v8h8a8,8,0,0,1,0,16Zm40-8a8,8,0,0,1,8-8h32a8,8,0,0,1,0,16H152A8,8,0,0,1,144,108Zm71.5,99.7a20.1,20.1,0,0,1-17.5-5.4l-31.1-34.5H172a60,60,0,0,0,51-28.3l8.7,45.2A20,20,0,0,1,215.5,207.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="108" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="92" x2="88" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M172,55.7,84,56A52.1,52.1,0,0,0,32.8,99h0L16.4,183.1a28,28,0,0,0,47.4,24.7h0L107,160l65-.3a52,52,0,1,0,0-104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M223.2,98.7l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="108" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="92" x2="88" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M172,55.7,84,56A52.1,52.1,0,0,0,32.8,99h0L16.4,183.1a28,28,0,0,0,47.4,24.7h0L107,160l65-.3a52,52,0,1,0,0-104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M223.2,98.7l16.4,84.4a28,28,0,0,1-47.4,24.7h0l-43.2-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_video` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_video />
  <Heroicons.file_video class="w-4 h-4" />
  <Heroicons.file_video solid />
  <Heroicons.file_video mini />
  <Heroicons.file_video outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_video(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="160" width="72" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 180 144 164 144 213.2 112 196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M188,224h12a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="160" width="72" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="112 176 148 164 148 213.2 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,164v49.2L112,196v12a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V168a8,8,0,0,1,8-8h56a8,8,0,0,1,8,8v12Z" opacity="0.2"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="160" width="72" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 180 144 164 144 213.2 112 196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,164v49.2a8.1,8.1,0,0,1-4.5,7.2,8.5,8.5,0,0,1-3.5.8,7.9,7.9,0,0,1-4.9-1.7l-19.1-15V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V168a16,16,0,0,1,16-16h56a16,16,0,0,1,16,16v4l19.2-14.4A8,8,0,0,1,152,164Zm64-76V216a16,16,0,0,1-16,16H168a8,8,0,0,1,0-16h32V96H152a8,8,0,0,1-8-8V40H56v80a8,8,0,0,1-16,0V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-27.3-8L160,51.3V80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="160" width="72" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 180 144 164 144 213.2 112 196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="160" width="72" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 180 144 164 144 213.2 112 196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_nine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_nine />
  <Heroicons.number_circle_nine class="w-4 h-4" />
  <Heroicons.number_circle_nine solid />
  <Heroicons.number_circle_nine mini />
  <Heroicons.number_circle_nine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_nine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,112a20,20,0,1,1-20-20A20.1,20.1,0,0,1,148,112Zm84,16A104,104,0,1,1,128,24,104.2,104.2,0,0,1,232,128Zm-68-16a36,36,0,1,0-36,36h1.8l-16.7,27.9a8.1,8.1,0,0,0,2.8,11A8.7,8.7,0,0,0,120,188a8.1,8.1,0,0,0,6.9-3.9l32.2-54,.3-.5A36,36,0,0,0,164,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `barbell` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.barbell />
  <Heroicons.barbell class="w-4 h-4" />
  <Heroicons.barbell solid />
  <Heroicons.barbell mini />
  <Heroicons.barbell outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def barbell(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,80h24a8,8,0,0,1,8,8v80a8,8,0,0,1-8,8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,176H32a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="60" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="156" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M196,80h28a8,8,0,0,1,8,8v80a8,8,0,0,1-8,8H196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,176H32a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="128" x2="156" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="128" x2="244" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="56" width="40" height="144" rx="8" opacity="0.2"/><rect x="160" y="56" width="40" height="144" rx="8" opacity="0.2"/><rect x="56" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,80h24a8,8,0,0,1,8,8v80a8,8,0,0,1-8,8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,176H32a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,120h-8V88a16,16,0,0,0-16-16H208V64a16,16,0,0,0-16-16H168a16,16,0,0,0-16,16v56H104V64A16,16,0,0,0,88,48H64A16,16,0,0,0,48,64v8H32A16,16,0,0,0,16,88v32H8a8,8,0,0,0,0,16h8v32a16,16,0,0,0,16,16H48v8a16,16,0,0,0,16,16H88a16,16,0,0,0,16-16V136h48v56a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16v-8h16a16,16,0,0,0,16-16V136h8a8,8,0,0,0,0-16ZM32,168V88H48v80Zm192,0H208V88h16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="160" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,80h24a8,8,0,0,1,8,8v80a8,8,0,0,1-8,8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,176H32a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="8" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="160" y="56" width="40" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,80h24a8,8,0,0,1,8,8v80a8,8,0,0,1-8,8H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,176H32a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="128" x2="248" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="8" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gear` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gear />
  <Heroicons.gear class="w-4 h-4" />
  <Heroicons.gear solid />
  <Heroicons.gear mini />
  <Heroicons.gear outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gear(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.2-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M211.8,133.1c.3-3.4,0-10.2,0-10.2l16.6-22.1a103.2,103.2,0,0,0-10.2-24.6l-27.3-3.9q-3.5-3.7-7.2-7.2l-3.9-27.3a102.2,102.2,0,0,0-24.6-10.2L133.1,44.2a57.9,57.9,0,0,0-10.2,0L100.8,27.6A103.2,103.2,0,0,0,76.2,37.8L72.3,65.1q-3.7,3.5-7.2,7.2L37.8,76.2a102.2,102.2,0,0,0-10.2,24.6l16.6,22.1c-.2,3.4,0,10.2,0,10.2L27.6,155.2a103.2,103.2,0,0,0,10.2,24.6l27.3,3.9q3.5,3.8,7.2,7.2l3.9,27.3a102.2,102.2,0,0,0,24.6,10.2l22.1-16.6a57.9,57.9,0,0,0,10.2,0l22.1,16.6a103.2,103.2,0,0,0,24.6-10.2l3.9-27.3c2.5-2.3,7.2-7.2,7.2-7.2l27.3-3.9a102.2,102.2,0,0,0,10.2-24.6ZM128,176a48,48,0,1,1,48-48A48,48,0,0,1,128,176Z" opacity="0.2"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.2-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M234.8,150.4l-14.9-19.8c.1-1.8,0-3.7,0-5.1l14.9-19.9a7.8,7.8,0,0,0,1.3-6.9,114.8,114.8,0,0,0-10.9-26.4,8.2,8.2,0,0,0-5.8-4l-24.5-3.5-3.7-3.7-3.5-24.5a8.4,8.4,0,0,0-3.9-5.8,117.5,117.5,0,0,0-26.5-10.9,7.8,7.8,0,0,0-6.9,1.3L130.6,36h-5.2L105.6,21.2a7.8,7.8,0,0,0-6.9-1.3A114.8,114.8,0,0,0,72.3,30.8a8.2,8.2,0,0,0-4,5.8L64.8,61.1l-3.7,3.7L36.6,68.3a8.2,8.2,0,0,0-5.8,4A114.8,114.8,0,0,0,19.9,98.7a7.8,7.8,0,0,0,1.3,6.9l14.9,19.8v5.1L21.2,150.4a7.8,7.8,0,0,0-1.3,6.9,114.8,114.8,0,0,0,10.9,26.4,8.2,8.2,0,0,0,5.8,4l24.5,3.5,3.7,3.7,3.5,24.5a8.2,8.2,0,0,0,4,5.8,114.8,114.8,0,0,0,26.4,10.9,7.6,7.6,0,0,0,2.1.3,7.7,7.7,0,0,0,4.8-1.6L125.4,220h5.2l19.8,14.8a7.8,7.8,0,0,0,6.9,1.3,113,113,0,0,0,26.4-10.9,8.2,8.2,0,0,0,4-5.8l3.5-24.6c1.2-1.2,2.6-2.5,3.6-3.6l24.6-3.5a8.2,8.2,0,0,0,5.8-4,114.8,114.8,0,0,0,10.9-26.4A7.8,7.8,0,0,0,234.8,150.4ZM128,172a44,44,0,1,1,44-44A44,44,0,0,1,128,172Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `broadcast` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.broadcast />
  <Heroicons.broadcast class="w-4 h-4" />
  <Heroicons.broadcast solid />
  <Heroicons.broadcast mini />
  <Heroicons.broadcast outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def broadcast(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M77.1,178.9A71.6,71.6,0,0,1,61.7,156a71.6,71.6,0,0,1,0-56A71.6,71.6,0,0,1,77.1,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,77.1A71.6,71.6,0,0,1,194.3,100a71.6,71.6,0,0,1,0,56,71.6,71.6,0,0,1-15.4,22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48.8,207.2a112.9,112.9,0,0,1-24-35.6,112.4,112.4,0,0,1,0-87.2,112.9,112.9,0,0,1,24-35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M207.2,48.8a112.9,112.9,0,0,1,24,35.6,112.4,112.4,0,0,1,0,87.2,112.9,112.9,0,0,1-24,35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M77.1,178.9A71.6,71.6,0,0,1,61.7,156a71.6,71.6,0,0,1,0-56A71.6,71.6,0,0,1,77.1,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M178.9,77.1A71.6,71.6,0,0,1,194.3,100a71.6,71.6,0,0,1,0,56,71.6,71.6,0,0,1-15.4,22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48.8,207.2a112.9,112.9,0,0,1-24-35.6,112.4,112.4,0,0,1,0-87.2,112.9,112.9,0,0,1,24-35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M207.2,48.8a112.9,112.9,0,0,1,24,35.6,112.4,112.4,0,0,1,0,87.2,112.9,112.9,0,0,1-24,35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" opacity="0.2"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M77.1,178.9A71.6,71.6,0,0,1,61.7,156a71.6,71.6,0,0,1,0-56A71.6,71.6,0,0,1,77.1,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.9,77.1A71.6,71.6,0,0,1,194.3,100a71.6,71.6,0,0,1,0,56,71.6,71.6,0,0,1-15.4,22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48.8,207.2a112.9,112.9,0,0,1-24-35.6,112.4,112.4,0,0,1,0-87.2,112.9,112.9,0,0,1,24-35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M207.2,48.8a112.9,112.9,0,0,1,24,35.6,112.4,112.4,0,0,1,0,87.2,112.9,112.9,0,0,1-24,35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40"/><path d="M82.7,82.7a7.9,7.9,0,0,0,0-11.3,8,8,0,0,0-11.3,0A80,80,0,0,0,54.3,96.9a79.9,79.9,0,0,0,0,62.2,80,80,0,0,0,17.1,25.5,8.3,8.3,0,0,0,5.7,2.3,8,8,0,0,0,5.6-2.3,7.9,7.9,0,0,0,0-11.3A65.4,65.4,0,0,1,69,152.9a64.5,64.5,0,0,1,0-49.8A65.4,65.4,0,0,1,82.7,82.7Z"/><path d="M208,128a78.6,78.6,0,0,0-6.3-31.1,80,80,0,0,0-17.1-25.5,8,8,0,0,0-11.3,0,7.9,7.9,0,0,0,0,11.3A65.4,65.4,0,0,1,187,103.1a64.5,64.5,0,0,1,0,49.8,65.4,65.4,0,0,1-13.7,20.4,7.9,7.9,0,0,0,0,11.3,8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3,80,80,0,0,0,17.1-25.5A78.6,78.6,0,0,0,208,128Z"/><path d="M32.2,168.5a104.1,104.1,0,0,1,0-81,101.3,101.3,0,0,1,22.3-33A8.1,8.1,0,0,0,43.1,43.1,121.8,121.8,0,0,0,17.4,81.3a120.7,120.7,0,0,0,0,93.4,121.8,121.8,0,0,0,25.7,38.2,8.5,8.5,0,0,0,5.7,2.3,8.3,8.3,0,0,0,5.7-2.3,8.1,8.1,0,0,0,0-11.4A101.3,101.3,0,0,1,32.2,168.5Z"/><path d="M238.6,81.3a121.8,121.8,0,0,0-25.7-38.2,8.1,8.1,0,1,0-11.4,11.4A103.5,103.5,0,0,1,232,128a103.5,103.5,0,0,1-30.5,73.5,8.1,8.1,0,0,0,0,11.4,8.3,8.3,0,0,0,5.7,2.3,8.5,8.5,0,0,0,5.7-2.3,121.8,121.8,0,0,0,25.7-38.2,120.7,120.7,0,0,0,0-93.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M77.1,178.9A71.6,71.6,0,0,1,61.7,156a71.6,71.6,0,0,1,0-56A71.6,71.6,0,0,1,77.1,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M178.9,77.1A71.6,71.6,0,0,1,194.3,100a71.6,71.6,0,0,1,0,56,71.6,71.6,0,0,1-15.4,22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48.8,207.2a112.9,112.9,0,0,1-24-35.6,112.4,112.4,0,0,1,0-87.2,112.9,112.9,0,0,1,24-35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M207.2,48.8a112.9,112.9,0,0,1,24,35.6,112.4,112.4,0,0,1,0,87.2,112.9,112.9,0,0,1-24,35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M77.1,178.9A71.6,71.6,0,0,1,61.7,156a71.6,71.6,0,0,1,0-56A71.6,71.6,0,0,1,77.1,77.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M178.9,77.1A71.6,71.6,0,0,1,194.3,100a71.6,71.6,0,0,1,0,56,71.6,71.6,0,0,1-15.4,22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48.8,207.2a112.9,112.9,0,0,1-24-35.6,112.4,112.4,0,0,1,0-87.2,112.9,112.9,0,0,1,24-35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M207.2,48.8a112.9,112.9,0,0,1,24,35.6,112.4,112.4,0,0,1,0,87.2,112.9,112.9,0,0,1-24,35.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `users_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.users_three />
  <Heroicons.users_three class="w-4 h-4" />
  <Heroicons.users_three solid />
  <Heroicons.users_three mini />
  <Heroicons.users_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def users_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,116a59.8,59.8,0,0,1,48,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M12,140a59.8,59.8,0,0,1,48-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.4,216a64.1,64.1,0,0,1,115.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,116A32,32,0,1,1,91.4,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.6,78A32,32,0,1,1,196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M70.4,216a64.1,64.1,0,0,1,115.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M204.5,116.6A60.1,60.1,0,0,1,244,140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M167.1,70.2A32,32,0,1,1,204,115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M52,115A32,32,0,1,1,88.9,70.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M12,140a60.1,60.1,0,0,1,39.5-23.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="40" opacity="0.2"/><circle cx="60" cy="84" r="32" opacity="0.2"/><circle cx="196" cy="84" r="32" opacity="0.2"/><circle cx="128" cy="140" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,116a59.8,59.8,0,0,1,48,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M12,140a59.8,59.8,0,0,1,48-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.4,216a64.1,64.1,0,0,1,115.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,116A32,32,0,1,1,91.4,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.6,78A32,32,0,1,1,196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,140a7.9,7.9,0,0,1-8,8H12a8.2,8.2,0,0,1-7.2-4.4,8.2,8.2,0,0,1,.8-8.4A67.8,67.8,0,0,1,33,113.5a40,40,0,1,1,66.3-37,8.1,8.1,0,0,1-3.8,8.4,64.3,64.3,0,0,0-27.8,33.8A61.6,61.6,0,0,0,64,140Zm186.4-4.8A67.8,67.8,0,0,0,223,113.5a40,40,0,1,0-66.3-37,8.1,8.1,0,0,0,3.8,8.4,64,64,0,0,1,27.8,33.8A61.6,61.6,0,0,1,192,140a7.9,7.9,0,0,0,8,8h44a8,8,0,0,0,6.4-12.8Zm-93.2,42.9a48,48,0,1,0-58.4,0,72.1,72.1,0,0,0-35.6,34.4,7.8,7.8,0,0,0,.5,7.7,7.8,7.8,0,0,0,6.7,3.8H185.6a7.8,7.8,0,0,0,6.7-3.8,7.8,7.8,0,0,0,.5-7.7A72.1,72.1,0,0,0,157.2,178.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M196,116a59.8,59.8,0,0,1,48,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M12,140a59.8,59.8,0,0,1,48-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M70.4,216a64.1,64.1,0,0,1,115.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60,116A32,32,0,1,1,91.4,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M164.6,78A32,32,0,1,1,196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="140" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M196,116a59.8,59.8,0,0,1,48,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M12,140a59.8,59.8,0,0,1,48-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M70.4,216a64.1,64.1,0,0,1,115.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60,116A32,32,0,1,1,91.4,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M164.6,78A32,32,0,1,1,196,116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_left />
  <Heroicons.arrow_square_left class="w-4 h-4" />
  <Heroicons.arrow_square_left solid />
  <Heroicons.arrow_square_left mini />
  <Heroicons.arrow_square_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="121.9 94.1 88 128 121.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="121.9 94.1 88 128 121.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="121.9 94.1 88 128 121.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,208V48a16,16,0,0,0-16-16H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208A16,16,0,0,0,224,208ZM116.3,167.6,82.4,133.7a8,8,0,0,1-1.8-2.7,7.7,7.7,0,0,1-.6-3,8.5,8.5,0,0,1,.6-3.1,8.7,8.7,0,0,1,1.8-2.6l33.9-33.9a8,8,0,0,1,11.3,11.3L107.3,120H168a8,8,0,0,1,0,16H107.3l20.3,20.3a8,8,0,0,1-11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="121.9 94.1 88 128 121.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="121.9 94.1 88 128 121.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `confetti` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.confetti />
  <Heroicons.confetti class="w-4 h-4" />
  <Heroicons.confetti solid />
  <Heroicons.confetti mini />
  <Heroicons.confetti outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def confetti(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.9,207.9,91.7,59.8a8,8,0,0,1,13.2-2.9l94.2,94.2a8,8,0,0,1-2.9,13.2L48.1,218.1A7.9,7.9,0,0,1,37.9,207.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72s0-24,24-24,24-24,24-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.4" y1="198.4" x2="57.6" y2="153.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="16" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="112" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="80" x2="240" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76.8" y1="100.8" x2="155.2" y2="179.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.5,168.6,48.1,218.1a7.9,7.9,0,0,1-10.2-10.2L87.4,71.5a8,8,0,0,1,13.2-2.9l86.8,86.8A8,8,0,0,1,184.5,168.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M164,76s0-24,24-24,24-24,24-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="102.4" y1="198.4" x2="57.6" y2="153.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="16" x2="136" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="120" x2="232" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="84" x2="240" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="74.7" y1="106.7" x2="149.3" y2="181.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M102.4,198.4,57.6,153.6,37.9,207.9a7.9,7.9,0,0,0,10.2,10.2Z"/><path d="M76.8,100.8l78.4,78.4,41-14.9a8,8,0,0,0,2.9-13.2L104.9,56.9a8,8,0,0,0-13.2,2.9Z" opacity="0.2"/><path d="M37.9,207.9,91.7,59.8a8,8,0,0,1,13.2-2.9l94.2,94.2a8,8,0,0,1-2.9,13.2L48.1,218.1A7.9,7.9,0,0,1,37.9,207.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72s0-24,24-24,24-24,24-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.4" y1="198.4" x2="57.6" y2="153.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="16" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="112" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="80" x2="240" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76.8" y1="100.8" x2="155.2" y2="179.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M110.5,51.2a15.7,15.7,0,0,0-14.7-4.3A16,16,0,0,0,84.2,57.1L30.3,205.2h0a16.1,16.1,0,0,0,15,21.4,17.1,17.1,0,0,0,5.5-.9l148.1-53.9a16,16,0,0,0,10.2-11.6,15.7,15.7,0,0,0-4.3-14.7ZM63.8,159.8,83,107l66,66L96.2,192.2ZM160,72a38.2,38.2,0,0,1,3.8-15.6C169.1,45.8,179.1,40,192,40c6.7,0,11-2.3,13.7-7.2a22.3,22.3,0,0,0,2.3-8.9,7.9,7.9,0,0,1,8-7.9,8,8,0,0,1,8,8c0,12.9-8.5,32-32,32-6.7,0-11,2.3-13.7,7.2a22.3,22.3,0,0,0-2.3,8.9,7.9,7.9,0,0,1-8,7.9A8,8,0,0,1,160,72ZM136,40V16a8,8,0,0,1,16,0V40a8,8,0,0,1-16,0Zm101.7,82.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-16-16a8.1,8.1,0,0,1,11.4-11.4Zm4.8-42.7-24,8a7.3,7.3,0,0,1-2.5.4,8,8,0,0,1-2.5-15.6l24-8a8,8,0,0,1,5,15.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.9,207.9,91.7,59.8a8,8,0,0,1,13.2-2.9l94.2,94.2a8,8,0,0,1-2.9,13.2L48.1,218.1A7.9,7.9,0,0,1,37.9,207.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,72s0-24,24-24,24-24,24-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102.4" y1="198.4" x2="57.6" y2="153.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="16" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="112" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="80" x2="240" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76.8" y1="100.8" x2="155.2" y2="179.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.9,207.9,91.7,59.8a8,8,0,0,1,13.2-2.9l94.2,94.2a8,8,0,0,1-2.9,13.2L48.1,218.1A7.9,7.9,0,0,1,37.9,207.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,72s0-24,24-24,24-24,24-24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102.4" y1="198.4" x2="57.6" y2="153.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="16" x2="144" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="112" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="80" x2="240" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76.8" y1="100.8" x2="155.2" y2="179.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gif` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gif />
  <Heroicons.gif class="w-4 h-4" />
  <Heroicons.gif solid />
  <Heroicons.gif mini />
  <Heroicons.gif outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gif(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="72" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="228 72 180 72 180 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,128H96v24a32,32,0,0,1-64,0V104a32,32,0,0,1,63-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="72" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="228 72 180 72 180 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,132H96v20a32,32,0,0,1-64,0V104a32,32,0,0,1,63-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="72" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="228 72 180 72 180 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,128H96v24a32,32,0,0,1-64,0V104a32,32,0,0,1,63-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,64a8,8,0,0,0-8,8V184a8,8,0,0,0,16,0V72A8,8,0,0,0,136,64Z"/><path d="M228,64H180a8,8,0,0,0-8,8V184a8,8,0,0,0,16,0V136h28a8,8,0,0,0,0-16H188V80h40a8,8,0,0,0,0-16Z"/><path d="M96,120H72a8,8,0,0,0,0,16H88v16a24,24,0,0,1-48,0V104a24,24,0,0,1,47.2-6,8,8,0,0,0,15.5-4A40,40,0,0,0,24,104v48a40,40,0,0,0,80,0V128A8,8,0,0,0,96,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="72" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="228 72 180 72 180 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,128H96v24a32,32,0,0,1-64,0V104a32,32,0,0,1,63-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="72" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="228 72 180 72 180 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="128" x2="180" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,128H96v24a32,32,0,0,1-64,0V104a32,32,0,0,1,63-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_eight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_eight />
  <Heroicons.number_square_eight class="w-4 h-4" />
  <Heroicons.number_square_eight solid />
  <Heroicons.number_square_eight mini />
  <Heroicons.number_square_eight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_eight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M137.9,111.9a14,14,0,1,0-19.8,0A14.3,14.3,0,0,0,137.9,111.9Z"/><path d="M128,132a18,18,0,0,0-12.7,30.7,18.4,18.4,0,0,0,25.4,0A18,18,0,0,0,128,132Z"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM152,174a33.9,33.9,0,1,1-48-48,26.6,26.6,0,0,1,3.1-2.6l-.3-.2a29.9,29.9,0,0,1,0-42.4c11.3-11.3,31.1-11.3,42.4,0a29.9,29.9,0,0,1,0,42.4l-.3.2A26.6,26.6,0,0,1,152,126a33.8,33.8,0,0,1,0,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.minus />
  <Heroicons.minus class="w-4 h-4" />
  <Heroicons.minus solid />
  <Heroicons.minus mini />
  <Heroicons.minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136H40a8,8,0,0,1,0-16H216a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_high />
  <Heroicons.hourglass_high class="w-4 h-4" />
  <Heroicons.hourglass_high solid />
  <Heroicons.hourglass_high mini />
  <Heroicons.hourglass_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V64H192V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" opacity="0.2"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,75.6V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V76a16.1,16.1,0,0,0,6.4,12.8L114.7,128,62.4,167.2A16.1,16.1,0,0,0,56,180v36a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V180.4a16.1,16.1,0,0,0-6.4-12.8L141.3,128l52.3-39.6A16.1,16.1,0,0,0,200,75.6ZM184,40V64H72V40Zm0,176H72V180l56-42,56,42.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pencil_line` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pencil_line />
  <Heroicons.pencil_line class="w-4 h-4" />
  <Heroicons.pencil_line solid />
  <Heroicons.pencil_line mini />
  <Heroicons.pencil_line outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pencil_line(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 216 96 216 40.5 160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="156" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="216" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="92" x2="72" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120,136,64l26.3-26.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" opacity="0.2"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 216 96 216 40.5 160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,76.7,179.3,32a15.9,15.9,0,0,0-22.6,0L36.7,152a15.4,15.4,0,0,0-3.6,5.5l-.2.5a16,16,0,0,0-.9,5.3V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.3L224,99.3A16.1,16.1,0,0,0,224,76.7Zm-80-9.4L160.7,84,68,176.7,51.3,160ZM48,208V179.3L76.7,208Zm48-3.3L79.3,188,172,95.3,188.7,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216 216 96 216 40.5 160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216 216 96 216 40.5 160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_down_right />
  <Heroicons.arrow_square_down_right class="w-4 h-4" />
  <Heroicons.arrow_square_down_right solid />
  <Heroicons.arrow_square_down_right mini />
  <Heroicons.arrow_square_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM164,156a8,8,0,0,1-8,8H108a8,8,0,0,1,0-16h28.7L94.3,105.7a8.1,8.1,0,0,1,11.4-11.4L148,136.7V108a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 156 156 156 156 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plus_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plus_circle />
  <Heroicons.plus_circle class="w-4 h-4" />
  <Heroicons.plus_circle solid />
  <Heroicons.plus_circle mini />
  <Heroicons.plus_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plus_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm40,112H136v32a8,8,0,0,1-16,0V136H88a8,8,0,0,1,0-16h32V88a8,8,0,0,1,16,0v32h32a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tote_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tote_simple />
  <Heroicons.tote_simple class="w-4 h-4" />
  <Heroicons.tote_simple solid />
  <Heroicons.tote_simple mini />
  <Heroicons.tote_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tote_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" opacity="0.2"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235,69.3A15.9,15.9,0,0,0,223.1,64H175.3a48,48,0,0,0-94.6,0H32.9A15.9,15.9,0,0,0,21,69.3a16.2,16.2,0,0,0-4,12.5l14.3,128A15.9,15.9,0,0,0,47.2,224H208.8a15.9,15.9,0,0,0,15.9-14.2L239,81.8A16.2,16.2,0,0,0,235,69.3ZM128,40a32.1,32.1,0,0,1,31,24H97A32.1,32.1,0,0,1,128,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flying_saucer` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flying_saucer />
  <Heroicons.flying_saucer class="w-4 h-4" />
  <Heroicons.flying_saucer solid />
  <Heroicons.flying_saucer mini />
  <Heroicons.flying_saucer outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flying_saucer(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168.8" y1="188.7" x2="172.7" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="87.2" y1="188.7" x2="83.3" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,99.9a15.8,15.8,0,0,0,12.4,15.5A191.4,191.4,0,0,0,128,120a191.4,191.4,0,0,0,43.6-4.6A15.8,15.8,0,0,0,184,99.9V96a56,56,0,0,0-56.7-56C96.5,40.4,72,66.1,72,96.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,99.9a15.8,15.8,0,0,0,12.4,15.5A191.4,191.4,0,0,0,128,120a191.4,191.4,0,0,0,43.6-4.6A15.8,15.8,0,0,0,184,99.9V96a56,56,0,0,0-56.7-56C96.5,40.4,72,66.1,72,96.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="170.2" y1="197" x2="172.7" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="200" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="85.8" y1="197" x2="83.3" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M177,68.8h0A56.7,56.7,0,0,1,184,96v3.9a15.8,15.8,0,0,1-12.4,15.5A191.4,191.4,0,0,1,128,120a191.4,191.4,0,0,1-43.6-4.6A15.8,15.8,0,0,1,72,99.9V96.8a56.8,56.8,0,0,1,7.4-28h0C41.9,76.5,16,93,16,112c0,26.5,50.1,48,112,48s112-21.5,112-48C240,93,214.3,76.6,177,68.8Z" opacity="0.2"/><line x1="168.8" y1="188.7" x2="172.7" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="87.2" y1="188.7" x2="83.3" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,99.9a15.8,15.8,0,0,0,12.4,15.5A191.4,191.4,0,0,0,128,120a191.4,191.4,0,0,0,43.6-4.6A15.8,15.8,0,0,0,184,99.9V96a56,56,0,0,0-56.7-56C96.5,40.4,72,66.1,72,96.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180.6,211a8.1,8.1,0,0,1-6.6,9.2h-1.3a8.1,8.1,0,0,1-7.9-6.7l-3.9-23.5a8,8,0,0,1,15.8-2.7ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184Zm-39.5-3.1a7.9,7.9,0,0,0-9.2,6.5L75.4,211a8.1,8.1,0,0,0,6.6,9.2h1.3a8.1,8.1,0,0,0,7.9-6.7l3.9-23.5A8,8,0,0,0,88.5,180.9ZM248,112c0,16.2-13.4,30.9-37.7,41.3C188.2,162.8,159,168,128,168s-60.2-5.2-82.3-14.7C21.4,142.9,8,128.2,8,112c0-8.4,3.7-20.8,21.2-32.5,11.3-7.6,26.9-13.8,45.2-17.9A63.6,63.6,0,0,1,173,50.5a64.7,64.7,0,0,1,9.1,11.2C223.4,71.1,248,89.7,248,112ZM80,96.8v3.1a7.8,7.8,0,0,0,6.1,7.7A189.1,189.1,0,0,0,128,112a189.1,189.1,0,0,0,41.9-4.4,7.8,7.8,0,0,0,6.1-7.7V96a47.5,47.5,0,0,0-6.1-23.4h0a51.7,51.7,0,0,0-8.2-10.7A47.4,47.4,0,0,0,127.4,48C101.2,48.3,80,70.2,80,96.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168.8" y1="188.7" x2="172.7" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="87.2" y1="188.7" x2="83.3" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,99.9a15.8,15.8,0,0,0,12.4,15.5A191.4,191.4,0,0,0,128,120a191.4,191.4,0,0,0,43.6-4.6A15.8,15.8,0,0,0,184,99.9V96a56,56,0,0,0-56.7-56C96.5,40.4,72,66.1,72,96.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168.8" y1="188.7" x2="172.7" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="87.2" y1="188.7" x2="83.3" y2="212.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M177,68.8c37.3,7.8,63,24.2,63,43.2,0,26.5-50.1,48-112,48S16,138.5,16,112c0-19,25.9-35.5,63.4-43.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,99.9a15.8,15.8,0,0,0,12.4,15.5A191.4,191.4,0,0,0,128,120a191.4,191.4,0,0,0,43.6-4.6A15.8,15.8,0,0,0,184,99.9V96a56,56,0,0,0-56.7-56C96.5,40.4,72,66.1,72,96.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_arrow_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_arrow_up />
  <Heroicons.cloud_arrow_up class="w-4 h-4" />
  <Heroicons.cloud_arrow_up solid />
  <Heroicons.cloud_arrow_up mini />
  <Heroicons.cloud_arrow_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_arrow_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="118.1 161.9 152 128 185.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="208" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="118.1 161.9 152 128 185.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="208" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" opacity="0.2"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="118.1 161.9 152 128 185.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="208" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160.1,40A88.1,88.1,0,0,0,81.3,88.7h0a86.6,86.6,0,0,0-9.3,39,8.2,8.2,0,0,1-7.4,8.3,8,8,0,0,1-8.6-8,105,105,0,0,1,5.3-32.9,4,4,0,0,0-4.7-5.2A64,64,0,0,0,8,152c0,35.2,29.8,64,64.9,64H160a88,88,0,0,0,.1-176Zm31.5,111.6a8.3,8.3,0,0,1-5.7,2.3,8,8,0,0,1-5.6-2.3L160,131.3V192a8,8,0,0,1-16,0V131.3l-20.3,20.3a8,8,0,0,1-11.3-11.3l33.9-34a8.1,8.1,0,0,1,11.4,0l33.9,34A8,8,0,0,1,191.6,151.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="118.1 161.9 152 128 185.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="208" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,128a80,80,0,1,1,144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="118.1 161.9 152 128 185.9 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="208" x2="152" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_double_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_double_left />
  <Heroicons.caret_circle_double_left class="w-4 h-4" />
  <Heroicons.caret_circle_double_left solid />
  <Heroicons.caret_circle_double_left mini />
  <Heroicons.caret_circle_double_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_double_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 160 136 128 168 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 160 80 128 112 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 160 136 128 168 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="112 160 80 128 112 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 160 136 128 168 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 160 80 128 112 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a104,104,0,1,0,0,147A103.9,103.9,0,0,0,201.5,54.5Zm-83.8,99.8a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-32-32a8.1,8.1,0,0,1,0-11.4l32-32a8.1,8.1,0,0,1,11.4,11.4L91.3,128Zm56,0a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-32-32a8.1,8.1,0,0,1,0-11.4l32-32a8.1,8.1,0,0,1,11.4,11.4L147.3,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 160 136 128 168 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 160 80 128 112 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 160 136 128 168 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 160 80 128 112 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `twitter_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.twitter_logo />
  <Heroicons.twitter_logo class="w-4 h-4" />
  <Heroicons.twitter_logo solid />
  <Heroicons.twitter_logo mini />
  <Heroicons.twitter_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def twitter_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" opacity="0.2"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M245.7,77.7l-30.2,30.1C209.5,177.7,150.5,232,80,232c-14.5,0-26.5-2.3-35.6-6.8-7.3-3.7-10.3-7.6-11.1-8.8a8,8,0,0,1,3.9-11.9c.2-.1,23.8-9.1,39.1-26.4a108.6,108.6,0,0,1-24.7-24.4c-13.7-18.6-28.2-50.9-19.5-99.1a8.1,8.1,0,0,1,5.5-6.2,8,8,0,0,1,8.1,1.9c.3.4,33.6,33.2,74.3,43.8V88a48.3,48.3,0,0,1,48.6-48,48.2,48.2,0,0,1,41,24H240a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,245.7,77.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88c0-22,18.5-40.3,40.5-40a40,40,0,0,1,36.2,24H240l-32.3,32.3A127.9,127.9,0,0,1,80,224c-32,0-40-12-40-12s32-12,48-36c0,0-64-32-48-120,0,0,40,40,88,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `warning_octagon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.warning_octagon />
  <Heroicons.warning_octagon class="w-4 h-4" />
  <Heroicons.warning_octagon solid />
  <Heroicons.warning_octagon mini />
  <Heroicons.warning_octagon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def warning_octagon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="172" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" opacity="0.2"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.3,80.2,175.8,28.7A16.1,16.1,0,0,0,164.5,24h-73a16.1,16.1,0,0,0-11.3,4.7L28.7,80.2A16.1,16.1,0,0,0,24,91.5v73a16.1,16.1,0,0,0,4.7,11.3l51.5,51.5A16.1,16.1,0,0,0,91.5,232h73a16.1,16.1,0,0,0,11.3-4.7l51.5-51.5a16.1,16.1,0,0,0,4.7-11.3v-73A16.1,16.1,0,0,0,227.3,80.2ZM120,80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cookie` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cookie />
  <Heroicons.cookie class="w-4 h-4" />
  <Heroicons.cookie solid />
  <Heroicons.cookie mini />
  <Heroicons.cookie outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cookie(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="172" r="12"/><circle cx="92" cy="164" r="12"/><circle cx="84" cy="108" r="12"/><circle cx="136" cy="124" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="156" cy="172" r="16"/><circle cx="92" cy="164" r="16"/><circle cx="84" cy="108" r="16"/><circle cx="136" cy="124" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" opacity="0.2"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="172" r="12"/><circle cx="92" cy="164" r="12"/><circle cx="84" cy="108" r="12"/><circle cx="136" cy="124" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.9,114.9a15.8,15.8,0,0,0-13.4-3.1,23.9,23.9,0,0,1-29.3-23.1,16,16,0,0,0-15.9-15.9,23.9,23.9,0,0,1-23.1-29.3A16.1,16.1,0,0,0,128.6,24H128A104.1,104.1,0,0,0,24,128.7a104,104,0,0,0,208-1.3h0A15.7,15.7,0,0,0,225.9,114.9ZM75.5,99.5a12,12,0,1,1,0,17A12,12,0,0,1,75.5,99.5Zm25,73a12,12,0,1,1,0-17A12,12,0,0,1,100.5,172.5Zm27-40a12,12,0,1,1,17,0A12,12,0,0,1,127.5,132.5Zm37,48a12,12,0,1,1,0-17A12,12,0,0,1,164.5,180.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="156" cy="172" r="10"/><circle cx="92" cy="164" r="10"/><circle cx="84" cy="108" r="10"/><circle cx="136" cy="124" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,127.4a95.6,95.6,0,0,1-28.2,68.5c-36.9,36.9-97.3,37.3-134.7.9A96,96,0,0,1,128.6,32a8.1,8.1,0,0,1,7.8,9.8,32,32,0,0,0,30.8,39,8,8,0,0,1,8,8,32,32,0,0,0,39,30.8A8.1,8.1,0,0,1,224,127.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="156" cy="172" r="8"/><circle cx="92" cy="164" r="8"/><circle cx="84" cy="108" r="8"/><circle cx="136" cy="124" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gradient` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gradient />
  <Heroicons.gradient class="w-4 h-4" />
  <Heroicons.gradient solid />
  <Heroicons.gradient mini />
  <Heroicons.gradient outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gradient(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="104" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="144" x2="76" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="144" x2="224" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="56" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="112" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="184" x2="168" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="64" x2="224" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="108" x2="108" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="108" x2="224" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="148" x2="68" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="188" y1="148" x2="224" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="148" x2="148" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="188" x2="52" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="92" y1="188" x2="108" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="188" x2="164" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="204" y1="188" x2="224" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="68" x2="224" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="104" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="144" x2="76" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="144" x2="224" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="56" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="112" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="184" x2="168" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="64" x2="224" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,104a8,8,0,0,1,8-8h80a8,8,0,0,1,0,16H32A8,8,0,0,1,24,104Zm200-8H144a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16ZM84,144a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H76A8,8,0,0,0,84,144Zm140-8H180a8,8,0,0,0,0,16h44a8,8,0,0,0,0-16ZM96,144a8,8,0,0,0,8,8h48a8,8,0,0,0,0-16H104A8,8,0,0,0,96,144ZM56,176H32a8,8,0,0,0,0,16H56a8,8,0,0,0,0-16Zm56,0H88a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Zm56,0H144a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Zm56,0H200a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16ZM32,72H224a8,8,0,0,0,0-16H32a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="104" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="144" x2="76" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="144" x2="224" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="184" x2="56" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="184" x2="112" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="184" x2="168" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="64" x2="224" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="104" x2="112" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="144" x2="76" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="144" x2="224" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="184" x2="56" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="184" x2="112" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="184" x2="168" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="64" x2="224" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `octagon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.octagon />
  <Heroicons.octagon class="w-4 h-4" />
  <Heroicons.octagon solid />
  <Heroicons.octagon mini />
  <Heroicons.octagon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def octagon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" opacity="0.2"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.3,80.2,175.8,28.7A16.1,16.1,0,0,0,164.5,24h-73a16.1,16.1,0,0,0-11.3,4.7L28.7,80.2A16.1,16.1,0,0,0,24,91.5v73a16.1,16.1,0,0,0,4.7,11.3l51.5,51.5A16.1,16.1,0,0,0,91.5,232h73a16.1,16.1,0,0,0,11.3-4.7l51.5-51.5a16.1,16.1,0,0,0,4.7-11.3v-73A16.1,16.1,0,0,0,227.3,80.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164.5,32h-73a7.9,7.9,0,0,0-5.6,2.3L34.3,85.9A7.9,7.9,0,0,0,32,91.5v73a7.9,7.9,0,0,0,2.3,5.6l51.6,51.6a7.9,7.9,0,0,0,5.6,2.3h73a7.9,7.9,0,0,0,5.6-2.3l51.6-51.6a7.9,7.9,0,0,0,2.3-5.6v-73a7.9,7.9,0,0,0-2.3-5.6L170.1,34.3A7.9,7.9,0,0,0,164.5,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_six_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_six_vertical />
  <Heroicons.dots_six_vertical class="w-4 h-4" />
  <Heroicons.dots_six_vertical solid />
  <Heroicons.dots_six_vertical mini />
  <Heroicons.dots_six_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_six_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="60" r="12"/><circle cx="164" cy="60" r="12"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><circle cx="92" cy="196" r="12"/><circle cx="164" cy="196" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="60" r="16"/><circle cx="164" cy="60" r="16"/><circle cx="92" cy="128" r="16"/><circle cx="164" cy="128" r="16"/><circle cx="92" cy="196" r="16"/><circle cx="164" cy="196" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="60" r="12"/><circle cx="164" cy="60" r="12"/><circle cx="92" cy="128" r="12"/><circle cx="164" cy="128" r="12"/><circle cx="92" cy="196" r="12"/><circle cx="164" cy="196" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,60A12,12,0,1,1,92,48,12,12,0,0,1,104,60Zm60,12a12,12,0,1,0-12-12A12,12,0,0,0,164,72ZM92,116a12,12,0,1,0,12,12A12,12,0,0,0,92,116Zm72,0a12,12,0,1,0,12,12A12,12,0,0,0,164,116ZM92,184a12,12,0,1,0,12,12A12,12,0,0,0,92,184Zm72,0a12,12,0,1,0,12,12A12,12,0,0,0,164,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="60" r="10"/><circle cx="164" cy="60" r="10"/><circle cx="92" cy="128" r="10"/><circle cx="164" cy="128" r="10"/><circle cx="92" cy="196" r="10"/><circle cx="164" cy="196" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="92" cy="60" r="8"/><circle cx="164" cy="60" r="8"/><circle cx="92" cy="128" r="8"/><circle cx="164" cy="128" r="8"/><circle cx="92" cy="196" r="8"/><circle cx="164" cy="196" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wave_triangle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wave_triangle />
  <Heroicons.wave_triangle class="w-4 h-4" />
  <Heroicons.wave_triangle solid />
  <Heroicons.wave_triangle mini />
  <Heroicons.wave_triangle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wave_triangle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 76 56 180 200 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 76 56 180 200 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 76 56 180 200 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="24 128 76 56 180 200 232 128 24 128" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,208a7.9,7.9,0,0,1-6.5-3.3L76,69.7l-45.5,63a8,8,0,1,1-13-9.4l52-72a8.1,8.1,0,0,1,13,0l97.5,135,45.5-63a8,8,0,0,1,13,9.4l-52,72A7.9,7.9,0,0,1,180,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 76 56 180 200 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 76 56 180 200 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_tsx` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_tsx />
  <Heroicons.file_tsx class="w-4 h-4" />
  <Heroicons.file_tsx solid />
  <Heroicons.file_tsx mini />
  <Heroicons.file_tsx outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_tsx(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="172" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="164" x2="212" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="164" x2="172" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="220" x2="56" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="164" x2="36" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="172" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44ZM92,168a8,8,0,0,1-8,8H74v40a8,8,0,0,1-16,0V176H48a8,8,0,0,1,0-16H84A8,8,0,0,1,92,168Zm122.4,4.8L200,192l14.4,19.2a8,8,0,0,1-1.6,11.2A7.7,7.7,0,0,1,208,224a8,8,0,0,1-6.4-3.2L190,205.3l-11.6,15.5A8,8,0,0,1,172,224a7.7,7.7,0,0,1-4.8-1.6,8.1,8.1,0,0,1-1.6-11.2L180,192l-14.4-19.2a8.1,8.1,0,0,1,1.6-11.2,8,8,0,0,1,11.2,1.6L190,178.7l11.6-15.5a8,8,0,1,1,12.8,9.6ZM152,204c0,13.1-9.3,21-25,21a33.4,33.4,0,0,1-20.1-6.8h0A7.6,7.6,0,0,1,104,212a8,8,0,0,1,8-8,8.3,8.3,0,0,1,5.1,1.8H117a18.4,18.4,0,0,0,10,3.2c9,0,9-3,9-5s0-.9-1.2-1.6-5.8-2.2-9.2-3.1C117,197,104,193.5,104,180s9.5-21,23-21a33.4,33.4,0,0,1,20.1,6.8h0A7.6,7.6,0,0,1,150,172a8,8,0,0,1-8,8,8.3,8.3,0,0,1-5.1-1.8h.1a18.4,18.4,0,0,0-10-3.2c-4.6,0-7,1.7-7,5v.2c1.1,1.3,6.6,2.8,9.7,3.6C138,186,152,189.7,152,204Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="168" x2="172" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="172" y1="168" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="168" x2="172" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84" y1="168" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="66" y1="216" x2="66" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `equalizer` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.equalizer />
  <Heroicons.equalizer class="w-4 h-4" />
  <Heroicons.equalizer solid />
  <Heroicons.equalizer mini />
  <Heroicons.equalizer outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def equalizer(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="96" x2="76" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="160" x2="76" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="192" x2="76" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="160" x2="148" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="192" x2="148" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="96" x2="220" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="64" x2="220" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="128" x2="220" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="160" x2="220" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="192" x2="220" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="108" x2="72" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36" y1="148" x2="72" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36" y1="192" x2="72" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110" y1="148" x2="146" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110" y1="192" x2="146" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="68" x2="220" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="108" x2="220" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="148" x2="220" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="188" x2="220" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="96" x2="76" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="160" x2="76" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="192" x2="76" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="160" x2="148" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="108" y1="192" x2="148" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="96" x2="220" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="64" x2="220" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="128" x2="220" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="160" x2="220" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="192" x2="220" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M84,96a8,8,0,0,1-8,8H36a8,8,0,0,1,0-16H76A8,8,0,0,1,84,96Zm-8,24H36a8,8,0,0,0,0,16H76a8,8,0,0,0,0-16Zm0,32H36a8,8,0,0,0,0,16H76a8,8,0,0,0,0-16Zm0,32H36a8,8,0,0,0,0,16H76a8,8,0,0,0,0-16Zm72-64H108a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm0,32H108a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm0,32H108a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm72-96H180a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16ZM180,72h40a8,8,0,0,0,0-16H180a8,8,0,0,0,0,16Zm40,48H180a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm0,32H180a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm0,32H180a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="96" x2="76" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="160" x2="76" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="192" x2="76" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="108" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="108" y1="160" x2="148" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="108" y1="192" x2="148" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="96" x2="220" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="64" x2="220" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="128" x2="220" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="160" x2="220" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="192" x2="220" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="96" x2="76" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="128" x2="76" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="160" x2="76" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="192" x2="76" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="108" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="108" y1="160" x2="148" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="108" y1="192" x2="148" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="96" x2="220" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="64" x2="220" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="128" x2="220" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="160" x2="220" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="192" x2="220" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `projector_screen` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.projector_screen />
  <Heroicons.projector_screen class="w-4 h-4" />
  <Heroicons.projector_screen solid />
  <Heroicons.projector_screen mini />
  <Heroicons.projector_screen outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def projector_screen(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="176" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="80" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="40" width="192" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="232" r="24"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="72" width="160" height="112" opacity="0.2"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,64V48a16,16,0,0,0-16-16H40A16,16,0,0,0,24,48V64A16,16,0,0,0,40,80v96H32a8,8,0,0,0,0,16h88v17.4a24,24,0,1,0,16,0V192h88a8,8,0,0,0,0-16h-8V80A16,16,0,0,0,232,64ZM128,240a8,8,0,1,1,8-8A8,8,0,0,1,128,240ZM40,48H216V64H40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `alien` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.alien />
  <Heroicons.alien class="w-4 h-4" />
  <Heroicons.alien solid />
  <Heroicons.alien mini />
  <Heroicons.alien outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def alien(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,112c0,48.6-56,120-88,120S40,160.6,40,112a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104h0a32,32,0,0,1,32,32v4a8,8,0,0,1-8,8h0a32,32,0,0,1-32-32v-4a8,8,0,0,1,8-8Z" transform="translate(184 252) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,104h0a8,8,0,0,1,8,8v4a32,32,0,0,1-32,32h0a8,8,0,0,1-8-8v-4a32,32,0,0,1,32-32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="184" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,112c0,48.6-56,120-88,120S40,160.6,40,112a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,140a24.1,24.1,0,0,1-24-24v-4a24.1,24.1,0,0,1,24,24Z" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,140v-4a24.1,24.1,0,0,1,24-24v4a24.1,24.1,0,0,1-24,24Z" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="184" x2="140" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a88,88,0,0,0-88,88c0,48.6,56,120,88,120s88-71.4,88-120A88,88,0,0,0,128,24ZM112,140a8,8,0,0,1-8,8,32,32,0,0,1-32-32v-4a8,8,0,0,1,8-8,32,32,0,0,1,32,32Zm72-24a32,32,0,0,1-32,32,8,8,0,0,1-8-8v-4a32,32,0,0,1,32-32,8,8,0,0,1,8,8Z" opacity="0.2"/><path d="M216,112c0,48.6-56,120-88,120S40,160.6,40,112a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104h0a32,32,0,0,1,32,32v4a8,8,0,0,1-8,8h0a32,32,0,0,1-32-32v-4a8,8,0,0,1,8-8Z" transform="translate(184 252) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,104h0a8,8,0,0,1,8,8v4a32,32,0,0,1-32,32h0a8,8,0,0,1-8-8v-4A32,32,0,0,1,176,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="184" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,16a96.2,96.2,0,0,0-96,96c0,24,12.6,55.1,33.6,83s44.5,45,62.4,45,41.2-16.8,62.4-45S224,136,224,112A96.2,96.2,0,0,0,128,16ZM64,116v-4a12,12,0,0,1,12-12,36,36,0,0,1,36,36v4a12,12,0,0,1-12,12A36,36,0,0,1,64,116Zm80,84H112a8,8,0,0,1,0-16h32a8,8,0,0,1,0,16Zm48-84a36,36,0,0,1-36,36,12,12,0,0,1-12-12v-4a36,36,0,0,1,36-36,12,12,0,0,1,12,12Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,112c0,48.6-56,120-88,120S40,160.6,40,112a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,104h0a32,32,0,0,1,32,32v4a8,8,0,0,1-8,8h0a32,32,0,0,1-32-32v-4A8,8,0,0,1,80,104Z" transform="translate(184 252) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,104h0a8,8,0,0,1,8,8v4a32,32,0,0,1-32,32h0a8,8,0,0,1-8-8v-4a32,32,0,0,1,32-32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="184" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,112c0,48.6-56,120-88,120S40,160.6,40,112a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,104h0a32,32,0,0,1,32,32v4a8,8,0,0,1-8,8h0a32,32,0,0,1-32-32v-4a8,8,0,0,1,8-8Z" transform="translate(184 252) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,104h0a8,8,0,0,1,8,8v4a32,32,0,0,1-32,32h0a8,8,0,0,1-8-8v-4a32,32,0,0,1,32-32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="184" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `truck` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.truck />
  <Heroicons.truck class="w-4 h-4" />
  <Heroicons.truck solid />
  <Heroicons.truck mini />
  <Heroicons.truck outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def truck(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,80h42.6a7.9,7.9,0,0,1,7.4,5l14,35" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="192" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="68" cy="192" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="164" y1="192" x2="92" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M44,192H24a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H176V171.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,120h64v64a8,8,0,0,1-8,8H212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,80h42.6a7.9,7.9,0,0,1,7.4,5l14,35" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="76" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="192" x2="100" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M52,192H24a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H176V168.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,120h64v64a8,8,0,0,1-8,8H204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,144H16v40a8,8,0,0,0,8,8H44a24,24,0,0,1,48,0h72a24,24,0,0,1,12-20.8Z" opacity="0.2"/><path d="M212,192a24,24,0,0,0-36-20.8V120h64v64a8,8,0,0,1-8,8H212" opacity="0.2"/><path d="M176,80h42.6a7.9,7.9,0,0,1,7.4,5l14,35" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="192" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="68" cy="192" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="164" y1="192" x2="92" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M44,192H24a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H176V171.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,120h64v64a8,8,0,0,1-8,8H212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,119.9v-.2a1.7,1.7,0,0,0-.1-.7v-.3c0-.2-.1-.4-.1-.6v-.2l-.2-.8h-.1l-14-34.8A15.7,15.7,0,0,0,218.6,72H184V64a8,8,0,0,0-8-8H24A16,16,0,0,0,8,72V184a16,16,0,0,0,16,16H37a32,32,0,0,0,62,0h58a32,32,0,0,0,62,0h13a16,16,0,0,0,16-16V120ZM184,88h34.6l9.6,24H184ZM24,72H168v64H24ZM68,208a16,16,0,1,1,16-16A16,16,0,0,1,68,208Zm120,0a16,16,0,1,1,16-16A16,16,0,0,1,188,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,80h42.6a7.9,7.9,0,0,1,7.4,5l14,35" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164" y1="192" x2="92" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M44,192H24a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H176V171.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,120h64v64a8,8,0,0,1-8,8H212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,80h42.6a7.9,7.9,0,0,1,7.4,5l14,35" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164" y1="192" x2="92" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M44,192H24a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H176V171.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,120h64v64a8,8,0,0,1-8,8H212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rocket_launch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rocket_launch />
  <Heroicons.rocket_launch class="w-4 h-4" />
  <Heroicons.rocket_launch solid />
  <Heroicons.rocket_launch mini />
  <Heroicons.rocket_launch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rocket_launch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.1,184.6c-11.4,33.9-56.6,33.9-56.6,33.9s0-45.2,33.9-56.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,105.4,128,173.3,82.7,128l67.9-67.9C176.3,34.4,202,34.7,213,36.3a7.8,7.8,0,0,1,6.7,6.7C221.3,54,221.6,79.7,195.9,105.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,105.4,128,173.3,82.7,128l67.9-67.9C176.3,34.4,202,34.7,213,36.3a7.8,7.8,0,0,1,6.7,6.7C221.3,54,221.6,79.7,195.9,105.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M90.6,192.4c-15.1,26.1-53.1,26.1-53.1,26.1s0-38,26.1-53.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.1,184.6c-11.4,33.9-56.6,33.9-56.6,33.9s0-45.2,33.9-56.6Z" opacity="0.2"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3Z" opacity="0.2"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128Z" opacity="0.2"/><path d="M94.1,184.6c-11.4,33.9-56.6,33.9-56.6,33.9s0-45.2,33.9-56.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,105.4,128,173.3,82.7,128l67.9-67.9C176.3,34.4,202,34.7,213,36.3a7.8,7.8,0,0,1,6.7,6.7C221.3,54,221.6,79.7,195.9,105.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96.6,177a7.9,7.9,0,0,0-10.1,5c-6.6,19.7-27.9,25.8-40.2,27.7,1.9-12.3,8-33.6,27.7-40.2a8,8,0,1,0-5.1-15.1c-16.4,5.4-28.4,18.4-34.8,37.5a91.8,91.8,0,0,0-4.6,26.6,8,8,0,0,0,8,8,91.8,91.8,0,0,0,26.6-4.6c19.1-6.4,32.1-18.4,37.5-34.8A7.9,7.9,0,0,0,96.6,177Z"/><path d="M227.6,41.8a15.7,15.7,0,0,0-13.4-13.4c-11.3-1.7-40.6-2.5-69.2,26.1l-9,8.9H74.7a16.2,16.2,0,0,0-11.3,4.7L31.1,100.5a15.9,15.9,0,0,0-4,15.9,16,16,0,0,0,12.2,11.1l39.5,7.9,41.8,41.8,7.9,39.5a16,16,0,0,0,11.1,12.2,14.7,14.7,0,0,0,4.6.7,15.6,15.6,0,0,0,11.3-4.7l32.4-32.3a16.2,16.2,0,0,0,4.7-11.3V120l8.9-9C230.1,82.4,229.3,53.1,227.6,41.8ZM74.7,79.4H120L80.1,119.3l-37.7-7.5ZM176.6,181.3l-32.4,32.3-7.5-37.7L176.6,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.1,184.6c-11.4,33.9-56.6,33.9-56.6,33.9s0-45.2,33.9-56.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M195.9,105.4,128,173.3,82.7,128l67.9-67.9C176.3,34.4,202,34.7,213,36.3a7.8,7.8,0,0,1,6.7,6.7C221.3,54,221.6,79.7,195.9,105.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.1,184.6c-11.4,33.9-56.6,33.9-56.6,33.9s0-45.2,33.9-56.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M195.9,105.4,128,173.3,82.7,128l67.9-67.9C176.3,34.4,202,34.7,213,36.3a7.8,7.8,0,0,1,6.7,6.7C221.3,54,221.6,79.7,195.9,105.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184.6,116.7v64.6a8,8,0,0,1-2.4,5.6l-32.3,32.4a8,8,0,0,1-13.5-4.1L128,173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M139.3,71.4H74.7a8,8,0,0,0-5.6,2.4L36.7,106.1a8,8,0,0,0,4.1,13.5L82.7,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_doc` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_doc />
  <Heroicons.file_doc class="w-4 h-4" />
  <Heroicons.file_doc solid />
  <Heroicons.file_doc mini />
  <Heroicons.file_doc outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_doc(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M58,216a24,24,0,0,0,0-48H44v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="130" cy="192" rx="22" ry="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M212,210.5a21,21,0,0,1-14,5.5c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M28,220V164H44a28,28,0,0,1,0,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M228,215.6a24.2,24.2,0,0,1-14,4.4c-14.4,0-26-12.5-26-28s11.6-28,26-28a24.2,24.2,0,0,1,14,4.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="130" cy="192" rx="26" ry="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M58,216a24,24,0,0,0,0-48H44v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="130" cy="192" rx="22" ry="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M212,210.5a21,21,0,0,1-14,5.5c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M58,160H44a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8H58a32,32,0,0,0,0-64Zm0,48H52V176h6a16,16,0,0,1,0,32Zm72-48c-16.5,0-30,14.4-30,32s13.5,32,30,32,30-14.4,30-32S146.5,160,130,160Zm0,48c-7.7,0-14-7.2-14-16s6.3-16,14-16,14,7.2,14,16S137.7,208,130,208Zm87.9-2.8a8,8,0,0,1-.5,11.3A29.3,29.3,0,0,1,198,224c-16.5,0-30-14.4-30-32s13.5-32,30-32a29.3,29.3,0,0,1,19.4,7.5,8,8,0,0,1,.5,11.3,7.9,7.9,0,0,1-11.3.6A12.9,12.9,0,0,0,198,176c-7.7,0-14,7.2-14,16s6.3,16,14,16a12.9,12.9,0,0,0,8.6-3.4A7.9,7.9,0,0,1,217.9,205.2ZM48,136H208a8,8,0,0,0,8-8V88a8.1,8.1,0,0,0-2.3-5.7l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88A8,8,0,0,0,48,136ZM152,44l44,44H152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M58,216a24,24,0,0,0,0-48H44v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="130" cy="192" rx="22" ry="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M212,210.5a21,21,0,0,1-14,5.5c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M58,216a24,24,0,0,0,0-48H44v48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="130" cy="192" rx="22" ry="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M212,210.5a21,21,0,0,1-14,5.5c-12.2,0-22-10.7-22-24s9.8-24,22-24a21,21,0,0,1,14,5.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_six />
  <Heroicons.text_h_six class="w-4 h-4" />
  <Heroicons.text_h_six solid />
  <Heroicons.text_h_six mini />
  <Heroicons.text_h_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="191.8" y1="154" x2="224" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="168" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="191.8" y1="154" x2="224" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="216" cy="168" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="191.8" y1="154" x2="224" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="216" cy="168" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0ZM252,168a36,36,0,1,1-67.4-17.5l.3-.6,32.2-54a8,8,0,0,1,13.8,8.2L214.2,132H216A36,36,0,0,1,252,168Zm-16,0a20,20,0,1,0-20,20A20.1,20.1,0,0,0,236,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="191.8" y1="154" x2="224" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="216" cy="168" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="191.8" y1="154" x2="224" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="216" cy="168" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_align_justify` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_align_justify />
  <Heroicons.text_align_justify class="w-4 h-4" />
  <Heroicons.text_align_justify solid />
  <Heroicons.text_align_justify mini />
  <Heroicons.text_align_justify outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_align_justify(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,76H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M216,100H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M216,140H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M216,180H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="108" x2="216" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="188" x2="216" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rows` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rows />
  <Heroicons.rows class="w-4 h-4" />
  <Heroicons.rows solid />
  <Heroicons.rows mini />
  <Heroicons.rows outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rows(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="56" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="56" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="56" rx="8" opacity="0.2"/><rect x="40" y="56" width="176" height="56" rx="8" opacity="0.2"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="56" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,152v40a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V152a16,16,0,0,1,16-16H208A16,16,0,0,1,224,152ZM208,48H48A16,16,0,0,0,32,64v40a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V64A16,16,0,0,0,208,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="56" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="56" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_simple_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_simple_slash />
  <Heroicons.speaker_simple_slash class="w-4 h-4" />
  <Heroicons.speaker_simple_slash solid />
  <Heroicons.speaker_simple_slash mini />
  <Heroicons.speaker_simple_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_simple_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H91.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="228" y1="88" x2="228" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H91.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="118.5 58.1 152 32 152 94.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="104" x2="192" y2="138.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" opacity="0.2"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H91.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,160a8,8,0,0,0,8-8V104a8,8,0,0,0-16,0v48A8,8,0,0,0,192,160Z"/><path d="M224,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,224,80Z"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L73.6,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3A8.1,8.1,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V175.1l42.1,46.3A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3Z"/><path d="M146.1,112.2a7.9,7.9,0,0,0,5.9,2.6,7.4,7.4,0,0,0,2.9-.5,8,8,0,0,0,5.1-7.5V32a8,8,0,0,0-12.9-6.3l-39.9,31a8.1,8.1,0,0,0-1,11.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H91.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112.2 63 152 32 152 106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,154.4V224L80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H91.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_ringing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_ringing />
  <Heroicons.bell_ringing class="w-4 h-4" />
  <Heroicons.bell_ringing solid />
  <Heroicons.bell_ringing mini />
  <Heroicons.bell_ringing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_ringing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.7,17.2a111.1,111.1,0,0,1,40.8,45.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M27.5,62.6A111.1,111.1,0,0,1,68.3,17.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" opacity="0.2"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207.8,112a79.7,79.7,0,0,0-79.2-80H128a79.9,79.9,0,0,0-79.8,80c0,34.3-7.1,53.7-13,63.9a16.2,16.2,0,0,0-.1,16.1A15.9,15.9,0,0,0,49,200H88a40,40,0,0,0,80,0h39a15.9,15.9,0,0,0,13.9-8,16.2,16.2,0,0,0-.1-16.1C214.9,165.7,207.8,146.3,207.8,112ZM128,224a24.1,24.1,0,0,1-24-24h48A24.1,24.1,0,0,1,128,224ZM224.9,73.3a9.3,9.3,0,0,1-3.5.8,7.9,7.9,0,0,1-7.2-4.5,97,97,0,0,0-35-38.8,8,8,0,0,1,8.5-13.6,111.7,111.7,0,0,1,40.8,45.4A8,8,0,0,1,224.9,73.3Zm-190.3.8a9.3,9.3,0,0,1-3.5-.8,8,8,0,0,1-3.6-10.7A111.7,111.7,0,0,1,68.3,17.2a8,8,0,0,1,8.5,13.6,97,97,0,0,0-35,38.8A7.9,7.9,0,0,1,34.6,74.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,112a71.8,71.8,0,1,1,143.6,0h0c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M183.4,24a105,105,0,0,1,38,42.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M34.6,66.1A105,105,0,0,1,72.6,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_wavy_warning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_wavy_warning />
  <Heroicons.circle_wavy_warning class="w-4 h-4" />
  <Heroicons.circle_wavy_warning solid />
  <Heroicons.circle_wavy_warning mini />
  <Heroicons.circle_wavy_warning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_wavy_warning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="80" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="172" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" opacity="0.2"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.9,102.8c-3.8-3.9-7.7-8-9.2-11.5s-1.4-8.7-1.5-14c-.1-9.7-.3-20.8-8-28.5s-18.8-7.9-28.5-8c-5.3-.1-10.7-.2-14-1.5s-7.6-5.4-11.5-9.2C146.3,23.5,138.4,16,128,16s-18.3,7.5-25.2,14.1c-3.9,3.8-8,7.7-11.5,9.2s-8.7,1.4-14,1.5c-9.7.1-20.8.3-28.5,8s-7.9,18.8-8,28.5c-.1,5.3-.2,10.7-1.5,14s-5.4,7.6-9.2,11.5C23.5,109.7,16,117.6,16,128s7.5,18.3,14.1,25.2c3.8,3.9,7.7,8,9.2,11.5s1.4,8.7,1.5,14c.1,9.7.3,20.8,8,28.5s18.8,7.9,28.5,8c5.3.1,10.7.2,14,1.5s7.6,5.4,11.5,9.2c6.9,6.6,14.8,14.1,25.2,14.1s18.3-7.5,25.2-14.1c3.9-3.8,8-7.7,11.5-9.2s8.7-1.4,14-1.5c9.7-.1,20.8-.3,28.5-8s7.9-18.8,8-28.5c.1-5.3.2-10.7,1.5-14s5.4-7.6,9.2-11.5c6.6-6.9,14.1-14.8,14.1-25.2S232.5,109.7,225.9,102.8ZM120,80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="80" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `camera` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.camera />
  <Heroicons.camera class="w-4 h-4" />
  <Heroicons.camera solid />
  <Heroicons.camera mini />
  <Heroicons.camera outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def camera(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="132" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z" opacity="0.2"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,56H180.3L166.7,35.6A7.9,7.9,0,0,0,160,32H96a7.9,7.9,0,0,0-6.7,3.6L75.7,56H48A24.1,24.1,0,0,0,24,80V192a24.1,24.1,0,0,0,24,24H208a24.1,24.1,0,0,0,24-24V80A24.1,24.1,0,0,0,208,56Zm-44,76a36,36,0,1,1-36-36A36,36,0,0,1,164,132Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="132" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="132" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `storefront` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.storefront />
  <Heroicons.storefront class="w-4 h-4" />
  <Heroicons.storefront solid />
  <Heroicons.storefront mini />
  <Heroicons.storefront outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def storefront(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,96v16a32,32,0,0,1-64,0V96" opacity="0.2"/><path d="M224,96v16a32,32,0,0,1-64,0V96" opacity="0.2"/><path d="M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,95.8v-.4a4.3,4.3,0,0,1-.1-.5v-.3c-.1-.2-.1-.4-.2-.6v-.2L217.4,43.6A16.2,16.2,0,0,0,202,32H54A16.2,16.2,0,0,0,38.6,43.6L24.3,93.8V94c-.1.2-.1.4-.2.6v.3a4.3,4.3,0,0,1-.1.5V112a40,40,0,0,0,16,32v64a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V144a40,40,0,0,0,16-32V95.8ZM40,104H88v8a24,24,0,0,1-35.1,21.3,8.7,8.7,0,0,0-1.8-1.1A23.9,23.9,0,0,1,40,112Zm112,8a24,24,0,0,1-48,0v-8h48Zm52.9,20.2a8.7,8.7,0,0,0-1.8,1.1A24,24,0,0,1,168,112v-8h48v8A23.9,23.9,0,0,1,204.9,132.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,139.6V208a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V139.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M54,40H202a8.1,8.1,0,0,1,7.7,5.8L224,96H32L46.3,45.8A8.1,8.1,0,0,1,54,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,96v16a32,32,0,0,1-64,0V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass />
  <Heroicons.hourglass class="w-4 h-4" />
  <Heroicons.hourglass solid />
  <Heroicons.hourglass mini />
  <Heroicons.hourglass outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" opacity="0.2"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" opacity="0.2"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,75.6V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V76a16.1,16.1,0,0,0,6.4,12.8L114.7,128,62.4,167.2A16.1,16.1,0,0,0,56,180v36a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V180.4a16.1,16.1,0,0,0-6.4-12.8L141.3,128l52.3-39.6A16.1,16.1,0,0,0,200,75.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_circle_dots` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_circle_dots />
  <Heroicons.chat_circle_dots class="w-4 h-4" />
  <Heroicons.chat_circle_dots solid />
  <Heroicons.chat_circle_dots mini />
  <Heroicons.chat_circle_dots outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_circle_dots(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="80" cy="128" r="12"/><circle cx="176" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="100" cy="128" r="16"/><circle cx="156" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" opacity="0.2"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="80" cy="128" r="12"/><circle cx="176" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,0,0,36.8,178l-8.5,29.9a16.1,16.1,0,0,0,4,15.8,15.8,15.8,0,0,0,15.7,4l30-8.5A104,104,0,1,0,128,24ZM80,140a12,12,0,1,1,12-12A12,12,0,0,1,80,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,176,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="10"/><circle cx="176" cy="128" r="10"/><circle cx="80" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="8"/><circle cx="80" cy="128" r="8"/><circle cx="176" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thermometer_cold` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thermometer_cold />
  <Heroicons.thermometer_cold class="w-4 h-4" />
  <Heroicons.thermometer_cold solid />
  <Heroicons.thermometer_cold mini />
  <Heroicons.thermometer_cold outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thermometer_cold(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="212" y1="48" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.6" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.2" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.8" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="242.4" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="188" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="176" x2="108" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="48" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="181.6" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="193.2" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="230.8" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="242.4" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,154.8V56a40,40,0,0,1,80,0v98.8h0a52,52,0,1,1-80,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="212" y1="48" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.6" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.2" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.8" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="242.4" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,147h0V48a32,32,0,0,0-64,0v99h0a52,52,0,1,0,64,0Zm-32,61a20,20,0,1,1,20-20A20.1,20.1,0,0,1,120,208Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M244.9,77.7l-20,6.5,12.4,17a8,8,0,0,1-1.8,11.2,8.1,8.1,0,0,1-11.2-1.8L212,93.6l-12.3,17a8.1,8.1,0,0,1-11.2,1.8,8,8,0,0,1-1.8-11.2l12.4-17-20-6.5A7.9,7.9,0,0,1,174,67.6a7.8,7.8,0,0,1,10-5.1L204,69V48a8,8,0,0,1,16,0V69l20-6.5a7.8,7.8,0,0,1,10,5.1A7.9,7.9,0,0,1,244.9,77.7ZM180,188a60,60,0,0,1-120,0,59.4,59.4,0,0,1,20-44.7V48a40,40,0,0,1,80,0v95.3A59.4,59.4,0,0,1,180,188ZM96,48v56h48V48a24,24,0,0,0-48,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="168" x2="120" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="212" y1="48" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="181.6" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="193.2" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="230.8" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="242.4" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="168" x2="120" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="212" y1="48" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="181.6" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="193.2" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="230.8" y1="105.9" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="242.4" y1="70.1" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_bar_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_bar_horizontal />
  <Heroicons.chart_bar_horizontal class="w-4 h-4" />
  <Heroicons.chart_bar_horizontal solid />
  <Heroicons.chart_bar_horizontal mini />
  <Heroicons.chart_bar_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_bar_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 56 168 56 168 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="104" width="176" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 152 136 200 40 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 56 168 56 168 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="104" width="176" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="136 152 136 200 40 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="104" width="176" height="48" opacity="0.2"/><line x1="40" y1="216" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 56 168 56 168 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="104" width="176" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 152 136 200 40 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,96H176V56a8,8,0,0,0-8-8H48V40a8,8,0,0,0-16,0V216a8,8,0,0,0,16,0v-8h88a8,8,0,0,0,8-8V160h72a8,8,0,0,0,8-8V104A8,8,0,0,0,216,96ZM160,64V96H48V64ZM128,192H48V160h80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 56 168 56 168 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="104" width="176" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="136 152 136 200 40 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 56 168 56 168 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="104" width="176" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="136 152 136 200 40 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link_break` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link_break />
  <Heroicons.link_break class="w-4 h-4" />
  <Heroicons.link_break solid />
  <Heroicons.link_break mini />
  <Heroicons.link_break outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link_break(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="72" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="160" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="96" x2="48" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="160" x2="184" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71,128.4,59.7,139.7a40,40,0,0,0,56.6,56.6L127.6,185" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185,127.6l11.3-11.3a40,40,0,0,0-56.6-56.6L128.4,71" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="68" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="160" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="96" x2="48" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="160" x2="188" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M67,132.4l-7.3,7.3a40,40,0,0,0,56.6,56.6l7.3-7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M189,123.6l7.3-7.3a40,40,0,0,0-56.6-56.6L132.4,67" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="72" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="160" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="96" x2="48" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="160" x2="184" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71,128.4,59.7,139.7a40,40,0,0,0,56.6,56.6L127.6,185" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185,127.6l11.3-11.3a40,40,0,0,0-56.6-56.6L128.4,71" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,72V48a8,8,0,0,1,16,0V72a8,8,0,0,1-16,0Zm72,104a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V184A8,8,0,0,0,160,176ZM48,104H72a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm160,48H184a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16Zm-86.1,27.3-11.3,11.3a32,32,0,0,1-45.2-45.2l11.3-11.3a8.1,8.1,0,0,0,0-11.4,8,8,0,0,0-11.3,0L54.1,134.1a47.9,47.9,0,1,0,67.8,67.8l11.4-11.3a8,8,0,0,0,0-11.3A8.1,8.1,0,0,0,121.9,179.3ZM190.6,65.4a31.9,31.9,0,0,1,0,45.2l-11.3,11.3a8.1,8.1,0,0,0,0,11.4,8.3,8.3,0,0,0,5.7,2.3,8,8,0,0,0,5.6-2.3l11.3-11.4a47.9,47.9,0,0,0-67.8-67.8L122.7,65.4a8,8,0,0,0,0,11.3,8.1,8.1,0,0,0,11.4,0l11.3-11.3A31.9,31.9,0,0,1,190.6,65.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="72" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="160" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="96" x2="48" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="160" x2="184" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M71,128.4,59.7,139.7a40,40,0,0,0,56.6,56.6L127.6,185" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M185,127.6l11.3-11.3a40,40,0,0,0-56.6-56.6L128.4,71" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="72" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="160" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="96" x2="48" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="160" x2="184" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M71,128.4,59.7,139.7a40,40,0,0,0,56.6,56.6L127.6,185" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M185,127.6l11.3-11.3a40,40,0,0,0-56.6-56.6L128.4,71" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `globe_hemisphere_east` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.globe_hemisphere_east />
  <Heroicons.globe_hemisphere_east class="w-4 h-4" />
  <Heroicons.globe_hemisphere_east solid />
  <Heroicons.globe_hemisphere_east mini />
  <Heroicons.globe_hemisphere_east outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def globe_hemisphere_east(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M49.6,183.4l11.7-7.1a8,8,0,0,0,3.8-6.8l.2-36.1a7.7,7.7,0,0,1,1.3-4.2L86.4,98.1a8.1,8.1,0,0,1,11.5-2.2l19.6,14.2a8.6,8.6,0,0,0,5.8,1.5l31.5-4.3a7.8,7.8,0,0,0,4.9-2.7L181.9,79a8.1,8.1,0,0,0,1.9-5.6l-1.1-24.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M49.6,183.4l12.1-7.3a8.4,8.4,0,0,0,3.8-6.1l3.7-37a7.3,7.3,0,0,1,1.2-3.5L90.1,98.6A8,8,0,0,1,102,96.8l15.4,12.9a7.8,7.8,0,0,0,6.2,1.8l31.2-4.2a7.8,7.8,0,0,0,4.9-2.7L181.9,79a8.1,8.1,0,0,0,1.9-5.6l-1.1-24.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8h.1a97,97,0,0,1-29.2,38.1Z" opacity="0.2"/><path d="M49.6,183.4A96,96,0,0,1,182.7,49.1h0l1.1,24.3a8.1,8.1,0,0,1-1.9,5.6l-22.2,25.6a7.8,7.8,0,0,1-4.9,2.7l-31.5,4.3a8.6,8.6,0,0,1-5.8-1.5L97.9,95.9a8.1,8.1,0,0,0-11.5,2.2L66.6,129.2a7.7,7.7,0,0,0-1.3,4.2l-.2,36.1a8,8,0,0,1-3.8,6.8l-11.7,7.1Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M49.6,183.4l11.7-7.1a8,8,0,0,0,3.8-6.8l.2-36.1a7.7,7.7,0,0,1,1.3-4.2L86.4,98.1a8.1,8.1,0,0,1,11.5-2.2l19.6,14.2a8.6,8.6,0,0,0,5.8,1.5l31.5-4.3a7.8,7.8,0,0,0,4.9-2.7L181.9,79a8.1,8.1,0,0,0,1.9-5.6l-1.1-24.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.5,169.2a6.1,6.1,0,0,0,.5-1.2A104,104,0,0,0,187.8,42.9l-1.2-.7A103,103,0,0,0,128,24,104,104,0,0,0,42.6,187.3v.2a10.5,10.5,0,0,0,.8,1.1,104,104,0,0,0,147.8,21.9l1.4-1.1A105.3,105.3,0,0,0,223.5,169.2Zm-162,16.4,3.9-2.4a15.8,15.8,0,0,0,7.7-13.6l.2-33.8a8.3,8.3,0,0,1,1.3-4.3l14-22a8,8,0,0,1,11.4-2.2l12.8,9.3a16.5,16.5,0,0,0,11.6,2.9l31.4-4.3a15.8,15.8,0,0,0,10-5.4l22.1-25.6A15.4,15.4,0,0,0,191.8,73l-.2-5.8A87.7,87.7,0,0,1,216,128a86.4,86.4,0,0,1-3.2,23.4l-15.9-14.6a16.1,16.1,0,0,0-16.9-3l-30.5,12.7a16.1,16.1,0,0,0-9.7,12.4l-2.4,16.2A16.2,16.2,0,0,0,149.2,193l21.5,5.6,4,4a88,88,0,0,1-113.2-17Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M49.6,183.4l11.7-7.1a8,8,0,0,0,3.8-6.8l.2-36.1a7.7,7.7,0,0,1,1.3-4.2L86.4,98.1a8.1,8.1,0,0,1,11.5-2.2l19.6,14.2a8.6,8.6,0,0,0,5.8,1.5l31.5-4.3a7.8,7.8,0,0,0,4.9-2.7L181.9,79a8.1,8.1,0,0,0,1.9-5.6l-1.1-24.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M49.6,183.4l11.7-7.1a8,8,0,0,0,3.8-6.8l.2-36.1a7.7,7.7,0,0,1,1.3-4.2L86.4,98.1a8.1,8.1,0,0,1,11.5-2.2l19.6,14.2a8.6,8.6,0,0,0,5.8,1.5l31.5-4.3a7.8,7.8,0,0,0,4.9-2.7L181.9,79a8.1,8.1,0,0,0,1.9-5.6l-1.1-24.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M187.1,203.7l-10.8-10.8a8.2,8.2,0,0,0-3.6-2.1l-21.5-5.6a8,8,0,0,1-5.8-8.9l2.3-16.2a8.2,8.2,0,0,1,4.9-6.2L183,141.2a8,8,0,0,1,8.5,1.5l24.9,22.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `video_camera` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.video_camera />
  <Heroicons.video_camera class="w-4 h-4" />
  <Heroicons.video_camera solid />
  <Heroicons.video_camera mini />
  <Heroicons.video_camera outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def video_camera(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184 112 240 80 240 176 184 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="184 112 240 80 240 176 184 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" opacity="0.2"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184 112 240 80 240 176 184 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,92v96a16,16,0,0,1-16,16H48A40,40,0,0,1,8,164V68A16,16,0,0,1,24,52H136A40,40,0,0,1,176,92Zm68-18.9a7.7,7.7,0,0,0-8,0L196,95.9a8,8,0,0,0-4,7v50.2a8,8,0,0,0,4,7l40,22.8a8.3,8.3,0,0,0,4,1.1,8,8,0,0,0,4-1.1,7.8,7.8,0,0,0,4-6.9V80A7.8,7.8,0,0,0,244,73.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="184 112 240 80 240 176 184 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,60H152a32,32,0,0,1,32,32v96a8,8,0,0,1-8,8H48a32,32,0,0,1-32-32V68A8,8,0,0,1,24,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="184 112 240 80 240 176 184 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `activity` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.activity />
  <Heroicons.activity class="w-4 h-4" />
  <Heroicons.activity solid />
  <Heroicons.activity mini />
  <Heroicons.activity outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def activity(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 56 128 96 40 160 208 200 128 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 56 128 96 40 160 208 200 128 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 56 128 96 40 160 208 200 128 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,216h-.4a8.1,8.1,0,0,1-7.1-5.2L95.4,60.8,63.3,131.3A8,8,0,0,1,56,136H24a8,8,0,0,1,0-16H50.9L88.7,36.7A8.2,8.2,0,0,1,96.3,32a8,8,0,0,1,7.2,5.2L161,188.1l31.8-63.7A8.2,8.2,0,0,1,200,120h32a8,8,0,0,1,0,16H204.9l-37.7,75.6A8.2,8.2,0,0,1,160,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 56 128 96 40 160 208 200 128 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="24 128 56 128 96 40 160 208 200 128 232 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_down_left />
  <Heroicons.arrow_circle_down_left class="w-4 h-4" />
  <Heroicons.arrow_circle_down_left solid />
  <Heroicons.arrow_circle_down_left mini />
  <Heroicons.arrow_circle_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="100 108 100 156 148 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="100 108 100 156 148 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="100 108 100 156 148 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm33.7,81.7L119.3,148H148a8,8,0,0,1,0,16H100a8.5,8.5,0,0,1-3.1-.6,8.2,8.2,0,0,1-4.3-4.3A8.5,8.5,0,0,1,92,156V108a8,8,0,0,1,16,0v28.7l42.3-42.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="100 108 100 156 148 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="100 108 100 156 148 156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paperclip` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paperclip />
  <Heroicons.paperclip class="w-4 h-4" />
  <Heroicons.paperclip solid />
  <Heroicons.paperclip mini />
  <Heroicons.paperclip outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paperclip(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80,76.7,164.7a16,16,0,0,0,22.6,22.6L198.6,86.6a32,32,0,0,0-45.2-45.2L54.1,142.1a47.9,47.9,0,0,0,67.8,67.8L204,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,176l95.8-92.2a28,28,0,0,0-39.6-39.6L54.1,142.1a47.9,47.9,0,0,0,67.8,67.8L204,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80,76.7,164.7a16,16,0,0,0,22.6,22.6L198.6,86.6a32,32,0,0,0-45.2-45.2L54.1,142.1a47.9,47.9,0,0,0,67.8,67.8L204,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M209.7,122.3a8.1,8.1,0,0,1-.1,11.4l-82,81.9a56,56,0,0,1-79.2-79.2L147.7,35.8a40,40,0,1,1,56.6,56.5L105,192.9A23.8,23.8,0,0,1,88,200a24,24,0,0,1-17-41l83.3-84.6a8,8,0,1,1,11.4,11.2L82.4,170.3A8,8,0,0,0,80,176a8.1,8.1,0,0,0,13.7,5.7L192.9,81A23.8,23.8,0,0,0,200,64a24,24,0,0,0-41-17L59.8,147.7a40,40,0,1,0,56.5,56.6l82-82A8.1,8.1,0,0,1,209.7,122.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80,76.7,164.7a16,16,0,0,0,22.6,22.6L198.6,86.6a32,32,0,0,0-45.2-45.2L54.1,142.1a47.9,47.9,0,0,0,67.8,67.8L204,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80,76.7,164.7a16,16,0,0,0,22.6,22.6L198.6,86.6a32,32,0,0,0-45.2-45.2L54.1,142.1a47.9,47.9,0,0,0,67.8,67.8L204,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_center_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_center_vertical />
  <Heroicons.align_center_vertical class="w-4 h-4" />
  <Heroicons.align_center_vertical solid />
  <Heroicons.align_center_vertical mini />
  <Heroicons.align_center_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_center_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="128" x2="112" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="108" y="100" width="128" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="56" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="204" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="52" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="128" x2="108" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="112" y="100" width="128" height="56" rx="8" transform="translate(304 -48) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="52" y="40" width="56" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="108" y="100" width="128" height="56" rx="8" transform="translate(300 -44) rotate(90)" opacity="0.2"/><rect x="56" y="40" width="56" height="176" rx="8" opacity="0.2"/><line x1="56" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="128" x2="112" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="108" y="100" width="128" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="56" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128a8,8,0,0,1-8,8H208v48a16,16,0,0,1-16,16H152a16,16,0,0,1-16-16V136H120v72a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V136H32a8,8,0,0,1,0-16H48V48A16,16,0,0,1,64,32h40a16,16,0,0,1,16,16v72h16V72a16,16,0,0,1,16-16h40a16,16,0,0,1,16,16v48h16A8,8,0,0,1,232,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="128" x2="112" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="108" y="100" width="128" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="40" width="56" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="128" x2="32" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="128" x2="112" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="108" y="100" width="128" height="56" rx="8" transform="translate(300 -44) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="40" width="56" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `envelope` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.envelope />
  <Heroicons.envelope class="w-4 h-4" />
  <Heroicons.envelope solid />
  <Heroicons.envelope mini />
  <Heroicons.envelope outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def envelope(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.5" y1="128" x2="34.5" y2="197.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="221.5" y1="197.7" x2="145.5" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a0,0,0,0,1,0,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110.5" y1="128" x2="34.5" y2="197.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="221.5" y1="197.7" x2="145.5" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="224 56 128 144 32 56 224 56" opacity="0.2"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.5" y1="128" x2="34.5" y2="197.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="221.5" y1="197.7" x2="145.5" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM98.7,128,40,181.8V74.2Zm11.8,10.9,12.1,11a8,8,0,0,0,10.8,0l12.1-11L203.4,192H52.6ZM157.3,128,216,74.2V181.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110.5" y1="128" x2="34.5" y2="197.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="221.5" y1="197.7" x2="145.5" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110.5" y1="128" x2="34.5" y2="197.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="221.5" y1="197.7" x2="145.5" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `door` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.door />
  <Heroicons.door class="w-4 h-4" />
  <Heroicons.door solid />
  <Heroicons.door mini />
  <Heroicons.door outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def door(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="224" x2="232" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="224" x2="232" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="156" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224Z" opacity="0.2"/><line x1="24" y1="224" x2="232" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,216H208V40a16,16,0,0,0-16-16H64A16,16,0,0,0,48,40V216H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16Zm-68-76a12,12,0,1,1,12-12A12,12,0,0,1,164,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="224" x2="232" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="156" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="224" x2="232" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,224V40a8,8,0,0,1,8-8H192a8,8,0,0,1,8,8V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="156" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_lock` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_lock />
  <Heroicons.folder_lock class="w-4 h-4" />
  <Heroicons.folder_lock solid />
  <Heroicons.folder_lock mini />
  <Heroicons.folder_lock outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_lock(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,164V148a20,20,0,0,1,40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M98.4,46.7,128,80H32V52a8,8,0,0,1,8-8H92.4A8,8,0,0,1,98.4,46.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" opacity="0.2"/><rect x="152" y="164" width="72" height="44" opacity="0.2"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,156h-8v-4a28,28,0,0,0-56,0v4h-8a8,8,0,0,0-8,8v44a8,8,0,0,0,8,8h72a8,8,0,0,0,8-8V164A8,8,0,0,0,224,156Zm-48-4a12,12,0,0,1,24,0v4H176Zm40-80H131.3L104,44.7A15.9,15.9,0,0,0,92.7,40H40A16,16,0,0,0,24,56V200.6A15.4,15.4,0,0,0,39.4,216h73.2a8,8,0,1,0,0-16H40V88H216v16a8,8,0,0,0,16,0V88A16,16,0,0,0,216,72ZM92.7,56l16,16H40V56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paper_plane_tilt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paper_plane_tilt />
  <Heroicons.paper_plane_tilt class="w-4 h-4" />
  <Heroicons.paper_plane_tilt solid />
  <Heroicons.paper_plane_tilt mini />
  <Heroicons.paper_plane_tilt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paper_plane_tilt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.9" y1="145.1" x2="156.1" y2="99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110.9" y1="145.1" x2="156.1" y2="99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" opacity="0.2"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.9" y1="145.1" x2="156.1" y2="99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.7,48.3,175.3,234.2a15.9,15.9,0,0,1-14.1,11.6h-1.4a16,16,0,0,1-14.4-9.1l-35.7-75.4a4.1,4.1,0,0,1,.8-4.6l51.3-51.3a8,8,0,1,0-11.3-11.3L99.2,145.5a4.1,4.1,0,0,1-4.6.8l-75-35.5a16.6,16.6,0,0,1-9.5-15.6A15.9,15.9,0,0,1,21.8,80.7L208.1,28.2a16,16,0,0,1,17.7,6.5A16.7,16.7,0,0,1,227.7,48.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110.9" y1="145.1" x2="156.1" y2="99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.3,35.9,23.9,88.4a8,8,0,0,0-1.2,15l85.6,40.5a7.8,7.8,0,0,1,3.8,3.8l40.5,85.6a8,8,0,0,0,15-1.2L220.1,45.7A7.9,7.9,0,0,0,210.3,35.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110.9" y1="145.1" x2="156.1" y2="99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tag` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tag />
  <Heroicons.tag class="w-4 h-4" />
  <Heroicons.tag solid />
  <Heroicons.tag mini />
  <Heroicons.tag outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tag(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="84" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="84" cy="84" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" opacity="0.2"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="84" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,126.9,135.5,22.4A15.9,15.9,0,0,0,121.1,18L40.4,34.2a7.9,7.9,0,0,0-6.2,6.2L18,121.1a15.9,15.9,0,0,0,4.4,14.4L126.9,240a15.9,15.9,0,0,0,22.6,0L240,149.5a15.9,15.9,0,0,0,0-22.6ZM84,96A12,12,0,1,1,96,84,12,12,0,0,1,84,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="84" cy="84" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.7,25.9,42,42,25.9,122.7a8,8,0,0,0,2.2,7.2L132.5,234.3a7.9,7.9,0,0,0,11.3,0l90.5-90.5a7.9,7.9,0,0,0,0-11.3L129.9,28.1A8,8,0,0,0,122.7,25.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="84" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_down />
  <Heroicons.arrow_square_down class="w-4 h-4" />
  <Heroicons.arrow_square_down solid />
  <Heroicons.arrow_square_down mini />
  <Heroicons.arrow_square_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM167.6,139.7l-33.9,33.9a8,8,0,0,1-2.7,1.8,7.7,7.7,0,0,1-3,.6,8.5,8.5,0,0,1-3.1-.6,8.7,8.7,0,0,1-2.6-1.8L88.4,139.7a8,8,0,0,1,11.3-11.3L120,148.7V88a8,8,0,0,1,16,0v60.7l20.3-20.3a8,8,0,0,1,11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_zip` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_zip />
  <Heroicons.file_zip class="w-4 h-4" />
  <Heroicons.file_zip solid />
  <Heroicons.file_zip mini />
  <Heroicons.file_zip outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_zip(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,200h16a16,16,0,0,0,0-32H168v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 88 168 56 216 88 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,204h16a20,20,0,0,0,0-40H176v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="164" x2="128" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="44 164 84 164 44 220 84 220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,200h16a16,16,0,0,0,0-32H168v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 88 168 56 216 88 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,160H168a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32h-8V176h8a8,8,0,0,1,0,16ZM96,216a8,8,0,0,1-8,8H56a8,8,0,0,1-7.1-4.2,8.3,8.3,0,0,1,.4-8.2L73.1,176H56a8,8,0,0,1,0-16H88a8,8,0,0,1,7.1,4.2,8.3,8.3,0,0,1-.4,8.2L70.9,208H88A8,8,0,0,1,96,216Zm40-48v48a8,8,0,0,1-16,0V168a8,8,0,0,1,16,0Zm77.7-85.7-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,200h16a16,16,0,0,0,0-32H168v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 168 88 168 56 216 88 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,200h16a16,16,0,0,0,0-32H168v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 168 88 168 56 216 88 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `police_car` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.police_car />
  <Heroicons.police_car class="w-4 h-4" />
  <Heroicons.police_car solid />
  <Heroicons.police_car mini />
  <Heroicons.police_car outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def police_car(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="32" x2="152" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="12" y1="124" x2="244" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M228,124,194.4,71.7a8.1,8.1,0,0,0-6.8-3.7H68.4a8.1,8.1,0,0,0-6.8,3.7L28,124v48H228Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="28" x2="152" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M228,172v32a8,8,0,0,1-8,8H196a8,8,0,0,1-8-8V172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,172v32a8,8,0,0,1-8,8H36a8,8,0,0,1-8-8V172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120Z" opacity="0.2"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="32" x2="152" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,32a8,8,0,0,1,8-8h48a8,8,0,0,1,0,16H104A8,8,0,0,1,96,32Zm152,88a8,8,0,0,1-8,8h-8v80a16,16,0,0,1-16,16H192a16,16,0,0,1-16-16V192H80v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V128H16a8,8,0,0,1,0-16H27.4L54.8,64.1A15.9,15.9,0,0,1,68.6,56H187.4a15.9,15.9,0,0,1,13.8,8.1L228.6,112H240A8,8,0,0,1,248,120ZM88,152a8,8,0,0,0-8-8H64a8,8,0,0,0,0,16H80A8,8,0,0,0,88,152Zm112,0a8,8,0,0,0-8-8H176a8,8,0,0,0,0,16h16A8,8,0,0,0,200,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="32" x2="152" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="32" x2="152" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_fog` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_fog />
  <Heroicons.cloud_fog class="w-4 h-4" />
  <Heroicons.cloud_fog solid />
  <Heroicons.cloud_fog mini />
  <Heroicons.cloud_fog outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_fog(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="192" x2="72" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="160" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="104" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="200" x2="72" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="240" x2="104" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" opacity="0.2"/><line x1="120" y1="192" x2="72" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="160" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="104" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224a8,8,0,0,1-8,8H104a8,8,0,0,1,0-16h56A8,8,0,0,1,168,224Zm-40-32a8,8,0,0,0-8-8H72a8,8,0,0,0,0,16h48A8,8,0,0,0,128,192Zm56-8H160a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16ZM159.3,16.1A76.1,76.1,0,0,0,85,64.8h0a76.4,76.4,0,0,0-5,26.9,8.3,8.3,0,0,1-7.4,8.3A8,8,0,0,1,64,92a88.2,88.2,0,0,1,2.5-21.1,4,4,0,0,0-5-4.8A52,52,0,0,0,24,116.3C24.2,145,48.1,168,76.8,168H156a76,76,0,0,0,3.3-151.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="192" x2="72" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="192" x2="160" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="224" x2="104" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="192" x2="72" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="192" x2="160" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="224" x2="104" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `car_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.car_simple />
  <Heroicons.car_simple class="w-4 h-4" />
  <Heroicons.car_simple solid />
  <Heroicons.car_simple mini />
  <Heroicons.car_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def car_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,216H192a8,8,0,0,1-8-8V184H72v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120L61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120v88A8,8,0,0,1,216,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,216H192a8,8,0,0,1-8-8V184H72v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120L61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120v88A8,8,0,0,1,216,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120,61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120Z" opacity="0.2"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,216H192a8,8,0,0,1-8-8V184H72v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120L61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120v88A8,8,0,0,1,216,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,112H229.2L201.4,49.5A15.9,15.9,0,0,0,186.8,40H69.2a15.9,15.9,0,0,0-14.6,9.5L26.8,112H16a8,8,0,0,0,0,16h8v80a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V192h96v16a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V128h8a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,216H192a8,8,0,0,1-8-8V184H72v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120L61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120v88A8,8,0,0,1,216,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,216H192a8,8,0,0,1-8-8V184H72v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120L61.9,52.8A8,8,0,0,1,69.2,48H186.8a8,8,0,0,1,7.3,4.8L224,120v88A8,8,0,0,1,216,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_strikethrough` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_strikethrough />
  <Heroicons.text_strikethrough class="w-4 h-4" />
  <Heroicons.text_strikethrough solid />
  <Heroicons.text_strikethrough mini />
  <Heroicons.text_strikethrough outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_strikethrough(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76.3,96a25.3,25.3,0,0,1-1.2-8c0-22.1,22-40,52.9-40,23.8,0,42.3,10.6,49.5,25.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168c0,22.1,25.1,40,56,40s56-17.9,56-40c0-23.8-21.6-33-45.6-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M75.1,88c0-22.1,22-40,52.9-40,23.8,0,42.3,10.6,49.5,25.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,168c0,22.1,25.1,40,56,40s56-17.9,56-40c0-23.8-21.6-33-45.6-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76.3,96a25.3,25.3,0,0,1-1.2-8c0-22.1,22-40,52.9-40,23.8,0,42.3,10.6,49.5,25.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168c0,22.1,25.1,40,56,40s56-17.9,56-40c0-23.8-21.6-33-45.6-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H175.9c9.2,7.1,16.1,17.2,16.1,32s-7,25.7-19.8,34.8S144.6,216,128,216s-32.3-4.7-44.2-13.2S64,181.3,64,168a8,8,0,0,1,16,0c0,17.3,22,32,48,32s48-14.7,48-32c0-14.9-10.5-23.6-38.8-32H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM76.3,104a6.9,6.9,0,0,0,2.5-.4,8,8,0,0,0,5.1-10.1,19.2,19.2,0,0,1-.8-5.5c0-18.2,19.3-32,44.9-32,19.5,0,36.1,8.3,42.3,21A8.1,8.1,0,0,0,181,80.7,7.9,7.9,0,0,0,184.7,70c-9-18.5-30.7-30-56.7-30C93.3,40,67.1,60.6,67.1,88a36,36,0,0,0,1.6,10.5A8,8,0,0,0,76.3,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76.3,96a25.3,25.3,0,0,1-1.2-8c0-22.1,22-40,52.9-40,23.8,0,42.3,10.6,49.5,25.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,168c0,22.1,25.1,40,56,40s56-17.9,56-40c0-23.8-21.6-33-45.6-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76.3,96a25.3,25.3,0,0,1-1.2-8c0-22.1,22-40,52.9-40,23.8,0,42.3,10.6,49.5,25.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,168c0,22.1,25.1,40,56,40s56-17.9,56-40c0-23.8-21.6-33-45.6-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_snow` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_snow />
  <Heroicons.cloud_snow class="w-4 h-4" />
  <Heroicons.cloud_snow solid />
  <Heroicons.cloud_snow mini />
  <Heroicons.cloud_snow outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_snow(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="196" r="12"/><circle cx="116" cy="212" r="12"/><circle cx="164" cy="196" r="12"/><circle cx="68" cy="236" r="12"/><circle cx="156" cy="236" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,96a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="160" cy="216" r="16"/><circle cx="112" cy="216" r="16"/><circle cx="64" cy="216" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" opacity="0.2"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="196" r="12"/><circle cx="116" cy="212" r="12"/><circle cx="164" cy="196" r="12"/><circle cx="68" cy="236" r="12"/><circle cx="156" cy="236" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,196a12,12,0,1,1-12-12A12,12,0,0,1,176,196ZM76,184a12,12,0,1,0,12,12A12,12,0,0,0,76,184Zm40,16a12,12,0,1,0,12,12A12,12,0,0,0,116,200ZM68,224a12,12,0,1,0,12,12A12,12,0,0,0,68,224Zm88,0a12,12,0,1,0,12,12A12,12,0,0,0,156,224Zm3.3-207.9A76.1,76.1,0,0,0,85,64.8h0a74.8,74.8,0,0,0-5,26.9,8.3,8.3,0,0,1-7.4,8.3A8,8,0,0,1,64,92a91.6,91.6,0,0,1,2.4-21.1,4,4,0,0,0-5-4.8A52.1,52.1,0,0,0,24,116.3C24.2,145,48.1,168,76.8,168H156a76,76,0,0,0,3.3-151.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="76" cy="196" r="10"/><circle cx="116" cy="212" r="10"/><circle cx="164" cy="196" r="10"/><circle cx="68" cy="236" r="10"/><circle cx="156" cy="236" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="76" cy="196" r="8"/><circle cx="116" cy="212" r="8"/><circle cx="164" cy="196" r="8"/><circle cx="68" cy="236" r="8"/><circle cx="156" cy="236" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_two` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_two />
  <Heroicons.dice_two class="w-4 h-4" />
  <Heroicons.dice_two solid />
  <Heroicons.dice_two mini />
  <Heroicons.dice_two outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_two(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="108" r="12"/><circle cx="148" cy="148" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="104" cy="104" r="16"/><circle cx="152" cy="152" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="108" r="12"/><circle cx="148" cy="148" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32Zm-84,88a12,12,0,1,1,12-12A12,12,0,0,1,108,120Zm40,40a12,12,0,1,1,12-12A12,12,0,0,1,148,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="108" cy="108" r="10"/><circle cx="148" cy="148" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="108" cy="108" r="8"/><circle cx="148" cy="148" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `music_notes` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.music_notes />
  <Heroicons.music_notes class="w-4 h-4" />
  <Heroicons.music_notes solid />
  <Heroicons.music_notes mini />
  <Heroicons.music_notes outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def music_notes(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="80" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="80" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" opacity="0.2"/><circle cx="52" cy="204" r="28" opacity="0.2"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="80" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212.9,25.7a8,8,0,0,0-6.8-1.5l-128,32A8,8,0,0,0,72,64V174.1A36,36,0,1,0,88,204V110.2l112-28v59.9A36,36,0,1,0,216,172V32A7.8,7.8,0,0,0,212.9,25.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="80" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="52" cy="204" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="80" x2="80" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 204 80 64 208 32 208 172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `note_pencil` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.note_pencil />
  <Heroicons.note_pencil class="w-4 h-4" />
  <Heroicons.note_pencil solid />
  <Heroicons.note_pencil mini />
  <Heroicons.note_pencil outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def note_pencil(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,120v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="60" x2="196" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,128.6V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h79.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 96 160 96 128 168 56 200 88 128 160" opacity="0.2"/><polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,120v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120v88a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32h88a8,8,0,0,1,0,16H48V208H208V120a8,8,0,0,1,16,0Zm5.7-50.3-96,96A8.1,8.1,0,0,1,128,168H96a8,8,0,0,1-8-8V128a8.1,8.1,0,0,1,2.3-5.7l96-96a8.1,8.1,0,0,1,11.4,0l32,32A8.1,8.1,0,0,1,229.7,69.7Zm-17-5.7L192,43.3,179.3,56,200,76.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,120v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,120v88a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `graph` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.graph />
  <Heroicons.graph class="w-4 h-4" />
  <Heroicons.graph solid />
  <Heroicons.graph mini />
  <Heroicons.graph outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def graph(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="96" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="104" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="184" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="118.3" y1="106.1" x2="105.7" y2="77.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="177.2" y1="111.6" x2="150.8" y2="120.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.1" y1="169.3" x2="146.9" y2="142.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.1" y1="143.9" x2="73.9" y2="176.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="96" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="200" cy="100" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="200" cy="188" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="56" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="118.3" y1="106.1" x2="105.7" y2="77.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110.1" y1="143.9" x2="73.9" y2="176.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="181.6" y1="172.6" x2="146.4" y2="143.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="177.6" y1="108.7" x2="150.4" y2="119.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" opacity="0.2"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="96" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="104" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="184" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="56" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="118.3" y1="106.1" x2="105.7" y2="77.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="177.2" y1="111.6" x2="150.8" y2="120.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.1" y1="169.3" x2="146.9" y2="142.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.1" y1="143.9" x2="73.9" y2="176.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,152a31.7,31.7,0,0,0-19.5,6.7l-23.1-18A31.7,31.7,0,0,0,160,128a16.2,16.2,0,0,0-.1-2.2l13.3-4.4A31.9,31.9,0,1,0,168,104a16.2,16.2,0,0,0,.1,2.2l-13.3,4.4A31.9,31.9,0,0,0,128,96a45.5,45.5,0,0,0-5.3.4L115.9,81A31.7,31.7,0,0,0,128,56,32,32,0,1,0,96,88a45.5,45.5,0,0,0,5.3-.4l6.8,15.4A31.7,31.7,0,0,0,96,128a32.4,32.4,0,0,0,3.5,14.6L73.8,165.4A32,32,0,1,0,88,192a32.4,32.4,0,0,0-3.5-14.6l25.7-22.8a31.9,31.9,0,0,0,37.3-1.3l23.1,18A31.7,31.7,0,0,0,168,184a32,32,0,1,0,32-32Zm0-64a16,16,0,1,1-16,16A16,16,0,0,1,200,88ZM80,56A16,16,0,1,1,96,72,16,16,0,0,1,80,56ZM56,208a16,16,0,1,1,16-16A16,16,0,0,1,56,208Zm144-8a16,16,0,1,1,16-16A16,16,0,0,1,200,200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="96" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="200" cy="104" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="200" cy="184" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="56" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="118.3" y1="106.1" x2="105.7" y2="77.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="177.2" y1="111.6" x2="150.8" y2="120.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="181.1" y1="169.3" x2="146.9" y2="142.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110.1" y1="143.9" x2="73.9" y2="176.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="96" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="200" cy="104" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="200" cy="184" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="56" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="118.3" y1="106.1" x2="105.7" y2="77.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="177.2" y1="111.6" x2="150.8" y2="120.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="181.1" y1="169.3" x2="146.9" y2="142.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110.1" y1="143.9" x2="73.9" y2="176.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_none` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_none />
  <Heroicons.cell_signal_none class="w-4 h-4" />
  <Heroicons.cell_signal_none solid />
  <Heroicons.cell_signal_none mini />
  <Heroicons.cell_signal_none outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_none(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224H27.3A16,16,0,0,1,16,196.7L180.7,32A16,16,0,0,1,208,43.3V208A16,16,0,0,1,192,224ZM27.3,208H192V43.3L27.3,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_down_left />
  <Heroicons.arrow_u_down_left class="w-4 h-4" />
  <Heroicons.arrow_u_down_left solid />
  <Heroicons.arrow_u_down_left mini />
  <Heroicons.arrow_u_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 120 32 168 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,56h88a56,56,0,0,1,56,56h0a56,56,0,0,1-56,56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 120 32 168 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,56h88a56,56,0,0,1,56,56h0a56,56,0,0,1-56,56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 120 32 168 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,56h88a56,56,0,0,1,56,56h0a56,56,0,0,1-56,56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,112a64.1,64.1,0,0,1-64,64H88v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,88,120v40h80a48,48,0,0,0,0-96H80a8,8,0,0,1,0-16h88A64.1,64.1,0,0,1,232,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 120 32 168 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,56h88a56,56,0,0,1,56,56h0a56,56,0,0,1-56,56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 120 32 168 80 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,56h88a56,56,0,0,1,56,56h0a56,56,0,0,1-56,56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `egg_crack` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.egg_crack />
  <Heroicons.egg_crack class="w-4 h-4" />
  <Heroicons.egg_crack solid />
  <Heroicons.egg_crack mini />
  <Heroicons.egg_crack outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def egg_crack(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="151.4 150 158.6 112.9 129.8 101.7 172.7 53.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="151.4 150 158.6 112.9 129.8 101.7 172.7 53.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" opacity="0.2"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="151.4 150 158.6 112.9 129.8 101.7 172.7 53.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.7,59.6l-.7-1.1a4.1,4.1,0,0,0-6.3-.4L143.5,98.4l18,7a8.1,8.1,0,0,1,5,9l-7.2,37.1a8.1,8.1,0,0,1-7.9,6.5h-1.5a8.4,8.4,0,0,1-6.3-9.7l5.9-30.3-22.6-8.7a8.3,8.3,0,0,1-4.9-5.6,8.1,8.1,0,0,1,1.8-7.2l46.6-51.9a4,4,0,0,0-.1-5.5c-14.1-14.7-29-23-42.3-23-18.5,0-40.5,16.3-58.7,43.6s-28,57.6-29.2,86.8C38,197,77.6,240.1,128.2,240A88.1,88.1,0,0,0,216,152C216,121.2,205.3,87.5,186.7,59.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="151.4 150 158.6 112.9 129.8 101.7 172.7 53.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="151.4 150 158.6 112.9 129.8 101.7 172.7 53.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `envelope_simple_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.envelope_simple_open />
  <Heroicons.envelope_simple_open class="w-4 h-4" />
  <Heroicons.envelope_simple_open solid />
  <Heroicons.envelope_simple_open mini />
  <Heroicons.envelope_simple_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def envelope_simple_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,96V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V96l96-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="224 96 145.5 152 110.5 152 32 96 128 32 224 96" opacity="0.2"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.4,89.3l-96-64a8.2,8.2,0,0,0-8.8,0l-96,64A7.9,7.9,0,0,0,24,96V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V96A7.9,7.9,0,0,0,228.4,89.3ZM40,200V111.5l65.9,47a7.9,7.9,0,0,0,4.6,1.5h35a7.9,7.9,0,0,0,4.6-1.5l65.9-47V200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `asterisk_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.asterisk_simple />
  <Heroicons.asterisk_simple class="w-4 h-4" />
  <Heroicons.asterisk_simple solid />
  <Heroicons.asterisk_simple mini />
  <Heroicons.asterisk_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def asterisk_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.3" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76.3" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.7" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.7" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44.3" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76.3" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="179.7" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="211.7" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.3" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="76.3" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.7" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.7" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M214.2,108.4l-73.3,23.8,45.3,62.3a8,8,0,1,1-12.9,9.4L128,141.6,82.7,203.9a8,8,0,1,1-12.9-9.4l45.3-62.3L41.8,108.4a8,8,0,0,1,5-15.2L120,117V40a8,8,0,0,1,16,0v77l73.2-23.8a8,8,0,0,1,5,15.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="44.3" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="76.3" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="179.7" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="211.7" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="44.3" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="76.3" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="179.7" y1="199.2" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="211.7" y1="100.8" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shopping_cart_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shopping_cart_simple />
  <Heroicons.shopping_cart_simple class="w-4 h-4" />
  <Heroicons.shopping_cart_simple solid />
  <Heroicons.shopping_cart_simple mini />
  <Heroicons.shopping_cart_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shopping_cart_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="216" r="16"/><circle cx="184" cy="216" r="16"/><path d="M42.3,72H221.7l-26.4,92.4A15.9,15.9,0,0,1,179.9,176H84.1a15.9,15.9,0,0,1-15.4-11.6L32.5,37.8A8,8,0,0,0,24.8,32H8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="216" r="20"/><circle cx="184" cy="216" r="20"/><path d="M42.3,72H221.7l-24.1,84.4A16,16,0,0,1,182.2,168H81.8a16,16,0,0,1-15.4-11.6L32.5,37.8A8,8,0,0,0,24.8,32H12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.3,72H221.7l-26.4,92.4A15.9,15.9,0,0,1,179.9,176H84.1a15.9,15.9,0,0,1-15.4-11.6Z" opacity="0.2"/><circle cx="80" cy="216" r="16"/><circle cx="184" cy="216" r="16"/><path d="M42.3,72H221.7l-26.4,92.4A15.9,15.9,0,0,1,179.9,176H84.1a15.9,15.9,0,0,1-15.4-11.6L32.5,37.8A8,8,0,0,0,24.8,32H8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216a16,16,0,1,1-16-16A16,16,0,0,1,96,216Zm88-16a16,16,0,1,0,16,16A16,16,0,0,0,184,200ZM228.1,67.2a8.1,8.1,0,0,0-6.4-3.2H48.3L40.2,35.6A16.1,16.1,0,0,0,24.8,24H8A8,8,0,0,0,8,40H24.8l9.8,34.1v.2L61,166.6A24.1,24.1,0,0,0,84.1,184h95.8A24.1,24.1,0,0,0,203,166.6l26.4-92.4A8,8,0,0,0,228.1,67.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="216" r="14"/><circle cx="184" cy="216" r="14"/><path d="M42.3,72H221.7l-26.4,92.4A15.9,15.9,0,0,1,179.9,176H84.1a15.9,15.9,0,0,1-15.4-11.6L32.5,37.8A8,8,0,0,0,24.8,32H8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="216" r="12"/><circle cx="184" cy="216" r="12"/><path d="M42.3,72H221.7l-26.4,92.4A15.9,15.9,0,0,1,179.9,176H84.1a15.9,15.9,0,0,1-15.4-11.6L32.5,37.8A8,8,0,0,0,24.8,32H8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fingerprint_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fingerprint_simple />
  <Heroicons.fingerprint_simple class="w-4 h-4" />
  <Heroicons.fingerprint_simple solid />
  <Heroicons.fingerprint_simple mini />
  <Heroicons.fingerprint_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fingerprint_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128a240.3,240.3,0,0,1-17.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M163.8,96A48,48,0,0,0,80,128a142.6,142.6,0,0,1-18,69.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,37.5A94.4,94.4,0,0,1,128,32a96,96,0,0,1,96,96,293.3,293.3,0,0,1-7.1,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M23.3,168A95.5,95.5,0,0,0,32,128,95.7,95.7,0,0,1,64,56.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.6,208c-2,4.4-4.2,8.8-6.6,13" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128a189.6,189.6,0,0,1-6.1,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128a240.3,240.3,0,0,1-17.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M163.8,96A48,48,0,0,0,80,128a142.6,142.6,0,0,1-18,69.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,37.5A94.4,94.4,0,0,1,128,32a96,96,0,0,1,96,96,293.3,293.3,0,0,1-7.1,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M23.3,168A95.5,95.5,0,0,0,32,128,95.4,95.4,0,0,1,64,56.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M110.6,208c-2.1,4.4-4.3,8.8-6.6,13" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128a189.6,189.6,0,0,1-6.1,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128a238.5,238.5,0,0,1-18,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M163.8,96A48,48,0,0,0,80,128a142.6,142.6,0,0,1-18,69.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,37.5A94.4,94.4,0,0,1,128,32a96,96,0,0,1,96,96,287.3,287.3,0,0,1-7.2,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M23.3,168A95.5,95.5,0,0,0,32,128,95.4,95.4,0,0,1,64,56.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.6,208c-2.1,4.4-4.3,8.8-6.6,13" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128a189.6,189.6,0,0,1-6.1,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,120a8,8,0,0,0-8,8,229.3,229.3,0,0,1-17.4,88.2,8,8,0,0,0,7.4,11,7.9,7.9,0,0,0,7.4-5A246.5,246.5,0,0,0,184,128,8,8,0,0,0,176,120Z"/><path d="M128,88a40.4,40.4,0,0,1,29.8,13.3,8,8,0,0,0,11.3.7,8,8,0,0,0,.6-11.3A56,56,0,0,0,72,128a136.4,136.4,0,0,1-17,65.9,8,8,0,0,0,3.1,10.8,8.1,8.1,0,0,0,3.9,1,7.9,7.9,0,0,0,7-4.1A152.2,152.2,0,0,0,88,128,40.1,40.1,0,0,1,128,88Z"/><path d="M69.3,62.4A8,8,0,1,0,58.6,50.5,104.2,104.2,0,0,0,24,128a87.6,87.6,0,0,1-8,36.7,8.1,8.1,0,0,0,3.9,10.6,8.3,8.3,0,0,0,3.4.7,7.8,7.8,0,0,0,7.2-4.7A102.4,102.4,0,0,0,40,128,88.3,88.3,0,0,1,69.3,62.4Z"/><path d="M128,24a104.5,104.5,0,0,0-34.7,5.9,8.1,8.1,0,0,0-4.9,10.2A8,8,0,0,0,98.6,45,88.1,88.1,0,0,1,216,128a281.8,281.8,0,0,1-7,62.2,8.2,8.2,0,0,0,6.1,9.6l1.8.2a7.9,7.9,0,0,0,7.7-6.2A296.3,296.3,0,0,0,232,128,104.2,104.2,0,0,0,128,24Z"/><path d="M113.9,200.7a8.1,8.1,0,0,0-10.6,4c-1.9,4.2-4.1,8.4-6.3,12.4a8.1,8.1,0,0,0,3.1,10.9,7.8,7.8,0,0,0,3.9,1,8.1,8.1,0,0,0,7-4.1c2.4-4.4,4.7-9,6.8-13.6A8,8,0,0,0,113.9,200.7Z"/><path d="M128,120a8,8,0,0,0-8,8,186.5,186.5,0,0,1-5.8,46,8,8,0,0,0,5.7,9.8l2,.2a8.1,8.1,0,0,0,7.8-6,199.8,199.8,0,0,0,6.3-50A8,8,0,0,0,128,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128a240.3,240.3,0,0,1-17.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M163.8,96A48,48,0,0,0,80,128a142.6,142.6,0,0,1-18,69.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,37.5A94.4,94.4,0,0,1,128,32a96,96,0,0,1,96,96,293.3,293.3,0,0,1-7.1,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M23.3,168A95.5,95.5,0,0,0,32,128,95.7,95.7,0,0,1,64,56.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M110.6,208c-2.1,4.4-4.2,8.8-6.6,13" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128a189.6,189.6,0,0,1-6.1,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,128a240.3,240.3,0,0,1-17.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M163.8,96A48,48,0,0,0,80,128a142.6,142.6,0,0,1-18,69.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,37.5A94.4,94.4,0,0,1,128,32a96,96,0,0,1,96,96,293.3,293.3,0,0,1-7.1,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M23.3,168A95.5,95.5,0,0,0,32,128,95.7,95.7,0,0,1,64,56.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M110.6,208c-2,4.4-4.2,8.8-6.6,13" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128a189.6,189.6,0,0,1-6.1,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ruler` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ruler />
  <Heroicons.ruler class="w-4 h-4" />
  <Heroicons.ruler solid />
  <Heroicons.ruler mini />
  <Heroicons.ruler outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ruler(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="132" y1="60" x2="164" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60" y1="132" x2="92" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="132" y1="60" x2="164" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="96" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60" y1="132" x2="92" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" opacity="0.2"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="132" y1="60" x2="164" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60" y1="132" x2="92" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.7,88.4a16.6,16.6,0,0,1-5,11.3L99.3,232a15.9,15.9,0,0,1-22.6,0L24,179.3a15.9,15.9,0,0,1,0-22.6l21.9-21.9a4,4,0,0,1,5.6,0l34.8,34.9A8.5,8.5,0,0,0,92,172a8,8,0,0,0,6.1-2.8,8.3,8.3,0,0,0-.6-11.1L62.8,123.5a4,4,0,0,1,0-5.6L81.9,98.8a4,4,0,0,1,5.6,0l34.8,34.9A8.5,8.5,0,0,0,128,136a8,8,0,0,0,6.1-2.8,8.3,8.3,0,0,0-.6-11.1L98.8,87.5a4,4,0,0,1,0-5.6l19.1-19.1a4,4,0,0,1,5.6,0l34.8,34.9A8.5,8.5,0,0,0,164,100a8,8,0,0,0,6.1-2.8,8.3,8.3,0,0,0-.6-11.1L134.8,51.5a4,4,0,0,1,0-5.6L156.7,24a16.1,16.1,0,0,1,22.6,0L232,76.7A16,16,0,0,1,236.7,88.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="132" y1="60" x2="164" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="96" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60" y1="132" x2="92" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="26.2" y="82.7" width="203.6" height="90.51" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="132" y1="60" x2="164" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="96" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60" y1="132" x2="92" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_pie` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_pie />
  <Heroicons.chart_pie class="w-4 h-4" />
  <Heroicons.chart_pie solid />
  <Heroicons.chart_pie mini />
  <Heroicons.chart_pie outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_pie(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,44.9,176h-.1A96.1,96.1,0,0,1,128,32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.3,76.4a.8.8,0,0,1-.2-.4l-.4-.5a104,104,0,0,0-180,104.1l.2.4.3.4a104,104,0,0,0,180.1-104Zm-18.4.9L136,114.1V40.4A88.2,88.2,0,0,1,199.9,77.3ZM128,216a88,88,0,0,1-71.9-37.3L207.9,91.1A88,88,0,0,1,128,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calendar_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calendar_plus />
  <Heroicons.calendar_plus class="w-4 h-4" />
  <Heroicons.calendar_plus solid />
  <Heroicons.calendar_plus mini />
  <Heroicons.calendar_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calendar_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="152" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="124" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="156" y1="152" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="124" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="20" x2="176" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="20" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,88H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="152" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="124" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM156,160H136v20a8,8,0,0,1-16,0V160H100a8,8,0,0,1,0-16h20V124a8,8,0,0,1,16,0v20h20a8,8,0,0,1,0,16Zm52-80H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="152" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="124" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="152" x2="100" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="124" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_six />
  <Heroicons.number_six class="w-4 h-4" />
  <Heroicons.number_six solid />
  <Heroicons.number_six mini />
  <Heroicons.number_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="79.5" y1="140" x2="144" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="79.5" y1="140" x2="144" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="168" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="79.5" y1="140" x2="144" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,104a66.3,66.3,0,0,0-19.5,3l42.4-70.9a8,8,0,0,0-13.8-8.2l-64.5,108-.2.5A63,63,0,0,0,64,168a64,64,0,1,0,64-64Zm0,112a48.1,48.1,0,0,1-41.2-72.7l.2-.3a48,48,0,1,1,41,73Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="79.5" y1="140" x2="144" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="168" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="79.5" y1="140" x2="144" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="168" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `campfire` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.campfire />
  <Heroicons.campfire class="w-4 h-4" />
  <Heroicons.campfire solid />
  <Heroicons.campfire mini />
  <Heroicons.campfire outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def campfire(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="168" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168" x2="40" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,136a24,24,0,0,1-48,0c0-24,24-40,24-40S152,112,152,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,108a52,52,0,0,1-104,0c0-44,52-76,52-76S180,64,180,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="168" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="168" x2="40" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,136a24,24,0,0,1-48,0c0-24,24-40,24-40S152,112,152,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,108a52,52,0,0,1-104,0c0-44,52-76,52-76S180,64,180,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32S76,64,76,108a52,52,0,0,0,52,52,23.9,23.9,0,0,1-24-24c0-24,24-40,24-40s24,16,24,40a23.9,23.9,0,0,1-24,24,52,52,0,0,0,52-52C180,64,128,32,128,32Z" opacity="0.2"/><path d="M180,108a52,52,0,0,1-104,0c0-44,52-76,52-76S180,64,180,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="168" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168" x2="40" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,136a24,24,0,0,1-48,0c0-24,24-40,24-40S152,112,152,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.2,25.2a7.9,7.9,0,0,0-8.4,0A153.5,153.5,0,0,0,96.2,48C77.8,67.1,68,87.9,68,108a60,60,0,0,0,120,0C188,60.1,134.5,26.6,132.2,25.2ZM128,152a23.9,23.9,0,0,1-24-24c0-24,24-40,24-40s24,16,24,40A23.9,23.9,0,0,1,128,152Zm95.6,74.4A8,8,0,0,1,216,232a6.7,6.7,0,0,1-2.4-.4L128,204.4,42.4,231.6a6.7,6.7,0,0,1-2.4.4,8,8,0,0,1-7.6-5.6,7.9,7.9,0,0,1,5.2-10l64-20.4-64-20.4a8,8,0,1,1,4.8-15.2L128,187.6l85.6-27.2a8,8,0,1,1,4.8,15.2l-64,20.4,64,20.4A7.9,7.9,0,0,1,223.6,226.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="168" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="168" x2="40" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,136a24,24,0,0,1-48,0c0-24,24-40,24-40S152,112,152,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M180,108a52,52,0,0,1-104,0c0-44,52-76,52-76S180,64,180,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="168" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="168" x2="40" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,136a24,24,0,0,1-48,0c0-24,24-40,24-40S152,112,152,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M180,108a52,52,0,0,1-104,0c0-44,52-76,52-76S180,64,180,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `headphones` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.headphones />
  <Heroicons.headphones class="w-4 h-4" />
  <Heroicons.headphones solid />
  <Heroicons.headphones mini />
  <Heroicons.headphones outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def headphones(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V136a96,96,0,0,0-96.8-96A96,96,0,0,0,32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V136a96,96,0,0,0-96.8-96A96,96,0,0,0,32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16Z" opacity="0.2"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16Z" opacity="0.2"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V136a96,96,0,0,0-96.8-96A96,96,0,0,0,32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M202.7,62.2A103.1,103.1,0,0,0,129.5,32h-.8A104,104,0,0,0,24,136v56a24.1,24.1,0,0,0,24,24H64a24.1,24.1,0,0,0,24-24V152a24.1,24.1,0,0,0-24-24H40.4a87.8,87.8,0,0,1,88.3-80h.1a88,88,0,0,1,88.3,80H193.5a24,24,0,0,0-24,24v40a24,24,0,0,0,24,24h16a24.1,24.1,0,0,0,24-24V136A103.5,103.5,0,0,0,202.7,62.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V136a96,96,0,0,0-96.8-96A96,96,0,0,0,32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,136h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V136a96,96,0,0,0-96.8-96A96,96,0,0,0,32,136v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V152a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_diff` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_diff />
  <Heroicons.git_diff class="w-4 h-4" />
  <Heroicons.git_diff solid />
  <Heroicons.git_diff mini />
  <Heroicons.git_diff outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_diff(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,160V119.9a48.2,48.2,0,0,0-14.1-34L144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 88 144 48 184 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="60" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,96v40.1a48.2,48.2,0,0,0,14.1,34L112,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 168 112 208 72 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M196,160V119.9a48.2,48.2,0,0,0-14.1-34L144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144 88 144 48 184 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="60" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,96v40.1a48.2,48.2,0,0,0,14.1,34L112,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="112 168 112 208 72 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="188" r="28" opacity="0.2"/><circle cx="60" cy="68" r="28" opacity="0.2"/><circle cx="196" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,160V119.9a48.2,48.2,0,0,0-14.1-34L144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 88 144 48 184 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="60" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,96v40.1a48.2,48.2,0,0,0,14.1,34L112,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 168 112 208 72 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,188a36,36,0,1,1-44-35.1v-33a40,40,0,0,0-11.7-28.3L152,67.3V88a8,8,0,0,1-16,0V48a8,8,0,0,1,8-8h40a8,8,0,0,1,0,16H163.3l24.3,24.3A55.5,55.5,0,0,1,204,119.9v33A36.1,36.1,0,0,1,232,188ZM112,160a8,8,0,0,0-8,8v20.7L79.7,164.4A40,40,0,0,1,68,136.1v-33a36,36,0,1,0-16,0v33a55.5,55.5,0,0,0,16.4,39.6L92.7,200H72a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,112,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M196,160V119.9a48.2,48.2,0,0,0-14.1-34L144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 88 144 48 184 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="60" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60,96v40.1a48.2,48.2,0,0,0,14.1,34L112,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 168 112 208 72 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M196,160V119.9a48.2,48.2,0,0,0-14.1-34L144,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 88 144 48 184 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="60" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60,96v40.1a48.2,48.2,0,0,0,14.1,34L112,208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 168 112 208 72 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `divide` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.divide />
  <Heroicons.divide class="w-4 h-4" />
  <Heroicons.divide solid />
  <Heroicons.divide mini />
  <Heroicons.divide outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def divide(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="64" r="16"/><circle cx="128" cy="192" r="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="64" r="20"/><circle cx="128" cy="192" r="20"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="64" r="16"/><circle cx="128" cy="192" r="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM128,80a16,16,0,1,0-16-16A16,16,0,0,0,128,80Zm0,96a16,16,0,1,0,16,16A16,16,0,0,0,128,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="64" r="14"/><circle cx="128" cy="192" r="14"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="64" r="12"/><circle cx="128" cy="192" r="12"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_laminated_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_laminated_open />
  <Heroicons.lock_laminated_open class="w-4 h-4" />
  <Heroicons.lock_laminated_open solid />
  <Heroicons.lock_laminated_open mini />
  <Heroicons.lock_laminated_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_laminated_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="132" x2="216" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="172" x2="216" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,71.8-4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H100V52a28,28,0,0,1,56,0,8,8,0,0,0,16,0,44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM184,192H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Zm0-32H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Zm0-32H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_double_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_double_down />
  <Heroicons.caret_circle_double_down class="w-4 h-4" />
  <Heroicons.caret_circle_double_down solid />
  <Heroicons.caret_circle_double_down mini />
  <Heroicons.caret_circle_double_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_double_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 88 128 120 96 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 144 128 176 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 88 128 120 96 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 144 128 176 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 88 128 120 96 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 144 128 176 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,54.5a104,104,0,1,0,147,0A103.9,103.9,0,0,0,54.5,54.5Zm99.8,83.8a8.1,8.1,0,0,1,11.4,0,8.2,8.2,0,0,1,0,11.4l-32,32a8.1,8.1,0,0,1-11.4,0l-32-32a8.1,8.1,0,0,1,11.4-11.4L128,164.7Zm0-56a8.1,8.1,0,0,1,11.4,0,8.2,8.2,0,0,1,0,11.4l-32,32a8.1,8.1,0,0,1-11.4,0l-32-32a8.1,8.1,0,0,1,11.4-11.4L128,108.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 88 128 120 96 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 144 128 176 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 88 128 120 96 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 144 128 176 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `checks` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.checks />
  <Heroicons.checks class="w-4 h-4" />
  <Heroicons.checks solid />
  <Heroicons.checks mini />
  <Heroicons.checks outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def checks(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 84 60 172 16 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="240 84 152 172 128.6 148.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="144 84 56 172 12 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="244 84 156 172 139.9 155.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 84 60 172 16 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="240 84 152 172 128.6 148.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M153.7,89.7l-88,88a8.2,8.2,0,0,1-11.4,0l-44-44a8.1,8.1,0,0,1,11.4-11.4L60,160.7l82.3-82.4a8.1,8.1,0,0,1,11.4,11.4Zm92-11.4a8.1,8.1,0,0,0-11.4,0L152,160.7,134.3,143A8,8,0,0,0,123,154.3l23.3,23.4a8.2,8.2,0,0,0,11.4,0l88-88A8.1,8.1,0,0,0,245.7,78.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 84 60 172 16 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="240 84 152 172 128.6 148.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 84 60 172 16 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="240 84 152 172 128.6 148.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `squares_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.squares_four />
  <Heroicons.squares_four class="w-4 h-4" />
  <Heroicons.squares_four solid />
  <Heroicons.squares_four mini />
  <Heroicons.squares_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def squares_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="60" height="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="148" y="48" width="60" height="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="48" y="148" width="60" height="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="148" y="148" width="60" height="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" opacity="0.2"/><rect x="144" y="48" width="64" height="64" opacity="0.2"/><rect x="48" y="144" width="64" height="64" opacity="0.2"/><rect x="144" y="144" width="64" height="64" opacity="0.2"/><rect x="144" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="80" height="80" rx="8"/><rect x="136" y="40" width="80" height="80" rx="8"/><rect x="40" y="136" width="80" height="80" rx="8"/><rect x="136" y="136" width="80" height="80" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="144" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="48" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="144" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="144" y="48" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="48" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="144" y="144" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trash />
  <Heroicons.trash class="w-4 h-4" />
  <Heroicons.trash solid />
  <Heroicons.trash mini />
  <Heroicons.trash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="60" x2="40" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,60V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,60V36a16,16,0,0,0-16-16H104A16,16,0,0,0,88,36V60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56Z" opacity="0.2"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H176V40a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `medium_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.medium_logo />
  <Heroicons.medium_logo class="w-4 h-4" />
  <Heroicons.medium_logo solid />
  <Heroicons.medium_logo mini />
  <Heroicons.medium_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def medium_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="72" cy="128" rx="56" ry="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="184" cy="128" rx="24" ry="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="72" x2="240" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="70" cy="128" rx="54" ry="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="182" cy="128" rx="22" ry="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="72" x2="240" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="72" cy="128" rx="56" ry="60" opacity="0.2"/><ellipse cx="184" cy="128" rx="24" ry="56" opacity="0.2"/><ellipse cx="72" cy="128" rx="56" ry="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="184" cy="128" rx="24" ry="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="72" x2="240" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,128c0,37.5-28.7,68-64,68S8,165.5,8,128,36.7,60,72,60,136,90.5,136,128Zm48-64c-5.7,0-16.4,2.8-24.3,21.3-5,11.5-7.7,26.7-7.7,42.7s2.7,31.2,7.7,42.7c7.9,18.5,18.6,21.3,24.3,21.3s16.4-2.8,24.3-21.3c5-11.5,7.7-26.7,7.7-42.7s-2.7-31.2-7.7-42.7C200.4,66.8,189.7,64,184,64Zm56,0a8,8,0,0,0-8,8V184a8,8,0,0,0,16,0V72A8,8,0,0,0,240,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="72" cy="128" rx="56" ry="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="184" cy="128" rx="24" ry="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="72" x2="240" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="72" cy="128" rx="56" ry="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="184" cy="128" rx="24" ry="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="72" x2="240" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `house_line` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.house_line />
  <Heroicons.house_line class="w-4 h-4" />
  <Heroicons.house_line solid />
  <Heroicons.house_line mini />
  <Heroicons.house_line outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def house_line(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,216V115.5a8.3,8.3,0,0,0-2.6-5.9l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,216V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,216V115.5a8.3,8.3,0,0,0-2.6-5.9l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a7.9,7.9,0,0,0-2.6,5.9V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,216V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,216V152H104v64H40V115.5a7.9,7.9,0,0,1,2.6-5.9l80-72.7a7.9,7.9,0,0,1,10.7,0l80.1,72.7a8.3,8.3,0,0,1,2.6,5.9V216Z" opacity="0.2"/><path d="M216,216V115.5a8.3,8.3,0,0,0-2.6-5.9L133.3,36.9a7.9,7.9,0,0,0-10.7,0l-80,72.7a7.9,7.9,0,0,0-2.6,5.9V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,216V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,208H224V115.5a15.7,15.7,0,0,0-5.3-11.8L138.7,31a15.9,15.9,0,0,0-21.5,0l-80,72.7A16,16,0,0,0,32,115.5V208H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-88,0H104V160a8,8,0,0,1,8-8h32a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,216V115.5a8.3,8.3,0,0,0-2.6-5.9l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a7.9,7.9,0,0,0-2.6,5.9V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,216V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,216V115.5a8.3,8.3,0,0,0-2.6-5.9l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a7.9,7.9,0,0,0-2.6,5.9V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,216V160a8,8,0,0,0-8-8H112a8,8,0,0,0-8,8v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magnifying_glass_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magnifying_glass_minus />
  <Heroicons.magnifying_glass_minus class="w-4 h-4" />
  <Heroicons.magnifying_glass_minus solid />
  <Heroicons.magnifying_glass_minus mini />
  <Heroicons.magnifying_glass_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magnifying_glass_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" opacity="0.2"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.6,218.3l-43.2-43.2a92.2,92.2,0,1,0-11.3,11.3l43.2,43.3A8.3,8.3,0,0,0,224,232a8,8,0,0,0,5.6-13.7ZM148,124H84a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `google_play_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.google_play_logo />
  <Heroicons.google_play_logo class="w-4 h-4" />
  <Heroicons.google_play_logo solid />
  <Heroicons.google_play_logo mini />
  <Heroicons.google_play_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def google_play_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M39.8,224.1a8,8,0,0,0,12.1,6.8l167.8-96.1a7.7,7.7,0,0,0,0-13.6L51.9,25.1a8,8,0,0,0-12.1,6.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.2" y1="26.2" x2="175.9" y2="159.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.2" y1="229.8" x2="175.9" y2="96.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M39.8,224.1a8,8,0,0,0,12.1,6.8l167.8-96.1a7.7,7.7,0,0,0,0-13.6L51.9,25.1a8,8,0,0,0-12.1,6.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="42.2" y1="26.2" x2="175.9" y2="159.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="42.2" y1="229.8" x2="175.9" y2="96.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.2,26.2a8.1,8.1,0,0,0-2.4,5.7V224.1a8.1,8.1,0,0,0,2.4,5.7h0L144,128,42.2,26.2Z" opacity="0.2"/><path d="M39.8,224.1a8,8,0,0,0,12.1,6.8l167.8-96.1a7.7,7.7,0,0,0,0-13.6L51.9,25.1a8,8,0,0,0-12.1,6.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.2" y1="26.2" x2="175.9" y2="159.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.2" y1="229.8" x2="175.9" y2="96.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.6,114.2,55.9,18.1a16.2,16.2,0,0,0-16.2.1,15.8,15.8,0,0,0-7.9,13.7V224.1a16,16,0,0,0,16,15.9,16.9,16.9,0,0,0,8.1-2.1l167.7-96.1a15.7,15.7,0,0,0,0-27.6ZM144,139.3l18.9,18.9L74.7,208.6Zm-69.3-92,88.2,50.5L144,116.7ZM177.2,149.9,155.3,128l21.9-21.9L215.6,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M39.8,224.1a8,8,0,0,0,12.1,6.8l167.8-96.1a7.7,7.7,0,0,0,0-13.6L51.9,25.1a8,8,0,0,0-12.1,6.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="42.2" y1="26.2" x2="175.9" y2="159.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="42.2" y1="229.8" x2="175.9" y2="96.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M39.8,224.1a8,8,0,0,0,12.1,6.8l167.8-96.1a7.7,7.7,0,0,0,0-13.6L51.9,25.1a8,8,0,0,0-12.1,6.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="42.2" y1="26.2" x2="175.9" y2="159.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="42.2" y1="229.8" x2="175.9" y2="96.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three />
  <Heroicons.dots_three class="w-4 h-4" />
  <Heroicons.dots_three solid />
  <Heroicons.dots_three mini />
  <Heroicons.dots_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="12"/><circle cx="192" cy="128" r="12"/><circle cx="64" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="16"/><circle cx="64" cy="128" r="16"/><circle cx="192" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="12"/><circle cx="192" cy="128" r="12"/><circle cx="64" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm52-12a12,12,0,1,0,12,12A12,12,0,0,0,192,116ZM64,116a12,12,0,1,0,12,12A12,12,0,0,0,64,116Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="10"/><circle cx="64" cy="128" r="10"/><circle cx="192" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="8"/><circle cx="64" cy="128" r="8"/><circle cx="192" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `navigation_arrow` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.navigation_arrow />
  <Heroicons.navigation_arrow class="w-4 h-4" />
  <Heroicons.navigation_arrow solid />
  <Heroicons.navigation_arrow mini />
  <Heroicons.navigation_arrow outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def navigation_arrow(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" opacity="0.2"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,88.4,50.2,29.8A16,16,0,0,0,29.8,50.2L88.4,219.5a15.8,15.8,0,0,0,15.1,10.8h.3a15.6,15.6,0,0,0,15-11.2l23.6-76.6L219,118.8a15.8,15.8,0,0,0,11.3-15A15.9,15.9,0,0,0,219.5,88.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M37.4,47.6,96,216.9c2.5,7.3,12.9,7.1,15.2-.3L134.8,140a7.5,7.5,0,0,1,5.3-5.2l76.5-23.6c7.4-2.3,7.6-12.7.3-15.2L47.6,37.4A8,8,0,0,0,37.4,47.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list_checks` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list_checks />
  <Heroicons.list_checks class="w-4 h-4" />
  <Heroicons.list_checks solid />
  <Heroicons.list_checks mini />
  <Heroicons.list_checks outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list_checks(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 48 57.3 80 40 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 112 57.3 144 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 176 57.3 208 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="92 48 57.3 80 40 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="92 112 57.3 144 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="92 176 57.3 208 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 48 57.3 80 40 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 112 57.3 144 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="92 176 57.3 208 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H128a8,8,0,0,1,0-16h88A8,8,0,0,1,224,128ZM128,72h88a8,8,0,0,0,0-16H128a8,8,0,0,0,0,16Zm88,112H128a8,8,0,0,0,0,16h88a8,8,0,0,0,0-16ZM86.6,42.1l-29.3,27-11.9-11A8,8,0,0,0,34.6,69.9l17.3,16A8,8,0,0,0,57.3,88a8.2,8.2,0,0,0,5.5-2.1l34.6-32A8,8,0,1,0,86.6,42.1Zm0,64-29.3,27-11.9-11a8,8,0,1,0-10.8,11.8l17.3,16a8,8,0,0,0,5.4,2.1,8.2,8.2,0,0,0,5.5-2.1l34.6-32a8,8,0,1,0-10.8-11.8Zm0,64-29.3,27-11.9-11a8,8,0,1,0-10.8,11.8l17.3,16a8,8,0,0,0,5.4,2.1,8.2,8.2,0,0,0,5.5-2.1l34.6-32a8,8,0,0,0-10.8-11.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="92 48 57.3 80 40 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="92 112 57.3 144 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="92 176 57.3 208 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="92 48 57.3 80 40 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="92 112 57.3 144 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="92 176 57.3 208 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `google_photos_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.google_photos_logo />
  <Heroicons.google_photos_logo class="w-4 h-4" />
  <Heroicons.google_photos_logo solid />
  <Heroicons.google_photos_logo mini />
  <Heroicons.google_photos_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def google_photos_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,132V24a60,60,0,0,1,36,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132,124H24A60,60,0,0,1,132,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M124,124V232A60,60,0,0,1,88,124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M124,132H232a60,60,0,0,1-108,36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,132V24a60,60,0,0,1,36,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M132,124H24A60,60,0,0,1,132,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M124,124V232A60,60,0,0,1,88,124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M124,132H232a60,60,0,0,1-108,36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,132V24a60,60,0,0,1,36,108Z" opacity="0.2"/><path d="M124,124V232A60,60,0,0,1,88,124Z" opacity="0.2"/><path d="M132,132V24a60,60,0,0,1,36,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132,124H24A60,60,0,0,1,132,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M124,124V232A60,60,0,0,1,88,124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M124,132H232a60,60,0,0,1-108,36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,124H187a67.4,67.4,0,0,0,13-40,68.1,68.1,0,0,0-68-68,8,8,0,0,0-8,8V69A67.4,67.4,0,0,0,84,56a68.1,68.1,0,0,0-68,68,8,8,0,0,0,8,8H69a67.4,67.4,0,0,0-13,40,68.1,68.1,0,0,0,68,68,8,8,0,0,0,8-8V187a67.4,67.4,0,0,0,40,13,68.1,68.1,0,0,0,68-68A8,8,0,0,0,232,124ZM84,72a51.5,51.5,0,0,1,40,18.8V116H32.6A52.1,52.1,0,0,1,84,72Zm88,112a51.5,51.5,0,0,1-40-18.8V140h91.4A52.1,52.1,0,0,1,172,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,132V24a60,60,0,0,1,36,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M132,124H24A60,60,0,0,1,132,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M124,124V232A60,60,0,0,1,88,124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M124,132H232a60,60,0,0,1-108,36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,132V24a60,60,0,0,1,36,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M132,124H24A60,60,0,0,1,132,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M124,124V232A60,60,0,0,1,88,124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M124,132H232a60,60,0,0,1-108,36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clock_afternoon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clock_afternoon />
  <Heroicons.clock_afternoon class="w-4 h-4" />
  <Heroicons.clock_afternoon solid />
  <Heroicons.clock_afternoon mini />
  <Heroicons.clock_afternoon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clock_afternoon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="167.6" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="167.6" y1="167.6" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="128" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="167.6" y1="167.6" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm56,112H147.3l26,25.9a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-39.6-39.6A8.4,8.4,0,0,1,120,128a8,8,0,0,1,8-8h56a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="167.6" y1="167.6" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="167.6" y1="167.6" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_three />
  <Heroicons.dice_three class="w-4 h-4" />
  <Heroicons.dice_three solid />
  <Heroicons.dice_three mini />
  <Heroicons.dice_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="92" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="164" cy="164" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="88" cy="88" r="16"/><circle cx="128" cy="128" r="16"/><circle cx="168" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="92" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="164" cy="164" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32ZM92,104a12,12,0,1,1,12-12A12,12,0,0,1,92,104Zm36,36a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm36,36a12,12,0,1,1,12-12A12,12,0,0,1,164,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="92" r="10"/><circle cx="128" cy="128" r="10"/><circle cx="164" cy="164" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="92" r="8"/><circle cx="128" cy="128" r="8"/><circle cx="164" cy="164" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `package` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.package />
  <Heroicons.package class="w-4 h-4" />
  <Heroicons.package solid />
  <Heroicons.package mini />
  <Heroicons.package outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def package(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="177 152.5 177 100.5 80 47" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="177 152.5 177 100.5 80 47" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M33.1,74.6A8.1,8.1,0,0,0,32,78.7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.6,7.6,0,0,0,3.9,1h0l.9-106.8L33.1,74.6Z" opacity="0.2"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="177 152.5 177 100.5 80 47" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.9,70.8h0a.1.1,0,0,1-.1-.1,16.2,16.2,0,0,0-6-5.9l-88-49.5a16,16,0,0,0-15.6,0l-88,49.5a16.2,16.2,0,0,0-6,5.9.1.1,0,0,1-.1.1v.2A15,15,0,0,0,24,78.7v98.6a16.1,16.1,0,0,0,8.2,14l88,49.5a16.5,16.5,0,0,0,7.2,2h1.4a15.7,15.7,0,0,0,7-2l88-49.5a16.1,16.1,0,0,0,8.2-14V78.7A15.6,15.6,0,0,0,229.9,70.8ZM128,29.2,207.7,74,177.1,91.4,96.4,46.9Zm.9,89.6L48.4,74,80,56.2l80.8,44.5Zm7.2,103.5.8-89.6L169,114.4v38.1a8,8,0,0,0,16,0V105.3l31-17.6v89.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="177 152.5 177 100.5 80 47" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="177 152.5 177 100.5 80 47" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fork_knife` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fork_knife />
  <Heroicons.fork_knife class="w-4 h-4" />
  <Heroicons.fork_knife solid />
  <Heroicons.fork_knife mini />
  <Heroicons.fork_knife outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fork_knife(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="32" x2="84" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="116" x2="84" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,32l8,48a36,36,0,0,1-72,0l8-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M204,160H148S160,48,204,32V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="32" x2="84" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="116" x2="84" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M120,32V80a36,36,0,0,1-72,0V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M204,160H148S160,48,204,32V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,160H148S160,48,204,32" opacity="0.2"/><line x1="84" y1="32" x2="84" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="116" x2="84" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,32l8,48a36,36,0,0,1-72,0l8-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M204,160H148S160,48,204,32V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,32V224a8,8,0,0,1-16,0V168H148a8.2,8.2,0,0,1-6-2.7,8.1,8.1,0,0,1-2-6.2,412.8,412.8,0,0,1,11.8-59.3c12-42.4,28.7-67.8,49.5-75.3A7.9,7.9,0,0,1,212,32ZM127.9,78.7l-8-48a8,8,0,1,0-15.8,2.6L110.6,72H92V32a8,8,0,0,0-16,0V72H57.4l6.5-38.7a8,8,0,1,0-15.8-2.6l-8,48h0A4.9,4.9,0,0,0,40,80a44.1,44.1,0,0,0,36,43.3V224a8,8,0,0,0,16,0V123.3A44.1,44.1,0,0,0,128,80a4.9,4.9,0,0,0-.1-1.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="32" x2="84" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84" y1="116" x2="84" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,32l8,48a36,36,0,0,1-72,0l8-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M204,160H148S160,48,204,32V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="32" x2="84" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84" y1="116" x2="84" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,32l8,48a36,36,0,0,1-72,0l8-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M204,160H148S160,48,204,32V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_dollar_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_dollar_simple />
  <Heroicons.currency_dollar_simple class="w-4 h-4" />
  <Heroicons.currency_dollar_simple solid />
  <Heroicons.currency_dollar_simple mini />
  <Heroicons.currency_dollar_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_dollar_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,168a48,48,0,0,1-48,48H136v16a8,8,0,0,1-16,0V216H104a48,48,0,0,1-48-48,8,8,0,0,1,16,0,32.1,32.1,0,0,0,32,32h48a32,32,0,0,0,0-64H108a48,48,0,0,1,0-96h12V24a8,8,0,0,1,16,0V40h8a48,48,0,0,1,48,48,8,8,0,0,1-16,0,32.1,32.1,0,0,0-32-32H108a32,32,0,0,0,0,64h44A48,48,0,0,1,200,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,88a40,40,0,0,0-40-40H108a40,40,0,0,0,0,80h44a40,40,0,0,1,0,80H104a40,40,0,0,1-40-40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_minus />
  <Heroicons.user_minus class="w-4 h-4" />
  <Heroicons.user_minus solid />
  <Heroicons.user_minus mini />
  <Heroicons.user_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="136" x2="244" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" opacity="0.2"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,136a8,8,0,0,1-8,8H200a8,8,0,0,1,0-16h48A8,8,0,0,1,256,136ZM144.1,157.6a68,68,0,1,0-72.2,0,118.4,118.4,0,0,0-55.8,37.3,7.8,7.8,0,0,0-1.1,8.5,7.9,7.9,0,0,0,7.2,4.6H193.8a7.9,7.9,0,0,0,7.2-4.6,7.8,7.8,0,0,0-1.1-8.5A118.4,118.4,0,0,0,144.1,157.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_left_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_left_simple />
  <Heroicons.align_left_simple class="w-4 h-4" />
  <Heroicons.align_left_simple solid />
  <Heroicons.align_left_simple mini />
  <Heroicons.align_left_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_left_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="56" x2="32" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="56" x2="32" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="72" y="88" width="160" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="88" width="168" height="80" rx="8" opacity="0.2"/><line x1="32" y1="56" x2="32" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,56V200a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0ZM224,80H72A16,16,0,0,0,56,96v64a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V96A16,16,0,0,0,224,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="56" x2="32" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="64" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="56" x2="32" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="64" y="88" width="168" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `texter` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.texter />
  <Heroicons.texter class="w-4 h-4" />
  <Heroicons.texter solid />
  <Heroicons.texter mini />
  <Heroicons.texter outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def texter(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M170.5,115.7A44,44,0,0,0,140,40H64a7.9,7.9,0,0,0-8,8V200a8,8,0,0,0,8,8h88a48,48,0,0,0,18.5-92.3ZM72,56h68a28,28,0,0,1,0,56H72Zm80,136H72V128h80a32,32,0,0,1,0,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_call` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_call />
  <Heroicons.phone_call class="w-4 h-4" />
  <Heroicons.phone_call solid />
  <Heroicons.phone_call mini />
  <Heroicons.phone_call outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_call(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M159.4,40A80.1,80.1,0,0,1,216,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M151.1,70.9a47.9,47.9,0,0,1,34,34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M159.4,40A80.1,80.1,0,0,1,216,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M149.2,78A44.1,44.1,0,0,1,178,106.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" opacity="0.2"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M159.4,40A80.1,80.1,0,0,1,216,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M151.1,70.9a47.9,47.9,0,0,1,34,34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M222,158.4l-46.9-20a15.6,15.6,0,0,0-15.1,1.3l-25.1,16.7a76.5,76.5,0,0,1-35.2-35h0L116.3,96a15.9,15.9,0,0,0,1.4-15.1L97.6,34a16.3,16.3,0,0,0-16.7-9.6A56.2,56.2,0,0,0,32,80c0,79.4,64.6,144,144,144a56.2,56.2,0,0,0,55.6-48.9A16.3,16.3,0,0,0,222,158.4Z"/><path d="M157.4,47.7a72.6,72.6,0,0,1,50.9,50.9,8,8,0,0,0,7.7,6,7.6,7.6,0,0,0,2.1-.3,7.9,7.9,0,0,0,5.6-9.8,88,88,0,0,0-62.2-62.2,8,8,0,1,0-4.1,15.4Z"/><path d="M149.1,78.6a40.4,40.4,0,0,1,28.3,28.3,7.9,7.9,0,0,0,7.7,6,6.4,6.4,0,0,0,2-.3,7.9,7.9,0,0,0,5.7-9.8,55.8,55.8,0,0,0-39.6-39.6,8,8,0,1,0-4.1,15.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M159.4,40A80.1,80.1,0,0,1,216,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M151.1,70.9a47.9,47.9,0,0,1,34,34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M159.4,40A80.1,80.1,0,0,1,216,96.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M151.1,70.9a47.9,47.9,0,0,1,34,34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone />
  <Heroicons.phone class="w-4 h-4" />
  <Heroicons.phone solid />
  <Heroicons.phone mini />
  <Heroicons.phone outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" opacity="0.2"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M222,158.4l-46.9-20a15.6,15.6,0,0,0-15.1,1.3l-25.1,16.7a76.5,76.5,0,0,1-35.2-35h0L116.3,96a15.9,15.9,0,0,0,1.4-15.1L97.6,34a16.3,16.3,0,0,0-16.7-9.6A56.2,56.2,0,0,0,32,80c0,79.4,64.6,144,144,144a56.2,56.2,0,0,0,55.6-48.9A16.3,16.3,0,0,0,222,158.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thermometer_hot` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thermometer_hot />
  <Heroicons.thermometer_hot class="w-4 h-4" />
  <Heroicons.thermometer_hot solid />
  <Heroicons.thermometer_hot mini />
  <Heroicons.thermometer_hot outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thermometer_hot(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240.3,80A20,20,0,0,1,212,80a20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240.3,120a20,20,0,0,1-28.3,0,20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="188" r="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="176" x2="108" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M240.3,80A20,20,0,0,1,212,80a20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M240.3,120a20,20,0,0,1-28.3,0,20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,154.8V56a40,40,0,0,1,80,0v98.8h0a52,52,0,1,1-80,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240.3,80A20,20,0,0,1,212,80a20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240.3,120a20,20,0,0,1-28.3,0,20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,147h0V48a32,32,0,0,0-64,0v99h0a52,52,0,1,0,64,0Zm-32,61a20,20,0,1,1,20-20A20.1,20.1,0,0,1,120,208Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,143.3V48a40,40,0,0,0-80,0v95.3A59.4,59.4,0,0,0,60,188a60,60,0,0,0,120,0A59.4,59.4,0,0,0,160,143.3ZM120,24a24.1,24.1,0,0,1,24,24v8H96V48A24.1,24.1,0,0,1,120,24Zm58.1,61.7a8,8,0,0,1,0-11.4,28,28,0,0,1,19.8-8.2,28.4,28.4,0,0,1,19.8,8.2,11.9,11.9,0,0,0,16.9,0,8,8,0,0,1,11.3,11.4,28,28,0,0,1-19.8,8.2,28.4,28.4,0,0,1-19.8-8.2,11.9,11.9,0,0,0-16.9,0A8,8,0,0,1,178.1,85.7Zm67.8,28.6a8,8,0,0,1,0,11.4,28,28,0,0,1-19.8,8.2,28.4,28.4,0,0,1-19.8-8.2,11.9,11.9,0,0,0-16.9,0,8,8,0,0,1-11.3-11.4,28,28,0,0,1,19.8-8.2,28.4,28.4,0,0,1,19.8,8.2,11.9,11.9,0,0,0,16.9,0A8,8,0,0,1,245.9,114.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="168" x2="120" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M240.3,80A20,20,0,0,1,212,80a20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M240.3,120a20,20,0,0,1-28.3,0,20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="188" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="168" x2="120" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M240.3,80A20,20,0,0,1,212,80a20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M240.3,120a20,20,0,0,1-28.3,0,20,20,0,0,0-28.3,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,147V48a32,32,0,0,1,64,0v99h0a52,52,0,1,1-64,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_btc` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_btc />
  <Heroicons.currency_btc class="w-4 h-4" />
  <Heroicons.currency_btc solid />
  <Heroicons.currency_btc mini />
  <Heroicons.currency_btc outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_btc(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,120h72a40,40,0,0,1,0,80H80V48h60a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="48" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="80" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="48" x2="136" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="224" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="224" x2="136" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,120h72a40,40,0,0,1,0,80H80V48h60a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="48" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="200" x2="80" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="48" x2="100" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="140" y1="48" x2="140" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="224" x2="100" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="140" y1="224" x2="140" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,120h72a40,40,0,0,1,0,80H80V48h60a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="48" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="80" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="48" x2="136" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="224" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="224" x2="136" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M170.5,115.7A44,44,0,0,0,144,40.2V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H64a8,8,0,0,0,0,16h8V192H64a8,8,0,0,0,0,16H96v16a8,8,0,0,0,16,0V208h16v16a8,8,0,0,0,16,0V208h8a48,48,0,0,0,18.5-92.3ZM168,84a28.1,28.1,0,0,1-28,28H88V56h52A28.1,28.1,0,0,1,168,84ZM152,192H88V128h64a32,32,0,0,1,0,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,120h72a40,40,0,0,1,0,80H80V48h60a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="48" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="200" x2="80" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="48" x2="136" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="224" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="224" x2="136" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,120h72a40,40,0,0,1,0,80H80V48h60a36,36,0,0,1,0,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="48" x2="80" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="200" x2="80" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="48" x2="104" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="48" x2="136" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="224" x2="104" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="224" x2="136" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_user` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_user />
  <Heroicons.folder_user class="w-4 h-4" />
  <Heroicons.folder_user solid />
  <Heroicons.folder_user mini />
  <Heroicons.folder_user outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_user(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M98.4,46.7,128,80H32V52a8,8,0,0,1,8-8H92.4A8,8,0,0,1,98.4,46.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" opacity="0.2"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M226.7,218a8,8,0,0,1-7.7,10H157a8,8,0,0,1-7.7-10,40.2,40.2,0,0,1,16.3-23.2,32,32,0,1,1,44.8,0A40.2,40.2,0,0,1,226.7,218ZM232,88v32a8,8,0,0,1-16,0V88H40V200h80.6a8,8,0,1,1,0,16H39.4A15.4,15.4,0,0,1,24,200.6V56A16,16,0,0,1,40,40H92.7A15.9,15.9,0,0,1,104,44.7L131.3,72H216A16,16,0,0,1,232,88ZM40,56V72h68.7l-16-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120.6,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_rub` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_rub />
  <Heroicons.currency_rub class="w-4 h-4" />
  <Heroicons.currency_rub solid />
  <Heroicons.currency_rub mini />
  <Heroicons.currency_rub outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_rub(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,216V40h60a52,52,0,0,1,0,104H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="184" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,216V40h60a52,52,0,0,1,0,104H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,216V40h60a52,52,0,0,1,0,104H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,152a60,60,0,0,0,0-120H88a8,8,0,0,0-8,8v96H56a8,8,0,0,0,0,16H80v16H56a8,8,0,0,0,0,16H80v32a8,8,0,0,0,16,0V184h48a8,8,0,0,0,0-16H96V152ZM96,48h52a44,44,0,0,1,0,88H96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,216V40h60a52,52,0,0,1,0,104H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="176" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,216V40h60a52,52,0,0,1,0,104H56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `film_script` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.film_script />
  <Heroicons.film_script class="w-4 h-4" />
  <Heroicons.film_script solid />
  <Heroicons.film_script mini />
  <Heroicons.film_script outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def film_script(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="32" width="160" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="76" r="12"/><circle cx="84" cy="180" r="12"/><circle cx="84" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="32" width="160" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="80" r="16"/><circle cx="92" cy="176" r="16"/><circle cx="92" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="32" width="160" height="192" rx="8" opacity="0.2"/><rect x="48" y="32" width="160" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="80" r="12"/><circle cx="84" cy="176" r="12"/><circle cx="84" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM76,188a12,12,0,1,1,12-12A12,12,0,0,1,76,188Zm0-48a12,12,0,1,1,12-12A12,12,0,0,1,76,140Zm0-48A12,12,0,1,1,88,80,12,12,0,0,1,76,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="32" width="160" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="84" cy="80" r="10"/><circle cx="84" cy="176" r="10"/><circle cx="84" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="32" width="160" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="80" r="8"/><circle cx="84" cy="176" r="8"/><circle cx="84" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `scales` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.scales />
  <Heroicons.scales class="w-4 h-4" />
  <Heroicons.scales solid />
  <Heroicons.scales mini />
  <Heroicons.scales outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def scales(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="88" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="216" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="88" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" opacity="0.2"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" opacity="0.2"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="88" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.4,133l-32-80h0l-.5-.9h0l-.6-.8c-.1-.1-.1-.1-.1-.2l-.8-.8a.1.1,0,0,1-.1-.1l-.7-.5-.2-.2-.9-.5h-.2l-.8-.3h-.2l-1-.2h-3L136,62V40a8,8,0,0,0-16,0V65.6L54.3,80.2h-.7l-1,.4h-.2l-.8.4a.1.1,0,0,1-.1.1l-.9.7a.1.1,0,0,1-.1.1l-.6.7h-.1a2.4,2.4,0,0,0-.6.9l-.2.2-.4.9h-.1L16.6,165a8,8,0,0,0-.6,3c0,23.3,24.5,32,40,32s40-8.7,40-32a8,8,0,0,0-.6-3L66.9,93.8,120,82V208H104a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16H136V78.4l50.9-11.3L160.6,133a8,8,0,0,0-.6,3c0,23.3,24.5,32,40,32s40-8.7,40-32A8,8,0,0,0,239.4,133ZM32.6,168,56,109.5,79.4,168Zm144-32L200,77.5,223.4,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="216" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="88" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="216" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="88" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,168c0,17.7,20,24,32,24s32-6.3,32-24L56,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,136c0,17.7,20,24,32,24s32-6.3,32-24L200,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `balloon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.balloon />
  <Heroicons.balloon class="w-4 h-4" />
  <Heroicons.balloon solid />
  <Heroicons.balloon mini />
  <Heroicons.balloon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def balloon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104c0,44.2-35.8,96-80,96s-80-51.8-80-96a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="138.8 199 152 232 104 232 117.2 199" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,56.7A47.8,47.8,0,0,1,175.3,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104c0,44.2-35.8,92-80,92s-80-47.8-80-92a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144.7 193.7 160 232 96 232 111.3 193.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M140,70a36.8,36.8,0,0,1,22,22" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104a80,80,0,0,0-160,0c0,40.5,30.1,87.5,69.2,95h0L104,232h48l-13.2-33h0C177.9,191.5,208,144.5,208,104Z" opacity="0.2"/><path d="M208,104c0,44.2-35.8,96-80,96s-80-51.8-80-96a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="138.8 199 152 232 104 232 117.2 199" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136,56.7A47.8,47.8,0,0,1,175.3,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,16a88.1,88.1,0,0,0-88,88c0,23.4,9.4,49.4,25.1,69.5,11.9,15.2,26.2,25.7,41.3,30.9L96.6,229a8,8,0,0,0,.8,7.5A7.9,7.9,0,0,0,104,240h48a7.9,7.9,0,0,0,6.6-3.5,8,8,0,0,0,.8-7.5l-9.8-24.6c15.1-5.2,29.4-15.7,41.3-30.9C206.6,153.4,216,127.4,216,104A88.1,88.1,0,0,0,128,16Zm48.7,87.9h-1.4a8.1,8.1,0,0,1-7.9-6.7,39.7,39.7,0,0,0-32.7-32.7,8.1,8.1,0,0,1-6.6-9.3,7.9,7.9,0,0,1,9.2-6.5,55.9,55.9,0,0,1,45.9,45.9A7.9,7.9,0,0,1,176.7,103.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104c0,44.2-35.8,96-80,96s-80-51.8-80-96a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="138.8 199 152 232 104 232 117.2 199" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136,56.7A47.8,47.8,0,0,1,175.3,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104c0,44.2-35.8,96-80,96s-80-51.8-80-96a80,80,0,0,1,160,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="138.8 199 152 232 104 232 117.2 199" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136,56.7A47.8,47.8,0,0,1,175.3,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `image_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.image_square />
  <Heroicons.image_square class="w-4 h-4" />
  <Heroicons.image_square solid />
  <Heroicons.image_square mini />
  <Heroicons.image_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def image_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,160l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0L40,176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="92" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,160l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0L40,176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="100" cy="92" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,176V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V160h0l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,160l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0L40,176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="92" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="100" cy="92" r="12"/><path d="M208,32H48A16,16,0,0,0,32,48V176h0v32a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm-28.7,80a16.1,16.1,0,0,0-22.6,0L112,156.7,91.3,136a16.1,16.1,0,0,0-22.6,0L48,156.7V48H208v92.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,160l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0L40,176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="100" cy="92" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,160l-42.3-42.3a8,8,0,0,0-11.4,0l-44.6,44.6a8,8,0,0,1-11.4,0L85.7,141.7a8,8,0,0,0-11.4,0L40,176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="100" cy="92" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `telegram_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.telegram_logo />
  <Heroicons.telegram_logo class="w-4 h-4" />
  <Heroicons.telegram_logo solid />
  <Heroicons.telegram_logo mini />
  <Heroicons.telegram_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def telegram_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,134.9,224.1,36.6h0a7.8,7.8,0,0,0-6.2-.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" opacity="0.2"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9Z" opacity="0.2"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.3,31.7A16.1,16.1,0,0,0,215,29L30.4,101.5a15.8,15.8,0,0,0-10.1,16.3,16,16,0,0,0,12.8,14.3L80,141.4V200a16,16,0,0,0,9.9,14.8A16.6,16.6,0,0,0,96,216a15.8,15.8,0,0,0,11.3-4.7l26-25.9L172.6,220a16,16,0,0,0,10.5,4,14.2,14.2,0,0,0,5-.8,15.9,15.9,0,0,0,10.7-11.6L236.4,47.4A16,16,0,0,0,231.3,31.7ZM183.2,208l-82.4-72.5L219.5,49.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_kzt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_kzt />
  <Heroicons.currency_kzt class="w-4 h-4" />
  <Heroicons.currency_kzt solid />
  <Heroicons.currency_kzt mini />
  <Heroicons.currency_kzt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_kzt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="56" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="100" x2="200" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="52" x2="200" y2="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="100" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="56" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,96a8,8,0,0,1-8,8H136V216a8,8,0,0,1-16,0V104H56a8,8,0,0,1,0-16H200A8,8,0,0,1,208,96ZM56,64H200a8,8,0,0,0,0-16H56a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="56" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="56" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `users_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.users_four />
  <Heroicons.users_four class="w-4 h-4" />
  <Heroicons.users_four solid />
  <Heroicons.users_four mini />
  <Heroicons.users_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def users_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="80" cy="64" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,116a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="172" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="64" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,116a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="168" r="32" opacity="0.2"/><circle cx="80" cy="64" r="32" opacity="0.2"/><circle cx="176" cy="168" r="32" opacity="0.2"/><circle cx="176" cy="64" r="32" opacity="0.2"/><circle cx="80" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M25.6,115.2A67.8,67.8,0,0,1,53,93.5a40,40,0,1,1,54,0,68.1,68.1,0,0,1,21,14.3,68.1,68.1,0,0,1,21-14.3,40,40,0,1,1,54,0,67.8,67.8,0,0,1,27.4,21.7,8,8,0,0,1-1.6,11.2,8.1,8.1,0,0,1-11.2-1.6,52,52,0,0,0-83.2,0h0l-.6.6h-.1l-.5.5-.3.2a.1.1,0,0,1-.1.1l-.3.2-.3.2-.5.3h-.2l-1.7.6h-3.3l-.8-.2h-.3l-.9-.4-.3-.2a4.7,4.7,0,0,1-.9-.6h-.1l-.3-.3h-.2c-.2-.2-.4-.3-.5-.5h-.1l-.6-.7a52,52,0,0,0-83.1.1A8,8,0,0,1,32,128a7.7,7.7,0,0,1-4.8-1.6A8,8,0,0,1,25.6,115.2ZM203,197.5a40,40,0,1,0-54,0,68.1,68.1,0,0,0-21,14.3,68.1,68.1,0,0,0-21-14.3,40,40,0,1,0-54,0,67.8,67.8,0,0,0-27.4,21.7A8,8,0,0,0,32,232H224a8,8,0,0,0,6.4-12.8A67.8,67.8,0,0,0,203,197.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="80" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="80" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="80" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="168" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,224a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="64" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,120a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `diamond` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.diamond />
  <Heroicons.diamond class="w-4 h-4" />
  <Heroicons.diamond solid />
  <Heroicons.diamond mini />
  <Heroicons.diamond outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def diamond(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" opacity="0.2"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236,139.3,139.3,236a15.9,15.9,0,0,1-22.6,0L20,139.3a16.1,16.1,0,0,1,0-22.6L116.7,20a16.1,16.1,0,0,1,22.6,0L236,116.7A16.1,16.1,0,0,1,236,139.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="51.6" y="51.6" width="152.7" height="152.74" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_left />
  <Heroicons.arrow_elbow_left class="w-4 h-4" />
  <Heroicons.arrow_elbow_left solid />
  <Heroicons.arrow_elbow_left mini />
  <Heroicons.arrow_elbow_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 80 24 80 24 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 96 136 192 24 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 80 24 80 24 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="232 96 136 192 24 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 80 24 80 24 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 96 136 192 24 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,101.7l-96,96a8.2,8.2,0,0,1-11.4,0L60,127.3,29.7,157.7A8.3,8.3,0,0,1,24,160a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,16,152V80a8,8,0,0,1,8-8H96a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8L71.3,116,136,180.7l90.3-90.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 80 24 80 24 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="232 96 136 192 24 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 80 24 80 24 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="232 96 136 192 24 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `finn_the_human` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.finn_the_human />
  <Heroicons.finn_the_human class="w-4 h-4" />
  <Heroicons.finn_the_human solid />
  <Heroicons.finn_the_human mini />
  <Heroicons.finn_the_human outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def finn_the_human(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="104" width="144" height="72" rx="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,64a24,24,0,0,1,48,0H184a24,24,0,0,1,48,0v80a64.1,64.1,0,0,1-64,64H88a64.1,64.1,0,0,1-64-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="140" r="12"/><circle cx="164" cy="140" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="100" width="144" height="80" rx="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M20,64a24,24,0,0,1,48,0H188a24,24,0,0,1,48,0v88a64.1,64.1,0,0,1-64,64H84a64.1,64.1,0,0,1-64-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="96" cy="140" r="16"/><circle cx="160" cy="140" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40a23.9,23.9,0,0,0-24,24H72a24,24,0,0,0-48,0v80a64.1,64.1,0,0,0,64,64h80a64.1,64.1,0,0,0,64-64V64A23.9,23.9,0,0,0,208,40Zm-8,104a32,32,0,0,1-32,32H88a32,32,0,0,1-32-32v-8a32,32,0,0,1,32-32h80a32,32,0,0,1,32,32Z" opacity="0.2"/><rect x="56" y="104" width="144" height="72" rx="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,64a24,24,0,0,1,48,0H184a24,24,0,0,1,48,0v80a64.1,64.1,0,0,1-64,64H88a64.1,64.1,0,0,1-64-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="140" r="12"/><circle cx="164" cy="140" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,140a12,12,0,1,1-12-12A12,12,0,0,1,176,140ZM92,128a12,12,0,1,0,12,12A12,12,0,0,0,92,128ZM240,64v80a72.1,72.1,0,0,1-72,72H88a72.1,72.1,0,0,1-72-72V64a32,32,0,0,1,63-8h98a32,32,0,0,1,63,8Zm-40,72a32,32,0,0,0-32-32H88a32,32,0,0,0-32,32v8a32,32,0,0,0,32,32h80a32,32,0,0,0,32-32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="104" width="144" height="72" rx="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,64a24,24,0,0,1,48,0H184a24,24,0,0,1,48,0v80a64.1,64.1,0,0,1-64,64H88a64.1,64.1,0,0,1-64-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="140" r="10"/><circle cx="164" cy="140" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="104" width="144" height="72" rx="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,64a24,24,0,0,1,48,0H184a24,24,0,0,1,48,0v80a64.1,64.1,0,0,1-64,64H88a64.1,64.1,0,0,1-64-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="140" r="8"/><circle cx="164" cy="140" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_nine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_nine />
  <Heroicons.number_square_nine class="w-4 h-4" />
  <Heroicons.number_square_nine solid />
  <Heroicons.number_square_nine mini />
  <Heroicons.number_square_nine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_nine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,112a20,20,0,1,1-20-20A20.1,20.1,0,0,1,148,112Zm76-64V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H208A16,16,0,0,1,224,48Zm-60,64a36,36,0,1,0-36,36h1.8l-16.7,27.9a8.1,8.1,0,0,0,2.8,11A8.7,8.7,0,0,0,120,188a8.1,8.1,0,0,0,6.9-3.9l32.2-54,.3-.5A36,36,0,0,0,164,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152.2" y1="126" x2="120" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="112" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `prescription` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.prescription />
  <Heroicons.prescription class="w-4 h-4" />
  <Heroicons.prescription solid />
  <Heroicons.prescription mini />
  <Heroicons.prescription outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def prescription(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128h48a44,44,0,0,0,0-88H72V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="128" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="160" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128h48a44,44,0,0,0,0-88H72V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="128" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="160" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128h48a44,44,0,0,0,0-88H72V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,128h48a44,44,0,0,0,0-88H72Z" opacity="0.2"/><line x1="112" y1="128" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="160" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M183.3,188l22.4-22.3a8.1,8.1,0,0,0-11.4-11.4L172,176.7,130.3,135A52,52,0,0,0,120,32H72a8,8,0,0,0-8,8V192a8,8,0,0,0,16,0V136h28.7l52,52-22.4,22.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L172,199.3l22.3,22.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4ZM80,48h40a36,36,0,0,1,0,72H80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128h48a44,44,0,0,0,0-88H72V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="128" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="160" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128h48a44,44,0,0,0,0-88H72V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="128" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="160" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `jeep` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.jeep />
  <Heroicons.jeep class="w-4 h-4" />
  <Heroicons.jeep solid />
  <Heroicons.jeep mini />
  <Heroicons.jeep outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def jeep(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="96" x2="240" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="128" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="128" x2="112" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,176H36V96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="72" cy="132" r="12"/><circle cx="184" cy="132" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="96" x2="240" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="136" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="136" x2="168" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="136" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M220,176H36V96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176Z" opacity="0.2"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176Z" opacity="0.2"/><path d="M36,96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" opacity="0.2"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="96" x2="240" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="128" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="128" x2="112" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,176H36V96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="72" cy="132" r="12"/><circle cx="184" cy="132" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.7,88H226.9l-6-42.3A16,16,0,0,0,205.1,32H50.9A16,16,0,0,0,35.1,45.7L29.1,88H16.3A8.2,8.2,0,0,0,8,95.5a8,8,0,0,0,8,8.5H28V208a16,16,0,0,0,16,16H68a16,16,0,0,0,16-16V184h16a4,4,0,0,0,4-4V128.3a8.2,8.2,0,0,1,7.5-8.3,8,8,0,0,1,8.5,8v52a4,4,0,0,0,4,4h8a4,4,0,0,0,4-4V128.3a8.2,8.2,0,0,1,7.5-8.3,8,8,0,0,1,8.5,8v52a4,4,0,0,0,4,4h16v24a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V104h12a8,8,0,0,0,8-8.5A8.2,8.2,0,0,0,239.7,88ZM72,144a12,12,0,1,1,12-12A12,12,0,0,1,72,144Zm112,0a12,12,0,1,1,12-12A12,12,0,0,1,184,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="96" x2="240" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="128" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="128" x2="112" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M220,176H36V96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="184" cy="132" r="10"/><circle cx="72" cy="132" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,176v32a8,8,0,0,1-8,8H188a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,176v32a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="96" x2="240" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="128" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="128" x2="112" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M220,176H36V96l7-49.1A8,8,0,0,1,50.9,40H205.1a8,8,0,0,1,7.9,6.9L220,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="72" cy="132" r="8"/><circle cx="184" cy="132" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `screencast` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.screencast />
  <Heroicons.screencast class="w-4 h-4" />
  <Heroicons.screencast solid />
  <Heroicons.screencast mini />
  <Heroicons.screencast outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def screencast(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,192a16,16,0,0,1,16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,160a48,48,0,0,1,48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36,68V60a8,8,0,0,1,8-8H212a8,8,0,0,1,8,8V196a8,8,0,0,1-8,8H172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,188a16,16,0,0,1,16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,148a56,56,0,0,1,56,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,108a96,96,0,0,1,96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V192a16,16,0,0,1,16,16H216a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48Z" opacity="0.2"/><path d="M32,96V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,192a16,16,0,0,1,16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,160a48,48,0,0,1,48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,184a8,8,0,0,0,0,16,8,8,0,0,1,8,8,8,8,0,0,0,16,0A24.1,24.1,0,0,0,32,184Z"/><path d="M32,152a8,8,0,0,0,0,16,40,40,0,0,1,40,40,8,8,0,0,0,16,0A56,56,0,0,0,32,152Z"/><path d="M32,120a8,8,0,0,0,0,16,72.1,72.1,0,0,1,72,72,8,8,0,0,0,16,0A88.1,88.1,0,0,0,32,120Z"/><path d="M216,40H40A16,16,0,0,0,24,56V96a8,8,0,0,0,8,8A104.2,104.2,0,0,1,136,208a8,8,0,0,0,8,8h72a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,192a16,16,0,0,1,16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,160a48,48,0,0,1,48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,128a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,192a16,16,0,0,1,16,16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,160a48,48,0,0,1,48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,128a80,80,0,0,1,80,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shopping_bag_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shopping_bag_open />
  <Heroicons.shopping_bag_open class="w-4 h-4" />
  <Heroicons.shopping_bag_open solid />
  <Heroicons.shopping_bag_open mini />
  <Heroicons.shopping_bag_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shopping_bag_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,112a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,124a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80H224V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,112a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM128,160a48,48,0,0,1-48-48,8,8,0,0,1,16,0,32,32,0,0,0,64,0,8,8,0,0,1,16,0A48,48,0,0,1,128,160ZM40,72V56H216V72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,112a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,112a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bus />
  <Heroicons.bus class="w-4 h-4" />
  <Heroicons.bus solid />
  <Heroicons.bus mini />
  <Heroicons.bus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="42" y1="72" x2="214" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42" y1="120" x2="214" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214,192H42V64A23.9,23.9,0,0,1,66,40H190a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214,192v24a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82,192v24a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="156" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="42" y1="80" x2="214" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="42" y1="132" x2="214" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M214,184H42V64A23.9,23.9,0,0,1,66,40H190a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M214,184v32a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M82,184v32a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M214,192v24a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V192Z" opacity="0.3"/><path d="M82,192v24a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V192Z" opacity="0.3"/><rect x="42" y="72" width="172" height="48" opacity="0.2"/><line x1="42" y1="72" x2="214" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42" y1="120" x2="214" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214,192H42V64A23.9,23.9,0,0,1,66,40H190a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214,192v24a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82,192v24a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="156" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M190,32H66A32.1,32.1,0,0,0,34,64V216a16,16,0,0,0,16,16H74a16,16,0,0,0,16-16V200h76v16a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V64A32.1,32.1,0,0,0,190,32ZM82,168a12,12,0,1,1,12-12A12,12,0,0,1,82,168Zm92,0a12,12,0,1,1,12-12A12,12,0,0,1,174,168Zm32-48H50V72H206Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="42" y1="72" x2="214" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="42" y1="120" x2="214" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M214,192H42V64A23.9,23.9,0,0,1,66,40H190a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M214,192v24a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M82,192v24a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="172" cy="156" r="10"/><circle cx="84" cy="156" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="42" y1="72" x2="214" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="42" y1="120" x2="214" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M214,192H42V64A23.9,23.9,0,0,1,66,40H190a23.9,23.9,0,0,1,24,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M214,192v24a8,8,0,0,1-8,8H182a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M82,192v24a8,8,0,0,1-8,8H50a8,8,0,0,1-8-8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="156" r="8"/><circle cx="172" cy="156" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `megaphone_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.megaphone_simple />
  <Heroicons.megaphone_simple class="w-4 h-4" />
  <Heroicons.megaphone_simple solid />
  <Heroicons.megaphone_simple mini />
  <Heroicons.megaphone_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def megaphone_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,50.7V189.3A8,8,0,0,0,42.2,197l176-51.3A8,8,0,0,0,224,138V102a8,8,0,0,0-5.8-7.7L42.2,43A8,8,0,0,0,32,50.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,155.7V192a8,8,0,0,1-8,8H144a8,8,0,0,1-8-8V70.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,50.7V189.3A8,8,0,0,0,42.2,197l176-51.3A8,8,0,0,0,224,138V102a8,8,0,0,0-5.8-7.7L42.2,43A8,8,0,0,0,32,50.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,155.7V192a8,8,0,0,1-8,8H144a8,8,0,0,1-8-8V70.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.2,43A8,8,0,0,0,32,50.7V189.3A8,8,0,0,0,42.2,197L136,169.7V70.3Z" opacity="0.2"/><path d="M32,50.7V189.3A8,8,0,0,0,42.2,197l176-51.3A8,8,0,0,0,224,138V102a8,8,0,0,0-5.8-7.7L42.2,43A8,8,0,0,0,32,50.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,155.7V192a8,8,0,0,1-8,8H144a8,8,0,0,1-8-8V70.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220.5,86.6,138.4,62.7h-.1L44.5,35.3a15.8,15.8,0,0,0-14.1,2.6A15.7,15.7,0,0,0,24,50.7V189.3a16,16,0,0,0,15.9,16,17.6,17.6,0,0,0,4.6-.6L128,180.3V192a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V161.7l28.5-8.3A16.1,16.1,0,0,0,232,138V102A16.1,16.1,0,0,0,220.5,86.6ZM176,192H144V175.7l32-9.4Zm40-54-34.4,10h0L144,159V81l72,21Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,50.7V189.3A8,8,0,0,0,42.2,197l176-51.3A8,8,0,0,0,224,138V102a8,8,0,0,0-5.8-7.7L42.2,43A8,8,0,0,0,32,50.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,155.7V192a8,8,0,0,1-8,8H144a8,8,0,0,1-8-8V70.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,50.7V189.3A8,8,0,0,0,42.2,197l176-51.3A8,8,0,0,0,224,138V102a8,8,0,0,0-5.8-7.7L42.2,43A8,8,0,0,0,32,50.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,155.7V192a8,8,0,0,1-8,8H144a8,8,0,0,1-8-8V70.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pen` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pen />
  <Heroicons.pen class="w-4 h-4" />
  <Heroicons.pen solid />
  <Heroicons.pen mini />
  <Heroicons.pen outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pen(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 192 200 152 192 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.5" y1="160.5" x2="95.5" y2="215.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="164 200 204 160 192 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="156" x2="100" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120,136,64l26.3-26.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" opacity="0.2"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 192 200 152 192 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40.5" y1="160.5" x2="95.5" y2="215.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.7,88A15.9,15.9,0,0,0,224,76.7L179.3,32a16.1,16.1,0,0,0-22.6,0L36.7,152a16,16,0,0,0-3.6,5.4l-.3.8a17,17,0,0,0-.8,5.1V208a16,16,0,0,0,16,16H92.7a14.4,14.4,0,0,0,5.1-.9l.8-.2a16,16,0,0,0,5.4-3.6l83.7-83.7,3.4,13.9-36.8,36.8a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0l40-40a8.5,8.5,0,0,0,2.1-7.6l-6.9-27.6L224,99.3A15.9,15.9,0,0,0,228.7,88ZM192,108.7,147.3,64,168,43.3,212.7,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 192 200 152 192 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40.5" y1="160.5" x2="95.5" y2="215.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 192 200 152 192 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40.5" y1="160.5" x2="95.5" y2="215.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hexagon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hexagon />
  <Heroicons.hexagon class="w-4 h-4" />
  <Heroicons.hexagon solid />
  <Heroicons.hexagon mini />
  <Heroicons.hexagon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hexagon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" opacity="0.2"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.9,66.7l-84-47.4a15.9,15.9,0,0,0-15.8,0l-84,47.4a16.2,16.2,0,0,0-8.1,14v94.6a16.2,16.2,0,0,0,8.1,14l84,47.4a15.9,15.9,0,0,0,15.8,0l84-47.4a16.2,16.2,0,0,0,8.1-14V80.7A16.2,16.2,0,0,0,219.9,66.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220,175.3V80.7a8.1,8.1,0,0,0-4.1-7l-84-47.5a7.8,7.8,0,0,0-7.8,0l-84,47.5a8.1,8.1,0,0,0-4.1,7v94.6a8.1,8.1,0,0,0,4.1,7l84,47.5a7.8,7.8,0,0,0,7.8,0l84-47.5A8.1,8.1,0,0,0,220,175.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_plus />
  <Heroicons.user_plus class="w-4 h-4" />
  <Heroicons.user_plus solid />
  <Heroicons.user_plus mini />
  <Heroicons.user_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="112" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="136" x2="244" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="116" x2="224" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" opacity="0.2"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="112" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,136a8,8,0,0,1-8,8H232v16a8,8,0,0,1-16,0V144H200a8,8,0,0,1,0-16h16V112a8,8,0,0,1,16,0v16h16A8,8,0,0,1,256,136ZM144.1,157.6a68,68,0,1,0-72.2,0,118.4,118.4,0,0,0-55.8,37.3,7.8,7.8,0,0,0-1.1,8.5,7.9,7.9,0,0,0,7.2,4.6H193.8a7.9,7.9,0,0,0,7.2-4.6,7.8,7.8,0,0,0-1.1-8.5A118.4,118.4,0,0,0,144.1,157.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="112" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="200" y1="136" x2="248" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="112" x2="224" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `martini` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.martini />
  <Heroicons.martini class="w-4 h-4" />
  <Heroicons.martini solid />
  <Heroicons.martini mini />
  <Heroicons.martini outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def martini(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 40 232 40 128 144 24 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="144" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="72" x2="200" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 40 232 40 128 144 24 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="144" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60" y1="76" x2="196" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 72 200 72 128 144 56 72" opacity="0.2"/><polygon points="24 40 232 40 128 144 24 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="144" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="72" x2="200" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,45.7a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,232,32H24a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8L120,147.3V208H88a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16H136V147.3Zm-25,2.3-16,16H59.3l-16-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 40 232 40 128 144 24 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="144" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="72" x2="200" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="24 40 232 40 128 144 24 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="144" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="72" x2="200" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eye` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eye />
  <Heroicons.eye class="w-4 h-4" />
  <Heroicons.eye solid />
  <Heroicons.eye mini />
  <Heroicons.eye outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eye(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Zm0,112a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z" opacity="0.2"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M247.3,124.8c-.3-.8-8.8-19.6-27.6-38.5C194.6,61.3,162.9,48,128,48S61.4,61.3,36.3,86.3C17.5,105.2,9,124,8.7,124.8a7.9,7.9,0,0,0,0,6.4c.3.8,8.8,19.6,27.6,38.5C61.4,194.7,93.1,208,128,208s66.6-13.3,91.7-38.3c18.8-18.9,27.3-37.7,27.6-38.5A7.9,7.9,0,0,0,247.3,124.8ZM128,92a36,36,0,1,1-36,36A36,36,0,0,1,128,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_tablet_speaker` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_tablet_speaker />
  <Heroicons.device_tablet_speaker class="w-4 h-4" />
  <Heroicons.device_tablet_speaker solid />
  <Heroicons.device_tablet_speaker mini />
  <Heroicons.device_tablet_speaker outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_tablet_speaker(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="72" x2="160" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24H64A24.1,24.1,0,0,0,40,48V208a24.1,24.1,0,0,0,24,24H192a24.1,24.1,0,0,0,24-24V48A24.1,24.1,0,0,0,192,24ZM160,72H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="64" x2="160" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `terminal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.terminal />
  <Heroicons.terminal class="w-4 h-4" />
  <Heroicons.terminal solid />
  <Heroicons.terminal mini />
  <Heroicons.terminal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def terminal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 64 112 128 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 64 112 128 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 64 112 128 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,128a8,8,0,0,0-2.7-6l-72-64A8,8,0,1,0,34.7,70L100,128,34.7,186A8,8,0,0,0,40,200a8.1,8.1,0,0,0,5.3-2l72-64A8,8,0,0,0,120,128Z"/><path d="M216,184H120a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 64 112 128 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 64 112 128 40 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_one` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_one />
  <Heroicons.number_circle_one class="w-4 h-4" />
  <Heroicons.number_circle_one solid />
  <Heroicons.number_circle_one mini />
  <Heroicons.number_circle_one outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_one(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm12,152a8,8,0,0,1-16,0V98.9l-11.6,7.8a8,8,0,0,1-8.8-13.4l24-16a8.3,8.3,0,0,1,8.2-.4A8,8,0,0,1,140,84Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hash />
  <Heroicons.hash class="w-4 h-4" />
  <Heroicons.hash solid />
  <Heroicons.hash mini />
  <Heroicons.hash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="43.6" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="160" x2="212.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="43.6" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="40" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="160" x2="212.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="43.6" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="160" x2="212.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88H175.4l8.5-46.6a8,8,0,0,0-15.8-2.8l-9,49.4H111.4l8.5-46.6a8,8,0,1,0-15.8-2.8L95.1,88H43.6a8,8,0,1,0,0,16H92.2l-8.7,48H32a8,8,0,0,0,0,16H80.6l-8.5,46.6a8,8,0,0,0,6.5,9.3H80a8,8,0,0,0,7.9-6.6l9-49.4h47.7l-8.5,46.6a8,8,0,0,0,6.5,9.3H144a8,8,0,0,0,7.9-6.6l9-49.4h51.5a8,8,0,0,0,0-16H163.8l8.7-48H224a8,8,0,0,0,0-16Zm-76.5,64H99.8l8.7-48h47.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="43.6" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="40" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="160" x2="212.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="43.6" y1="96" x2="224" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="40" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="40" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="160" x2="212.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_wavy_check` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_wavy_check />
  <Heroicons.circle_wavy_check class="w-4 h-4" />
  <Heroicons.circle_wavy_check solid />
  <Heroicons.circle_wavy_check mini />
  <Heroicons.circle_wavy_check outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_wavy_check(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" opacity="0.2"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.9,102.8c-3.8-3.9-7.7-8-9.2-11.5s-1.4-8.7-1.5-14c-.1-9.7-.3-20.8-8-28.5s-18.8-7.9-28.5-8c-5.3-.1-10.7-.2-14-1.5s-7.6-5.4-11.5-9.2C146.3,23.5,138.4,16,128,16s-18.3,7.5-25.2,14.1c-3.9,3.8-8,7.7-11.5,9.2s-8.7,1.4-14,1.5c-9.7.1-20.8.3-28.5,8s-7.9,18.8-8,28.5c-.1,5.3-.2,10.7-1.5,14s-5.4,7.6-9.2,11.5C23.5,109.7,16,117.6,16,128s7.5,18.3,14.1,25.2c3.8,3.9,7.7,8,9.2,11.5s1.4,8.7,1.5,14c.1,9.7.3,20.8,8,28.5s18.8,7.9,28.5,8c5.3.1,10.7.2,14,1.5s7.6,5.4,11.5,9.2c6.9,6.6,14.8,14.1,25.2,14.1s18.3-7.5,25.2-14.1c3.9-3.8,8-7.7,11.5-9.2s8.7-1.4,14-1.5c9.7-.1,20.8-.3,28.5-8s7.9-18.8,8-28.5c.1-5.3.2-10.7,1.5-14s5.4-7.6,9.2-11.5c6.6-6.9,14.1-14.8,14.1-25.2S232.5,109.7,225.9,102.8Zm-48.4,7-58.6,56a8.1,8.1,0,0,1-5.6,2.2,7.9,7.9,0,0,1-5.5-2.2l-29.3-28a8,8,0,1,1,11-11.6l23.8,22.7,53.2-50.7a8,8,0,0,1,11,11.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_zero` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_zero />
  <Heroicons.number_zero class="w-4 h-4" />
  <Heroicons.number_zero solid />
  <Heroicons.number_zero mini />
  <Heroicons.number_zero outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_zero(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="72" ry="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="72" ry="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="72" ry="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,240c-25.8,0-47-12.6-61.4-36.4C54.6,183.8,48,157,48,128s6.6-55.9,18.6-75.6C81,28.6,102.2,16,128,16s47,12.6,61.4,36.4C201.4,72.1,208,99,208,128s-6.6,55.8-18.6,75.6C175,227.4,153.8,240,128,240Zm0-208c-44.2,0-64,48.2-64,96s19.8,96,64,96,64-48.2,64-96S172.2,32,128,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="72" ry="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="72" ry="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `files` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.files />
  <Heroicons.files class="w-4 h-4" />
  <Heroicons.files solid />
  <Heroicons.files mini />
  <Heroicons.files outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def files(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224H56a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h80l40,40V216A8,8,0,0,1,168,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,64V40a8,8,0,0,1,8-8h80l40,40V184a8,8,0,0,1-8,8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="152" x2="136" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164,224H56a8,8,0,0,1-8-8V76a8,8,0,0,1,8-8h76l40,40V216A8,8,0,0,1,164,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M84,68V36a8,8,0,0,1,8-8h80l40,40V176a8,8,0,0,1-8,8H172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="144" x2="132" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="184" x2="132" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,192h24a8,8,0,0,0,8-8V72L168,32H88a8,8,0,0,0-8,8V64h56l40,40Z" opacity="0.2"/><path d="M168,224H56a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h80l40,40V216A8,8,0,0,1,168,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,64V40a8,8,0,0,1,8-8h80l40,40V184a8,8,0,0,1-8,8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="152" x2="136" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="184" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,66.3l-40-40A8.1,8.1,0,0,0,168,24H88A16,16,0,0,0,72,40V56H56A16,16,0,0,0,40,72V216a16,16,0,0,0,16,16H168a16,16,0,0,0,16-16V200h16a16,16,0,0,0,16-16V72A8.1,8.1,0,0,0,213.7,66.3ZM136,192H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm0-32H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm64,24H184V104a8.1,8.1,0,0,0-2.3-5.7l-40-40A8.1,8.1,0,0,0,136,56H88V40h76.7L200,75.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224H56a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h80l40,40V216A8,8,0,0,1,168,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,64V40a8,8,0,0,1,8-8h80l40,40V184a8,8,0,0,1-8,8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="152" x2="136" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="184" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224H56a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8h80l40,40V216A8,8,0,0,1,168,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,64V40a8,8,0,0,1,8-8h80l40,40V184a8,8,0,0,1-8,8H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="152" x2="136" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="184" x2="136" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_up />
  <Heroicons.arrow_circle_up class="w-4 h-4" />
  <Heroicons.arrow_circle_up solid />
  <Heroicons.arrow_circle_up mini />
  <Heroicons.arrow_circle_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm39.6,103.6a7.8,7.8,0,0,1-5.7,2.3,7.6,7.6,0,0,1-5.6-2.3L136,107.3V168a8,8,0,0,1-16,0V107.3L99.7,127.6a8,8,0,0,1-11.3-11.3l33.9-33.9a8.7,8.7,0,0,1,2.6-1.8,8.3,8.3,0,0,1,6.2,0,8.7,8.7,0,0,1,2.6,1.8l33.9,33.9A8,8,0,0,1,167.6,127.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 121.9 128 88 161.9 121.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `article_ny_times` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.article_ny_times />
  <Heroicons.article_ny_times class="w-4 h-4" />
  <Heroicons.article_ny_times solid />
  <Heroicons.article_ny_times mini />
  <Heroicons.article_ny_times outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def article_ny_times(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M126.5,131.6A48,48,0,1,1,79.9,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="79.9" y1="114.5" x2="79.9" y2="167.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M111.9,52a20,20,0,0,1,0,40l-64-40a20,20,0,0,0-6.2,39" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="240" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="208" x2="240" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M126.5,131.6A48,48,0,1,1,79.9,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="79.9" y1="114.5" x2="79.9" y2="167.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M111.9,52a20,20,0,0,1,0,40l-64-40a20,20,0,0,0-6.2,39" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M126.5,131.6A48,48,0,1,1,79.9,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="79.9" y1="114.5" x2="79.9" y2="167.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M111.9,52a20,20,0,0,1,0,40l-64-40a20,20,0,0,0-6.2,39" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,104a8,8,0,0,1,8-8h80a8,8,0,0,1,0,16H160A8,8,0,0,1,152,104Zm88,24H160a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16Zm0,32H160a8,8,0,0,0,0,16h80a8,8,0,0,0,0-16Zm0,32H72a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM79.9,176A55.9,55.9,0,0,1,30.4,93.9,28,28,0,0,1,47.9,44a8.2,8.2,0,0,1,4.3,1.2L114,83.8A12,12,0,0,0,111.9,60a8,8,0,0,1,0-16,28,28,0,0,1,0,56,7.9,7.9,0,0,1-4.2-1.2l-30-18.7a40,40,0,0,0-5.8,79.1V114.5a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8v44.7a40,40,0,0,0,30.9-29.5,7.9,7.9,0,0,1,9.6-5.8,8,8,0,0,1,5.9,9.6A56,56,0,0,1,79.9,176Zm-40-95.1A56.3,56.3,0,0,1,58.7,68.2l-12.8-8A12,12,0,0,0,35.9,72,11.8,11.8,0,0,0,39.9,80.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M126.5,131.6A48,48,0,1,1,79.9,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="79.9" y1="114.5" x2="79.9" y2="167.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M111.9,52a20,20,0,0,1,0,40l-64-40a20,20,0,0,0-6.2,39" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="104" x2="240" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="136" x2="240" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="168" x2="240" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M126.5,131.6A48,48,0,1,1,79.9,72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="79.9" y1="114.5" x2="79.9" y2="167.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M111.9,52a20,20,0,0,1,0,40l-64-40a20,20,0,0,0-6.2,39" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cat` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cat />
  <Heroicons.cat class="w-4 h-4" />
  <Heroicons.cat solid />
  <Heroicons.cat mini />
  <Heroicons.cat outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cat(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="140" r="12"/><circle cx="172" cy="140" r="12"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="53" x2="96" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="53" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="84" cy="140" r="16"/><circle cx="172" cy="140" r="16"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="49.9" x2="108" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="49.9" x2="148" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" opacity="0.2"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="140" r="12"/><circle cx="172" cy="140" r="12"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="53" x2="96" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="53" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.4,36.3a16.3,16.3,0,0,0-17,4L187.5,57.2a111.5,111.5,0,0,0-119,0L51.6,40.3a16.3,16.3,0,0,0-17-4A15.9,15.9,0,0,0,24,51.3V136c0,49.1,40.1,89.6,91.6,95.3a4,4,0,0,0,4.4-4v-32l-13.4-13.4a8.3,8.3,0,0,1-.4-11.4,8.1,8.1,0,0,1,11.5-.2L128,180.7l10.3-10.4a8.1,8.1,0,0,1,11.5.2,8.3,8.3,0,0,1-.4,11.4L136,195.3v32a4,4,0,0,0,4.4,4c51.5-5.7,91.6-46.2,91.6-95.3V51.3A15.9,15.9,0,0,0,221.4,36.3ZM84,152a12,12,0,1,1,12-12A12,12,0,0,1,84,152Zm20-64a8,8,0,0,1-16,0V69a8,8,0,0,1,16,0Zm32,0a8,8,0,0,1-16,0V64a8,8,0,0,1,16,0Zm16,0V69a8,8,0,0,1,16,0V88a8,8,0,0,1-16,0Zm20,64a12,12,0,1,1,12-12A12,12,0,0,1,172,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="84" cy="140" r="10"/><circle cx="172" cy="140" r="10"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="53" x2="96" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="53" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="140" r="8"/><circle cx="172" cy="140" r="8"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 176 128 192 112 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="53" x2="96" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="53" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,136V51.3a8,8,0,0,1,13.7-5.6L67.6,67.6h0A100.8,100.8,0,0,1,128,48a100.8,100.8,0,0,1,60.4,19.6h0l21.9-21.9A8,8,0,0,1,224,51.3V136c0,48.6-43,88-96,88S32,184.6,32,136Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_line_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_line_up />
  <Heroicons.arrow_fat_line_up class="w-4 h-4" />
  <Heroicons.arrow_fat_line_up solid />
  <Heroicons.arrow_fat_line_up mini />
  <Heroicons.arrow_fat_line_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_line_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 184 80 184 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 176 80 176 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 184 80 184 80 120 32 120" opacity="0.2"/><polygon points="32 120 128 24 224 120 176 120 176 184 80 184 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.4,123.1A8,8,0,0,1,224,128H184v56a8,8,0,0,1-8,8H80a8,8,0,0,1-8-8V128H32a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l96-96a8.1,8.1,0,0,1,11.4,0l96,96A8.4,8.4,0,0,1,231.4,123.1ZM176,208H80a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 184 80 184 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 184 80 184 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_align_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_align_left />
  <Heroicons.text_align_left class="w-4 h-4" />
  <Heroicons.text_align_left solid />
  <Heroicons.text_align_left mini />
  <Heroicons.text_align_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_align_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="188" x2="168" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="188" x2="168" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="188" x2="168" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,76H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M40,116H168a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M216,140H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M168,180H40a8,8,0,0,0,0,16H168a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="188" x2="168" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="68" x2="216" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="108" x2="168" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="148" x2="216" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="188" x2="168" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tote` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tote />
  <Heroicons.tote class="w-4 h-4" />
  <Heroicons.tote solid />
  <Heroicons.tote mini />
  <Heroicons.tote outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tote(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" opacity="0.2"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235,69.3A15.9,15.9,0,0,0,223.1,64H175.3a48,48,0,0,0-94.6,0H32.9A15.9,15.9,0,0,0,21,69.3a16.2,16.2,0,0,0-4,12.5l14.3,128A15.9,15.9,0,0,0,47.2,224H208.8a15.9,15.9,0,0,0,15.9-14.2L239,81.8A16.2,16.2,0,0,0,235,69.3ZM96,104a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Zm1-40a32,32,0,0,1,62,0Zm79,40a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,216H47.2a8.1,8.1,0,0,1-8-7.1L25,80.9A8,8,0,0,1,32.9,72H223.1a8,8,0,0,1,7.9,8.9l-14.2,128A8.1,8.1,0,0,1,208.8,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `popcorn` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.popcorn />
  <Heroicons.popcorn class="w-4 h-4" />
  <Heroicons.popcorn solid />
  <Heroicons.popcorn mini />
  <Heroicons.popcorn outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def popcorn(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.1,93.3,62.5,209.8a8.1,8.1,0,0,0,7.8,6.2H185.7a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,131,81.2a7.8,7.8,0,0,0-6,0L88,96,45.1,83.7A8.1,8.1,0,0,0,35.1,93.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="96" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="96" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,84a36,36,0,0,0-52.9-31.8,35.9,35.9,0,0,0-70.2,0A36,36,0,0,0,40,84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.1,93.3,62.5,209.8a8.1,8.1,0,0,0,7.8,6.2H185.7a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,131,81.2a7.8,7.8,0,0,0-6,0L88,96,45.1,83.7A8.1,8.1,0,0,0,35.1,93.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="96" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="96" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,84a36,36,0,0,0-52.9-31.8,35.9,35.9,0,0,0-70.2,0A36,36,0,0,0,40,84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,216,88,96,45.1,83.7a8.1,8.1,0,0,0-10,9.6L62.5,209.8a8.1,8.1,0,0,0,7.8,6.2Z" opacity="0.2"/><path d="M185.7,216a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,152,216Z" opacity="0.2"/><path d="M35.1,93.3,62.5,209.8a8.1,8.1,0,0,0,7.8,6.2H185.7a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,131,81.2a7.8,7.8,0,0,0-6,0L88,96,45.1,83.7A8.1,8.1,0,0,0,35.1,93.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="96" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="96" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,84a36,36,0,0,0-52.9-31.8,35.9,35.9,0,0,0-70.2,0A36,36,0,0,0,40,84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224.1,79.9l-.3-.4A43.9,43.9,0,0,0,168,41.7a44,44,0,0,0-80,0A43.9,43.9,0,0,0,32.2,79.5l-.3.4a15.7,15.7,0,0,0-4.6,15.2L54.8,211.7A15.9,15.9,0,0,0,70.3,224H185.7a15.9,15.9,0,0,0,15.5-12.3L228.7,95.1A15.7,15.7,0,0,0,224.1,79.9ZM76,56a27.4,27.4,0,0,1,13.1,3.3,8.4,8.4,0,0,0,7.1.2,8.2,8.2,0,0,0,4.5-5.6,28,28,0,0,1,54.6,0,8.2,8.2,0,0,0,4.5,5.6,8.4,8.4,0,0,0,7.1-.2A27.4,27.4,0,0,1,180,56a28,28,0,0,1,27,20.5L168.4,87.6,133.9,73.8a15.1,15.1,0,0,0-11.8,0L87.6,87.6,49,76.5A28,28,0,0,1,76,56ZM42.9,91.4h0l37.9,10.9L94.9,208H70.3ZM185.7,208H161.1l14.1-105.7,37.9-10.9h0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.1,93.3,62.5,209.8a8.1,8.1,0,0,0,7.8,6.2H185.7a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,131,81.2a7.8,7.8,0,0,0-6,0L88,96,45.1,83.7A8.1,8.1,0,0,0,35.1,93.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="96" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="96" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,84a36,36,0,0,0-52.9-31.8,35.9,35.9,0,0,0-70.2,0A36,36,0,0,0,40,84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.1,93.3,62.5,209.8a8.1,8.1,0,0,0,7.8,6.2H185.7a8.1,8.1,0,0,0,7.8-6.2L220.9,93.3a8.1,8.1,0,0,0-10-9.6L168,96,131,81.2a7.8,7.8,0,0,0-6,0L88,96,45.1,83.7A8.1,8.1,0,0,0,35.1,93.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="96" x2="104" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="96" x2="152" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,84a36,36,0,0,0-52.9-31.8,35.9,35.9,0,0,0-70.2,0A36,36,0,0,0,40,84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pen_nib` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pen_nib />
  <Heroicons.pen_nib class="w-4 h-4" />
  <Heroicons.pen_nib solid />
  <Heroicons.pen_nib mini />
  <Heroicons.pen_nib outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pen_nib(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="224" x2="101.9" y2="154.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136,120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,136l26.3-26.3a8,8,0,0,0,0-11.4L157.7,29.7a8,8,0,0,0-11.4,0L120,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="140" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136,120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,136l26.3-26.3a8,8,0,0,0,0-11.4L157.7,29.7a8,8,0,0,0-11.4,0L120,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="224" x2="99" y2="157" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2L32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136Zm-4,104a20,20,0,1,1,20-20A20.1,20.1,0,0,1,116,160Z" opacity="0.2"/><circle cx="116" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="224" x2="101.9" y2="154.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136,120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,136l26.3-26.3a8,8,0,0,0,0-11.4L157.7,29.7a8,8,0,0,0-11.4,0L120,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,92.7,163.3,24a16.1,16.1,0,0,0-22.6,0L115.6,49.1,57.5,70.9A15.9,15.9,0,0,0,47.4,83.2L26.6,207.8a4,4,0,0,0,6.8,3.5l55-55.1A31.7,31.7,0,0,1,84,140a32,32,0,1,1,32,32,31.7,31.7,0,0,1-16.2-4.4l-55.1,55a4,4,0,0,0,3.5,6.8l124.6-20.7a16.2,16.2,0,0,0,12.3-10.2l21.8-58.1L232,115.3a15.9,15.9,0,0,0,0-22.6Zm-32,32L131.3,56,152,35.3,220.7,104Z"/><circle cx="116" cy="140" r="16"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="224" x2="101.9" y2="154.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136,120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,136l26.3-26.3a8,8,0,0,0,0-11.4L157.7,29.7a8,8,0,0,0-11.4,0L120,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="140" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="224" x2="101.9" y2="154.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,224l139.5-23.2a7.9,7.9,0,0,0,6.1-5.1L200,136,120,56,60.3,78.4a8.1,8.1,0,0,0-5.1,6.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,136l26.3-26.3a8,8,0,0,0,0-11.4L157.7,29.7a8,8,0,0,0-11.4,0L120,56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_wavy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_wavy />
  <Heroicons.circle_wavy class="w-4 h-4" />
  <Heroicons.circle_wavy solid />
  <Heroicons.circle_wavy mini />
  <Heroicons.circle_wavy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_wavy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" opacity="0.2"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,128c0,10.4-7.5,18.3-14.1,25.2-3.8,3.9-7.7,8-9.2,11.5s-1.4,8.7-1.5,14c-.1,9.7-.3,20.8-8,28.5s-18.8,7.9-28.5,8c-5.3.1-10.7.2-14,1.5s-7.6,5.4-11.5,9.2c-6.9,6.6-14.8,14.1-25.2,14.1s-18.3-7.5-25.2-14.1c-3.9-3.8-8-7.7-11.5-9.2s-8.7-1.4-14-1.5c-9.7-.1-20.8-.3-28.5-8s-7.9-18.8-8-28.5c-.1-5.3-.2-10.7-1.5-14s-5.4-7.6-9.2-11.5C23.5,146.3,16,138.4,16,128s7.5-18.3,14.1-25.2c3.8-3.9,7.7-8,9.2-11.5s1.4-8.7,1.5-14c.1-9.7.3-20.8,8-28.5s18.8-7.9,28.5-8c5.3-.1,10.7-.2,14-1.5s7.6-5.4,11.5-9.2C109.7,23.5,117.6,16,128,16s18.3,7.5,25.2,14.1c3.9,3.8,8,7.7,11.5,9.2s8.7,1.4,14,1.5c9.7.1,20.8.3,28.5,8s7.9,18.8,8,28.5c.1,5.3.2,10.7,1.5,14s5.4,7.6,9.2,11.5C232.5,109.7,240,117.6,240,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M54.5,201.5c-9.2-9.2-3.1-28.5-7.8-39.8S24,140.5,24,128s17.8-22,22.7-33.7-1.4-30.6,7.8-39.8S83,51.4,94.3,46.7,115.5,24,128,24s22,17.8,33.7,22.7,30.6-1.4,39.8,7.8,3.1,28.5,7.8,39.8S232,115.5,232,128s-17.8,22-22.7,33.7,1.4,30.6-7.8,39.8-28.5,3.1-39.8,7.8S140.5,232,128,232s-22-17.8-33.7-22.7S63.7,210.7,54.5,201.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `path` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.path />
  <Heroicons.path class="w-4 h-4" />
  <Heroicons.path solid />
  <Heroicons.path mini />
  <Heroicons.path outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def path(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="200" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,56h96a32,32,0,0,1,0,64H72a40,40,0,0,0,0,80H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="200" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,56h96a32,32,0,0,1,0,64H72a40,40,0,0,0,0,80H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="200" cy="200" r="24" opacity="0.2"/><circle cx="200" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,56h96a32,32,0,0,1,0,64H72a40,40,0,0,0,0,80H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,168a32.1,32.1,0,0,0-31,24H72a32,32,0,0,1,0-64h96a40,40,0,0,0,0-80H72a8,8,0,0,0,0,16h96a24,24,0,0,1,0,48H72a48,48,0,0,0,0,96h97a32,32,0,1,0,31-40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="200" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,56h96a32,32,0,0,1,0,64H72a40,40,0,0,0,0,80H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="200" cy="200" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,56h96a32,32,0,0,1,0,64H72a40,40,0,0,0,0,80H176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wrench` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wrench />
  <Heroicons.wrench class="w-4 h-4" />
  <Heroicons.wrench solid />
  <Heroicons.wrench mini />
  <Heroicons.wrench outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wrench(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" opacity="0.2"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M210.9,146.9A72.6,72.6,0,0,1,131,162L79,222.2c-.1.2-.3.3-.4.4a31.9,31.9,0,0,1-45.2,0,31.9,31.9,0,0,1,0-45.2l.4-.4L94,125a72,72,0,0,1,94.1-95.2,7.9,7.9,0,0,1,4.7,5.8,8,8,0,0,1-2.2,7.2L151.7,81.7l3.7,18.9,18.9,3.7,38.9-38.9a8,8,0,0,1,7.2-2.2,7.9,7.9,0,0,1,5.8,4.7A71.7,71.7,0,0,1,210.9,146.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,71a63.9,63.9,0,0,1-89.8,81h0L73,217a24,24,0,0,1-34-34l65-56.1h0a63.9,63.9,0,0,1,81-89.8L143,79l5.7,28.3L177,113Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_centered_dots` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_centered_dots />
  <Heroicons.chat_centered_dots class="w-4 h-4" />
  <Heroicons.chat_centered_dots solid />
  <Heroicons.chat_centered_dots mini />
  <Heroicons.chat_centered_dots outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_centered_dots(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="120" r="12"/><circle cx="80" cy="120" r="12"/><circle cx="176" cy="120" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="100" cy="120" r="16"/><circle cx="156" cy="120" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" opacity="0.2"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="120" r="12"/><circle cx="80" cy="120" r="12"/><circle cx="176" cy="120" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V184a16,16,0,0,0,16,16H99.5l14.8,24.7a16,16,0,0,0,27.4,0L156.5,200H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM80,132a12,12,0,1,1,12-12A12,12,0,0,1,80,132Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,128,132Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,176,132Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="120" r="10"/><circle cx="176" cy="120" r="10"/><circle cx="80" cy="120" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="120" r="8"/><circle cx="80" cy="120" r="8"/><circle cx="176" cy="120" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_dashed` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_dashed />
  <Heroicons.circle_dashed class="w-4 h-4" />
  <Heroicons.circle_dashed solid />
  <Heroicons.circle_dashed mini />
  <Heroicons.circle_dashed outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_dashed(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.3,103.1a96.4,96.4,0,0,1,24.8-43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60.1,195.9a95.7,95.7,0,0,1-24.8-43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.9,220.7a94.2,94.2,0,0,1-49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220.7,152.9a96.4,96.4,0,0,1-24.8,43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,60.1a95.7,95.7,0,0,1,24.8,43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M103.1,35.3a94.2,94.2,0,0,1,49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.3,103.1a96.4,96.4,0,0,1,24.8-43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60.1,195.9a95.7,95.7,0,0,1-24.8-43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152.9,220.7a94.2,94.2,0,0,1-49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M220.7,152.9a96.4,96.4,0,0,1-24.8,43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M195.9,60.1a95.7,95.7,0,0,1,24.8,43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M103.1,35.3a94.2,94.2,0,0,1,49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.3,103.1a96.4,96.4,0,0,1,24.8-43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60.1,195.9a95.7,95.7,0,0,1-24.8-43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.9,220.7a94.2,94.2,0,0,1-49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220.7,152.9a96.4,96.4,0,0,1-24.8,43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M195.9,60.1a95.7,95.7,0,0,1,24.8,43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M103.1,35.3a94.2,94.2,0,0,1,49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M65.8,54.5a8,8,0,0,1,0,11.3A87.7,87.7,0,0,0,43,105.2a8.1,8.1,0,0,1-7.7,6l-2.1-.3a8,8,0,0,1-5.7-9.8,103.2,103.2,0,0,1,27-46.6A7.9,7.9,0,0,1,65.8,54.5ZM43,150.8a8,8,0,0,0-15.5,4.1,104.8,104.8,0,0,0,27,46.7,8,8,0,0,0,5.6,2.3,8.1,8.1,0,0,0,5.7-13.7A87.6,87.6,0,0,1,43,150.8ZM150.8,213a88.1,88.1,0,0,1-45.6,0,8,8,0,0,0-4.1,15.5,107,107,0,0,0,27,3.5,105.4,105.4,0,0,0,26.8-3.5,8,8,0,0,0-4.1-15.5Zm72-67.9a8,8,0,0,0-9.8,5.7,87.7,87.7,0,0,1-22.8,39.4,8.1,8.1,0,0,0,5.7,13.7,7.7,7.7,0,0,0,5.6-2.4,103.2,103.2,0,0,0,27-46.6A8,8,0,0,0,222.8,145.1ZM213,105.2a8.1,8.1,0,0,0,7.7,6l2.1-.3a8,8,0,0,0,5.7-9.8,104.8,104.8,0,0,0-27-46.7,7.9,7.9,0,0,0-11.3.1,8,8,0,0,0,0,11.3A87.6,87.6,0,0,1,213,105.2ZM105.2,43a88.1,88.1,0,0,1,45.6,0,7.6,7.6,0,0,0,2.1.3,8,8,0,0,0,2-15.8,104.4,104.4,0,0,0-53.8,0A8,8,0,0,0,105.2,43Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.3,103.1a96.4,96.4,0,0,1,24.8-43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60.1,195.9a95.7,95.7,0,0,1-24.8-43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152.9,220.7a94.2,94.2,0,0,1-49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M220.7,152.9a96.4,96.4,0,0,1-24.8,43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M195.9,60.1a95.7,95.7,0,0,1,24.8,43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M103.1,35.3a94.2,94.2,0,0,1,49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.3,103.1a96.4,96.4,0,0,1,24.8-43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60.1,195.9a95.7,95.7,0,0,1-24.8-43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152.9,220.7a94.2,94.2,0,0,1-49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M220.7,152.9a96.4,96.4,0,0,1-24.8,43" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M195.9,60.1a95.7,95.7,0,0,1,24.8,43.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M103.1,35.3a94.2,94.2,0,0,1,49.7,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_one` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_one />
  <Heroicons.dice_one class="w-4 h-4" />
  <Heroicons.dice_one solid />
  <Heroicons.dice_one mini />
  <Heroicons.dice_one outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_one(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32ZM128,140a12,12,0,1,1,12-12A12,12,0,0,1,128,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_pie_slice` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_pie_slice />
  <Heroicons.chart_pie_slice class="w-4 h-4" />
  <Heroicons.chart_pie_slice solid />
  <Heroicons.chart_pie_slice mini />
  <Heroicons.chart_pie_slice outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_pie_slice(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M33.6,145.6A92.9,92.9,0,0,1,32,128,95.9,95.9,0,0,1,96,37.5v72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,32A96,96,0,1,1,45.2,176.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,32A96,96,0,1,1,45.2,176.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,106.1,32.5,138.2c-.3-3.4-.5-6.8-.5-10.2A96,96,0,0,1,88,40.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M33.6,145.6A92.9,92.9,0,0,1,32,128,95.9,95.9,0,0,1,96,37.5v72Z" opacity="0.2"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M33.6,145.6A92.9,92.9,0,0,1,32,128,95.9,95.9,0,0,1,96,37.5v72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,32A96,96,0,1,1,45.2,176.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M100,116.5a8.1,8.1,0,0,0,4-7v-72a8,8,0,0,0-10.7-7.6A104.3,104.3,0,0,0,24,128a109.1,109.1,0,0,0,1.7,19,8.1,8.1,0,0,0,4.5,5.8,8.4,8.4,0,0,0,3.4.8,8,8,0,0,0,4-1.1ZM88,49.6v55.3L40.1,132.6c-.1-1.6-.1-3.1-.1-4.6A88.3,88.3,0,0,1,88,49.6Z"/><path d="M218.3,76.4a.8.8,0,0,1-.2-.4l-.4-.5A103.9,103.9,0,0,0,128,24a8,8,0,0,0-8,8v91.4L40.9,169.1a7.9,7.9,0,0,0-3,10.9v.2l.3.5A104,104,0,0,0,232,128,103.5,103.5,0,0,0,218.3,76.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M33.6,145.6A92.9,92.9,0,0,1,32,128,95.9,95.9,0,0,1,96,37.5v72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,32A96,96,0,1,1,45.2,176.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="128" x2="128" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="211.1" y1="80" x2="44.9" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M33.6,145.6A92.9,92.9,0,0,1,32,128,95.9,95.9,0,0,1,96,37.5v72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,32A96,96,0,1,1,45.2,176.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `archive_tray` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.archive_tray />
  <Heroicons.archive_tray class="w-4 h-4" />
  <Heroicons.archive_tray solid />
  <Heroicons.archive_tray mini />
  <Heroicons.archive_tray outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def archive_tray(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 118.1 128 152 161.9 118.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="99.7 115.7 128 144 156.3 115.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="76" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,156H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M76.7,160a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V160Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 118.1 128 152 161.9 118.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V159.9h0V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM88.4,112.4a8,8,0,0,1,11.3,0L120,132.7V72a8,8,0,0,1,16,0v60.7l20.3-20.3a8,8,0,0,1,11.3,11.3l-33.9,34h-.2l-.4.4h-.2l-.5.3c0,.1-.1.1-.1.2l-.5.3h-.2l-.5.3H131l-.7.3h-4.6l-.7-.3h-.1l-.5-.3h-.2l-.5-.3c0-.1-.1-.1-.1-.2l-.5-.3h-.2l-.4-.4h-.2l-33.9-34A8,8,0,0,1,88.4,112.4ZM208,208H48V168H76.7L96,187.3a15.9,15.9,0,0,0,11.3,4.7h41.4a15.9,15.9,0,0,0,11.3-4.7L179.3,168H208v40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 118.1 128 152 161.9 118.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="72" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 118.1 128 152 161.9 118.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="72" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wallet` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wallet />
  <Heroicons.wallet class="w-4 h-4" />
  <Heroicons.wallet solid />
  <Heroicons.wallet mini />
  <Heroicons.wallet outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wallet(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,64V192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H56A16,16,0,0,1,40,64h0A16,16,0,0,1,56,48H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="144" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="180" cy="144" r="16"/><path d="M40,68V192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V96a8,8,0,0,0-8-8H60.5A20.3,20.3,0,0,1,40,68.7,20,20,0,0,1,60,48H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H56A16,16,0,0,1,40,64Z" opacity="0.2"/><path d="M40,64V192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H56A16,16,0,0,1,40,64h0A16,16,0,0,1,56,48H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="144" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24.1,24.1,0,0,0,32,64V192a24.1,24.1,0,0,0,24,24H216a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72Zm-36,84a12,12,0,1,1,12-12A12,12,0,0,1,180,156Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,64V192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H56A16,16,0,0,1,40,64h0A16,16,0,0,1,56,48H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="144" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,64V192a16,16,0,0,0,16,16H216a8,8,0,0,0,8-8V88a8,8,0,0,0-8-8H56A16,16,0,0,1,40,64h0A16,16,0,0,1,56,48H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="144" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lightning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lightning />
  <Heroicons.lightning class="w-4 h-4" />
  <Heroicons.lightning solid />
  <Heroicons.lightning mini />
  <Heroicons.lightning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lightning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" opacity="0.2"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215.8,118.2a8,8,0,0,0-5-5.7L153.2,90.9l14.6-73.3a8.1,8.1,0,0,0-4.1-8.7,7.9,7.9,0,0,0-9.5,1.6l-112,120a7.9,7.9,0,0,0-2,7.3,8.2,8.2,0,0,0,5,5.7l57.6,21.6L88.2,238.4a8.1,8.1,0,0,0,4.1,8.7,8.4,8.4,0,0,0,3.7.9,7.9,7.9,0,0,0,5.8-2.5l112-120A7.9,7.9,0,0,0,215.8,118.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `check_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.check_square />
  <Heroicons.check_square class="w-4 h-4" />
  <Heroicons.check_square solid />
  <Heroicons.check_square mini />
  <Heroicons.check_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def check_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm-30.5,77.8-58.6,56a8.1,8.1,0,0,1-5.6,2.2,7.9,7.9,0,0,1-5.5-2.2l-29.3-28a8,8,0,1,1,11-11.6l23.8,22.7,53.2-50.7a8,8,0,0,1,11,11.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `x_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.x_circle />
  <Heroicons.x_circle class="w-4 h-4" />
  <Heroicons.x_circle solid />
  <Heroicons.x_circle mini />
  <Heroicons.x_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def x_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm37.7,130.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L128,139.3l-26.3,26.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L116.7,128,90.3,101.7a8.1,8.1,0,0,1,11.4-11.4L128,116.7l26.3-26.4a8.1,8.1,0,0,1,11.4,11.4L139.3,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="160" x2="96" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `basketball` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.basketball />
  <Heroicons.basketball class="w-4 h-4" />
  <Heroicons.basketball solid />
  <Heroicons.basketball mini />
  <Heroicons.basketball outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def basketball(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,60.2A95.9,95.9,0,0,1,88,128a95.9,95.9,0,0,1-28,67.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,60.2a96.1,96.1,0,0,0,0,135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,60.2A95.9,95.9,0,0,1,88,128a95.9,95.9,0,0,1-28,67.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M196,60.2a96.1,96.1,0,0,0,0,135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M60.1,195.9a95.8,95.8,0,0,1-.2-135.6h0a95.5,95.5,0,0,1,28,67.7,95.8,95.8,0,0,1-28,67.8Z" opacity="0.2"/><path d="M196.1,195.9a95.8,95.8,0,0,1-.2-135.6h0a96,96,0,0,1,0,135.5Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M60,60.2A95.9,95.9,0,0,1,88,128a95.9,95.9,0,0,1-28,67.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M196,60.2a96.1,96.1,0,0,0,0,135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M63.6,46.4a104.3,104.3,0,0,1,52-21.7,4,4,0,0,1,4.4,4V120H95.7A104.1,104.1,0,0,0,63.4,52.4,3.9,3.9,0,0,1,63.6,46.4ZM46,64.1a104.8,104.8,0,0,0-21.3,51.4,4.1,4.1,0,0,0,4,4.5H79.6A88,88,0,0,0,51.9,63.6,4,4,0,0,0,46,64.1ZM192.4,46.4a104.3,104.3,0,0,0-52-21.7,4,4,0,0,0-4.4,4V120h24.3a104.1,104.1,0,0,1,32.3-67.6A3.9,3.9,0,0,0,192.4,46.4Zm38.9,69.1A104.8,104.8,0,0,0,210,64.1a4,4,0,0,0-5.9-.5A88,88,0,0,0,176.4,120h50.9A4.1,4.1,0,0,0,231.3,115.5Zm-206.6,25A104.8,104.8,0,0,0,46,191.9a4,4,0,0,0,5.9.5A88,88,0,0,0,79.6,136H28.7A4.1,4.1,0,0,0,24.7,140.5ZM210,191.9a104.8,104.8,0,0,0,21.3-51.4,4.1,4.1,0,0,0-4-4.5H176.4a88,88,0,0,0,27.7,56.4A4,4,0,0,0,210,191.9ZM63.6,209.6a104.3,104.3,0,0,0,52,21.7,4,4,0,0,0,4.4-4V136H95.7a104.1,104.1,0,0,1-32.3,67.6A3.9,3.9,0,0,0,63.6,209.6ZM160.3,136H136v91.3a4,4,0,0,0,4.4,4,104.3,104.3,0,0,0,52-21.7,3.9,3.9,0,0,0,.2-6A104.1,104.1,0,0,1,160.3,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M60,60.2A95.9,95.9,0,0,1,88,128a95.9,95.9,0,0,1-28,67.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M196,60.2a96.1,96.1,0,0,0,0,135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M60,60.2A95.9,95.9,0,0,1,88,128a95.9,95.9,0,0,1-28,67.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M196,60.2a96.1,96.1,0,0,0,0,135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="128" x2="224" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `archive_box` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.archive_box />
  <Heroicons.archive_box class="w-4 h-4" />
  <Heroicons.archive_box solid />
  <Heroicons.archive_box mini />
  <Heroicons.archive_box outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def archive_box(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,216H48a8,8,0,0,1-8-8V72L56,40H200l16,32V208A8,8,0,0,1,208,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 150.1 128 184 161.9 150.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,216H48a8,8,0,0,1-8-8V76L56,40H200l16,36V208A8,8,0,0,1,208,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="76" x2="216" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="99.7 151.7 128 180 156.3 151.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="112" x2="128" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72Z" opacity="0.2"/><path d="M208,216H48a8,8,0,0,1-8-8V72L56,40H200l16,32V208A8,8,0,0,1,208,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="94.1 150.1 128 184 161.9 150.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="104" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.2,68.4l-16-32A8.2,8.2,0,0,0,200,32H56a8.2,8.2,0,0,0-7.2,4.4l-16,32A9,9,0,0,0,32,72V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V72A9,9,0,0,0,223.2,68.4Zm-55.6,87.3-33.9,34a8.2,8.2,0,0,1-11.4,0l-33.9-34a8,8,0,0,1,11.3-11.3L120,164.7V104a8,8,0,0,1,16,0v60.7l20.3-20.3a8,8,0,0,1,11.3,11.3ZM52.9,64l8-16H195.1l8,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,216H48a8,8,0,0,1-8-8V72L56,40H200l16,32V208A8,8,0,0,1,208,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 150.1 128 184 161.9 150.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="104" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,216H48a8,8,0,0,1-8-8V72L56,40H200l16,32V208A8,8,0,0,1,208,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 150.1 128 184 161.9 150.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="104" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_up_left />
  <Heroicons.arrow_elbow_up_left class="w-4 h-4" />
  <Heroicons.arrow_elbow_up_left solid />
  <Heroicons.arrow_elbow_up_left mini />
  <Heroicons.arrow_elbow_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 128 48 80 96 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 80 96 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 80 96 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,80V224a8,8,0,0,1-16,0V88H104v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,104,32V72h88A8,8,0,0,1,200,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 80 96 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 80 96 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 224 192 80 48 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_jpg` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_jpg />
  <Heroicons.file_jpg class="w-4 h-4" />
  <Heroicons.file_jpg solid />
  <Heroicons.file_jpg mini />
  <Heroicons.file_jpg outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_jpg(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,200h16a16,16,0,0,0,0-32H104v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,194h12v11.8A21.5,21.5,0,0,1,182,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M100,204h16a20,20,0,0,0,0-40H100v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M60,164v36a20,20,0,0,1-40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M212,198.9h8v8c-4.6,7.9-12.7,13.1-22,13.1-14.4,0-26-12.5-26-28s11.6-28,26-28a24.2,24.2,0,0,1,14,4.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,200h16a16,16,0,0,0,0-32H104v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,194h12v11.8A21.5,21.5,0,0,1,182,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,160H104a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32h-8V176h8a8,8,0,0,1,0,16ZM80,168v32a24,24,0,0,1-48,0,8,8,0,0,1,16,0,8,8,0,0,0,16,0V168a8,8,0,0,1,16,0Zm128,26v11.8a7.5,7.5,0,0,1-1.3,4.3A29.4,29.4,0,0,1,182,224c-16.5,0-30-14.4-30-32s13.5-32,30-32a28.4,28.4,0,0,1,16.6,5.4,8,8,0,0,1-9.2,13A12.6,12.6,0,0,0,182,176c-7.7,0-14,7.2-14,16s6.3,16,14,16a13.3,13.3,0,0,0,10-4.8V202h-4a8,8,0,0,1,0-16h12A8,8,0,0,1,208,194Zm5.7-111.7-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,200h16a16,16,0,0,0,0-32H104v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,194h12v11.8A21.5,21.5,0,0,1,182,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,200h16a16,16,0,0,0,0-32H104v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,194h12v11.8A21.5,21.5,0,0,1,182,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `recycle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.recycle />
  <Heroicons.recycle class="w-4 h-4" />
  <Heroicons.recycle solid />
  <Heroicons.recycle mini />
  <Heroicons.recycle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def recycle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 232 128 208 152 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="194.6 75.2 185.8 108 153.1 99.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="79 140.8 70.2 108 37.4 116.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,208h88a16,16,0,0,0,13.8-24l-23.9-41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.2,108l-44,76A16,16,0,0,0,40,208H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185.8,108l-44-76a15.9,15.9,0,0,0-27.6,0l-24,41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 232 128 208 152 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="194.6 75.2 185.8 108 153.1 99.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="79 140.8 70.2 108 37.4 116.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,208h88a16,16,0,0,0,13.8-24l-19.9-34.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M185.8,108l-44-76a15.9,15.9,0,0,0-27.6,0l-20,34.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M70.2,108l-44,76A16,16,0,0,0,40,208H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 232 128 208 152 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="194.6 75.2 185.8 108 153.1 99.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="79 140.8 70.2 108 37.4 116.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,208h88a16,16,0,0,0,13.8-24l-23.9-41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.2,108l-44,76A16,16,0,0,0,40,208H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M185.8,108l-44-76a15.9,15.9,0,0,0-27.6,0l-24,41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.8,204A23.9,23.9,0,0,1,216,216H160v16a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-24-24.1A7.9,7.9,0,0,1,120,208a8.1,8.1,0,0,1,2.3-5.7l24-24a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,160,184v16h56a7.9,7.9,0,0,0,6.9-4,7.8,7.8,0,0,0,0-8l-24-41.4a8,8,0,0,1,13.9-8L236.7,180A23.7,23.7,0,0,1,236.8,204ZM88,200H40a7.9,7.9,0,0,1-6.9-4,7.8,7.8,0,0,1,0-8l28-48.3,13.9,8a8,8,0,0,0,4,1.1,7.8,7.8,0,0,0,4.8-1.7,8,8,0,0,0,2.9-8.4l-8.8-32.8a8.1,8.1,0,0,0-3.7-4.8,7.7,7.7,0,0,0-6.1-.8L35.3,109a8,8,0,0,0-5.8,6.7,7.9,7.9,0,0,0,3.9,8l13.8,8L19.3,180A23.9,23.9,0,0,0,40,216H88a8,8,0,0,0,0-16ZM128,32a7.8,7.8,0,0,1,6.9,4l28,48.3-13.8,8a7.9,7.9,0,0,0,1.9,14.6l32.8,8.8,2,.3a8.1,8.1,0,0,0,7.8-5.9l8.8-32.8a8.1,8.1,0,0,0-2.9-8.5,8,8,0,0,0-8.9-.5l-13.9,8L148.8,28a24,24,0,0,0-41.6,0L83.3,69.4a8,8,0,1,0,13.8,8l24-41.4A7.8,7.8,0,0,1,128,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 232 128 208 152 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="194.6 75.2 185.8 108 153.1 99.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="79 140.8 70.2 108 37.4 116.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,208h88a16,16,0,0,0,13.8-24l-23.9-41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M70.2,108l-44,76A16,16,0,0,0,40,208H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M185.8,108l-44-76a15.9,15.9,0,0,0-27.6,0l-24,41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 232 128 208 152 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="194.6 75.2 185.8 108 153.1 99.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="79 140.8 70.2 108 37.4 116.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,208h88a16,16,0,0,0,13.8-24l-23.9-41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M70.2,108l-44,76A16,16,0,0,0,40,208H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M185.8,108l-44-76a15.9,15.9,0,0,0-27.6,0l-24,41.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sword` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sword />
  <Heroicons.sword class="w-4 h-4" />
  <Heroicons.sword solid />
  <Heroicons.sword mini />
  <Heroicons.sword outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sword(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="76.2 132.2 152.2 40.2 216 40 215.8 103.8 123.8 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.1,197.5,52.2,227.4a8,8,0,0,1-11.3,0L28.6,215.1a8,8,0,0,1,0-11.3l29.9-29.9a8,8,0,0,0,0-11.4L37.7,141.7a8,8,0,0,1,0-11.4l12.6-12.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-12.6,12.6a8,8,0,0,1-11.4,0L93.5,197.5A8,8,0,0,0,82.1,197.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="72.2 128.2 152.2 40.2 216 40 215.8 103.8 127.8 183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="156" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M82.1,205.5,60.2,227.4a8,8,0,0,1-11.3,0L28.6,207.1a8,8,0,0,1,0-11.3l21.9-21.9a8,8,0,0,0,0-11.4L33.7,145.7a8,8,0,0,1,0-11.4l16.6-16.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-16.6,16.6a8,8,0,0,1-11.4,0L93.5,205.5A8,8,0,0,0,82.1,205.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M82.1,197.5,52.2,227.4a8,8,0,0,1-11.3,0L28.6,215.1a8,8,0,0,1,0-11.3l29.9-29.9a8,8,0,0,0,0-11.4L37.7,141.7a8,8,0,0,1,0-11.4l12.6-12.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-12.6,12.6a8,8,0,0,1-11.4,0L93.5,197.5A8,8,0,0,0,82.1,197.5Z" opacity="0.2"/><polyline points="76.2 132.2 152.2 40.2 216 40 215.8 103.8 123.8 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.1,197.5,52.2,227.4a8,8,0,0,1-11.3,0L28.6,215.1a8,8,0,0,1,0-11.3l29.9-29.9a8,8,0,0,0,0-11.4L37.7,141.7a8,8,0,0,1,0-11.4l12.6-12.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-12.6,12.6a8,8,0,0,1-11.4,0L93.5,197.5A8,8,0,0,0,82.1,197.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.7,34.3A8.1,8.1,0,0,0,216,32h0l-63.8.2a8.1,8.1,0,0,0-6.2,2.9L75.6,120.3,67.3,112a16.1,16.1,0,0,0-22.6,0L32,124.7a15.9,15.9,0,0,0,0,22.6l20.9,20.9-30,29.9a16.2,16.2,0,0,0,0,22.7l12.3,12.3a16.3,16.3,0,0,0,22.7,0l29.9-30L108.7,224a16.1,16.1,0,0,0,22.6,0L144,211.3a15.9,15.9,0,0,0,0-22.6l-8.3-8.3L220.9,110a8.1,8.1,0,0,0,2.9-6.2L224,40A8.1,8.1,0,0,0,221.7,34.3ZM207.8,100l-83.5,69-13-13,54.4-54.3a8.1,8.1,0,0,0-11.4-11.4L100,144.7l-13-13,69-83.5,52-.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="76.2 132.2 152.2 40.2 216 40 215.8 103.8 123.8 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="156" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M82.1,197.5,52.2,227.4a8,8,0,0,1-11.3,0L28.6,215.1a8,8,0,0,1,0-11.3l29.9-29.9a8,8,0,0,0,0-11.4L37.7,141.7a8,8,0,0,1,0-11.4l12.6-12.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-12.6,12.6a8,8,0,0,1-11.4,0L93.5,197.5A8,8,0,0,0,82.1,197.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="76.2 132.2 152.2 40.2 216 40 215.8 103.8 123.8 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="156" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M82.1,197.5,52.2,227.4a8,8,0,0,1-11.3,0L28.6,215.1a8,8,0,0,1,0-11.3l29.9-29.9a8,8,0,0,0,0-11.4L37.7,141.7a8,8,0,0,1,0-11.4l12.6-12.6a8,8,0,0,1,11.4,0l76.6,76.6a8,8,0,0,1,0,11.4l-12.6,12.6a8,8,0,0,1-11.4,0L93.5,197.5A8,8,0,0,0,82.1,197.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle />
  <Heroicons.circle class="w-4 h-4" />
  <Heroicons.circle solid />
  <Heroicons.circle mini />
  <Heroicons.circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="104"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_slash />
  <Heroicons.bell_slash class="w-4 h-4" />
  <Heroicons.bell_slash solid />
  <Heroicons.bell_slash mini />
  <Heroicons.bell_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M100,37.7A71.1,71.1,0,0,1,128.5,32c39.6.3,71.3,33.2,71.3,72.9V112a187.1,187.1,0,0,0,3.8,39.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.8,71.8,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,67.9A8,8,0,0,1,207,192H49a8,8,0,0,1-6.9-12.1c6.6-11.3,14.1-32.1,14.1-67.9Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L58.9,63.9A80.2,80.2,0,0,0,48.2,104v8c0,34.3-7.1,53.7-13,63.9A16,16,0,0,0,49,200H88a40,40,0,0,0,80,0h14.6l19.5,21.4A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3ZM128,224a24.1,24.1,0,0,1-24-24h48A24.1,24.1,0,0,1,128,224ZM86.6,46.8a8.1,8.1,0,0,1,1.9-12.4A80.2,80.2,0,0,1,128.6,24c43.7.3,79.2,36.6,79.2,80.9V112c0,21.9,2.8,40.1,8.4,54.4a8,8,0,0,1-13.3,8.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `line_segment` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.line_segment />
  <Heroicons.line_segment class="w-4 h-4" />
  <Heroicons.line_segment solid />
  <Heroicons.line_segment mini />
  <Heroicons.line_segment outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def line_segment(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175" y1="81" x2="81" y2="175" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="192" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="175" y1="81" x2="81" y2="175" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="192" r="24" opacity="0.2"/><circle cx="192" cy="64" r="24" opacity="0.2"/><circle cx="64" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175" y1="81" x2="81" y2="175" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M214.6,86.6A31.6,31.6,0,0,1,192,96a32.7,32.7,0,0,1-16.3-4.4L91.6,175.7a32,32,0,0,1-5,38.9,31.9,31.9,0,0,1-45.2,0,31.9,31.9,0,0,1,0-45.2h0a32,32,0,0,1,38.9-5l84.1-84.1a32,32,0,1,1,50.2,6.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="192" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="175" y1="81" x2="81" y2="175" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="192" cy="64" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="175" y1="81" x2="81" y2="175" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cube` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cube />
  <Heroicons.cube class="w-4 h-4" />
  <Heroicons.cube solid />
  <Heroicons.cube mini />
  <Heroicons.cube outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cube(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M33.1,74.6A8.1,8.1,0,0,0,32,78.7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.6,7.6,0,0,0,3.9,1h0l.9-106.8L33.1,74.6Z" opacity="0.2"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.9,70.8h0a.1.1,0,0,1-.1-.1,16.2,16.2,0,0,0-6-5.9l-88-49.5a16,16,0,0,0-15.6,0l-88,49.5a16.2,16.2,0,0,0-6,5.9.1.1,0,0,1-.1.1v.2A15,15,0,0,0,24,78.7v98.6a16.1,16.1,0,0,0,8.2,14l88,49.5a16.5,16.5,0,0,0,7.2,2h1.4a16.1,16.1,0,0,0,7-2l88-49.5a16.1,16.1,0,0,0,8.2-14V78.7A15.6,15.6,0,0,0,229.9,70.8Zm-101,48L48.4,74,128,29.2,207.7,74ZM216,177.3l-79.9,45,.8-89.6,79.1-45Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `copyleft` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.copyleft />
  <Heroicons.copyleft class="w-4 h-4" />
  <Heroicons.copyleft solid />
  <Heroicons.copyleft mini />
  <Heroicons.copyleft outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def copyleft(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,104a40,40,0,1,1,0,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,104a40,40,0,1,1,0,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,104a40,40,0,1,1,0,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56a72,72,0,1,0,72,72A72.1,72.1,0,0,0,128,56Zm0,120a47.7,47.7,0,0,1-38.4-19.2,8,8,0,1,1,12.8-9.6,32,32,0,1,0,0-38.4,8.1,8.1,0,0,1-11.2,1.6,8,8,0,0,1-1.6-11.2A48,48,0,1,1,128,176Zm0-156A108,108,0,1,0,236,128,108.1,108.1,0,0,0,128,20Zm0,196a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,104a40,40,0,1,1,0,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,104a40,40,0,1,1,0,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flag_banner` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flag_banner />
  <Heroicons.flag_banner class="w-4 h-4" />
  <Heroicons.flag_banner solid />
  <Heroicons.flag_banner mini />
  <Heroicons.flag_banner outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flag_banner(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 216 40 48 40 48 224 48 176 108 224 168 40 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 216 40 48 40 48 224 48 176 108 224 168 40 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="40 48 40 48 224 48 176 108 224 168 40 168 40 48" opacity="0.2"/><polyline points="40 216 40 48 40 48 224 48 176 108 224 168 40 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M230.2,163a8,8,0,0,1-6.2,13H48v40a8,8,0,0,1-16,0V48a8,8,0,0,1,8-8H224a8,8,0,0,1,6.2,13l-44,55Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 216 40 48 40 48 224 48 176 108 224 168 40 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="40 216 40 48 40 48 224 48 176 108 224 168 40 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shopping_cart` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shopping_cart />
  <Heroicons.shopping_cart class="w-4 h-4" />
  <Heroicons.shopping_cart solid />
  <Heroicons.shopping_cart mini />
  <Heroicons.shopping_cart outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shopping_cart(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="184" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="80" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="184" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48Z" opacity="0.2"/><path d="M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="80" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="184" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.9,65.4l-12.2,66.9A24,24,0,0,1,188.1,152H72.1l4.4,24H184a24,24,0,1,1-24,24,23.6,23.6,0,0,1,1.4-8H102.6a23.6,23.6,0,0,1,1.4,8,24,24,0,1,1-42.2-15.6L34.1,32H16a8,8,0,0,1,0-16H34.1A16,16,0,0,1,49.8,29.1L54.7,56H216a7.9,7.9,0,0,1,6.1,2.9A7.7,7.7,0,0,1,223.9,65.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="80" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="184" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,184H69.8L41.9,30.6A8,8,0,0,0,34.1,24H16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="80" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="184" cy="204" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M62.5,144H188.1a15.9,15.9,0,0,0,15.7-13.1L216,64H48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_right_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_right_up />
  <Heroicons.arrow_u_right_up class="w-4 h-4" />
  <Heroicons.arrow_u_right_up solid />
  <Heroicons.arrow_u_right_up mini />
  <Heroicons.arrow_u_right_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_right_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 80 168 32 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,80v88a56,56,0,0,0,56,56h0a56,56,0,0,0,56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 80 168 32 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,80v88a56,56,0,0,0,56,56h0a56,56,0,0,0,56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 80 168 32 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,80v88a56,56,0,0,0,56,56h0a56,56,0,0,0,56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.4,83.1A8,8,0,0,1,216,88H176v80a64,64,0,0,1-128,0V80a8,8,0,0,1,16,0v88a48,48,0,0,0,96,0V88H120a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48A8.4,8.4,0,0,1,223.4,83.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 80 168 32 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,80v88a56,56,0,0,0,56,56h0a56,56,0,0,0,56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 80 168 32 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,80v88a56,56,0,0,0,56,56h0a56,56,0,0,0,56-56V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list_dashes` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list_dashes />
  <Heroicons.list_dashes class="w-4 h-4" />
  <Heroicons.list_dashes solid />
  <Heroicons.list_dashes mini />
  <Heroicons.list_dashes outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list_dashes(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="64" x2="56" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="56" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="64" x2="56" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="56" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="64" x2="56" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="56" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H96A8,8,0,0,1,88,64Zm128,56H96a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm0,64H96a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM56,56H40a8,8,0,0,0,0,16H56a8,8,0,0,0,0-16Zm0,64H40a8,8,0,0,0,0,16H56a8,8,0,0,0,0-16Zm0,64H40a8,8,0,0,0,0,16H56a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="64" x2="56" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="56" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="64" x2="56" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="56" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `computer_tower` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.computer_tower />
  <Heroicons.computer_tower class="w-4 h-4" />
  <Heroicons.computer_tower solid />
  <Heroicons.computer_tower mini />
  <Heroicons.computer_tower outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def computer_tower(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="104" x2="96" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="76" x2="96" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="116" x2="96" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="184" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" opacity="0.2"/><line x1="160" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="104" x2="96" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24H64A16,16,0,0,0,48,40V216a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V40A16,16,0,0,0,192,24ZM128,192a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm32-80H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="104" x2="96" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="180" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="104" x2="96" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="56" width="192" height="144" rx="8" transform="translate(256 0) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="180" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folders` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folders />
  <Heroicons.folders class="w-4 h-4" />
  <Heroicons.folders solid />
  <Heroicons.folders mini />
  <Heroicons.folders outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folders(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,112v88.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192A8,8,0,0,1,200,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,112v88.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192A8,8,0,0,1,200,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,80V56a8,8,0,0,1,8-8h45.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H224a8,8,0,0,1,8,8v88.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M196,116v88.9a7.1,7.1,0,0,1-7.1,7.1H36a8,8,0,0,1-8-8V92a8,8,0,0,1,8-8H81.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H188A8,8,0,0,1,196,116Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,84V52a8,8,0,0,1,8-8h45.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H228a8,8,0,0,1,8,8v88.9a7.1,7.1,0,0,1-7.1,7.1H196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,72H154.7a8.1,8.1,0,0,1-4.8-1.6L122.1,49.6a8.1,8.1,0,0,0-4.8-1.6H72a8,8,0,0,0-8,8V80H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192a8,8,0,0,1,8,8v64h24.9a7.1,7.1,0,0,0,7.1-7.1V80A8,8,0,0,0,224,72Z" opacity="0.2"/><path d="M200,112v88.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192A8,8,0,0,1,200,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,80V56a8,8,0,0,1,8-8h45.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H224a8,8,0,0,1,8,8v88.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,64H154.7L126.9,43.2a15.6,15.6,0,0,0-9.6-3.2H72A16,16,0,0,0,56,56V72H40A16,16,0,0,0,24,88V200a16,16,0,0,0,16,16H192.9A15.2,15.2,0,0,0,208,200.9V184h16.9A15.2,15.2,0,0,0,240,168.9V80A16,16,0,0,0,224,64Zm0,104H208V112a16,16,0,0,0-16-16H122.7L94.9,75.2A15.6,15.6,0,0,0,85.3,72H72V56h45.3l27.8,20.8a15.6,15.6,0,0,0,9.6,3.2H224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,112v88.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192A8,8,0,0,1,200,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,80V56a8,8,0,0,1,8-8h45.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H224a8,8,0,0,1,8,8v88.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,112v88.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8H85.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H192A8,8,0,0,1,200,112Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,80V56a8,8,0,0,1,8-8h45.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H224a8,8,0,0,1,8,8v88.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `square_half` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.square_half />
  <Heroicons.square_half class="w-4 h-4" />
  <Heroicons.square_half solid />
  <Heroicons.square_half mini />
  <Heroicons.square_half outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def square_half(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="212" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="144" x2="212" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="212" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="84" x2="212" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="172" x2="212" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,44h76a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H128Z" opacity="0.2"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,36H52A16,16,0,0,0,36,52V204a16,16,0,0,0,16,16H204a16,16,0,0,0,16-16V52A16,16,0,0,0,204,36ZM52,52h76V204H52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="80" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="112" x2="212" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="144" x2="212" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="176" x2="212" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="44" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="80" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="112" x2="212" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="144" x2="212" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="176" x2="212" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_eye` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_eye />
  <Heroicons.hand_eye class="w-4 h-4" />
  <Heroicons.hand_eye solid />
  <Heroicons.hand_eye mini />
  <Heroicons.hand_eye outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_eye(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.6,163.6a8.2,8.2,0,0,0,0,8.8c5.7,8.8,20.8,27.6,45.4,27.6s39.7-18.8,45.4-27.6a8.2,8.2,0,0,0,0-8.8c-5.7-8.8-20.8-27.6-45.4-27.6S88.3,154.8,82.6,163.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,116v-4a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="184" r="16"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,168s-8-28-40-28-40,28-40,28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,116v-4a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,92a20.1,20.1,0,0,0-20,20V52a20,20,0,0,0-40,0V36a20,20,0,0,0-40,0V68a20,20,0,0,0-40,0v84a80,80,0,0,0,160,0V112A20.1,20.1,0,0,0,188,92Zm-14.6,80.4c-5.7,8.8-20.8,27.6-45.4,27.6s-39.7-18.8-45.4-27.6a8.2,8.2,0,0,1,0-8.8c5.7-8.8,20.8-27.6,45.4-27.6s39.7,18.8,45.4,27.6A8.2,8.2,0,0,1,173.4,172.4Z" opacity="0.2"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.6,163.6a8.2,8.2,0,0,0,0,8.8c5.7,8.8,20.8,27.6,45.4,27.6s39.7-18.8,45.4-27.6a8.2,8.2,0,0,0,0-8.8c-5.7-8.8-20.8-27.6-45.4-27.6S88.3,154.8,82.6,163.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,116v-4a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,84a28.2,28.2,0,0,0-12,2.7V52a28.1,28.1,0,0,0-28-28,27.8,27.8,0,0,0-13.4,3.4A28,28,0,0,0,80,36v6.7A28,28,0,0,0,40,68v84a88,88,0,0,0,176,0V112A28.1,28.1,0,0,0,188,84Zm12,68a72,72,0,0,1-144,0V68a12,12,0,0,1,24,0v44a8,8,0,0,0,16,0V36a12,12,0,0,1,24,0v68a8,8,0,0,0,16,0V52a12,12,0,0,1,24,0v64a8,8,0,0,0,16,0v-4a12,12,0,0,1,24,0Zm-72-16c-26.7,0-43,20.6-48.8,29.4a12.1,12.1,0,0,0,0,13.2C85,187.4,101.3,208,128,208s43-20.6,48.8-29.4a12.1,12.1,0,0,0,0-13.2C171,156.6,154.7,136,128,136Zm0,52a16,16,0,1,1,16-16A16,16,0,0,1,128,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M82.6,163.6a8.2,8.2,0,0,0,0,8.8c5.7,8.8,20.8,27.6,45.4,27.6s39.7-18.8,45.4-27.6a8.2,8.2,0,0,0,0-8.8c-5.7-8.8-20.8-27.6-45.4-27.6S88.3,154.8,82.6,163.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,116v-4a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="168" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M82.6,163.6a8.2,8.2,0,0,0,0,8.8c5.7,8.8,20.8,27.6,45.4,27.6s39.7-18.8,45.4-27.6a8.2,8.2,0,0,0,0-8.8c-5.7-8.8-20.8-27.6-45.4-27.6S88.3,154.8,82.6,163.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,116v-4a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="168" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplane_in_flight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplane_in_flight />
  <Heroicons.airplane_in_flight class="w-4 h-4" />
  <Heroicons.airplane_in_flight solid />
  <Heroicons.airplane_in_flight mini />
  <Heroicons.airplane_in_flight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplane_in_flight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" opacity="0.2"/><line x1="72" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,216a8,8,0,0,1-8,8H72a8,8,0,0,1,0-16H216A8,8,0,0,1,224,216ZM208,100H153.8L110.9,53.3A3.9,3.9,0,0,0,108,52H91.1a11.6,11.6,0,0,0-9.7,5,11.9,11.9,0,0,0-1.7,10.8L90.5,100H65.9L47.1,77.4A4.1,4.1,0,0,0,44,76H26.8a12.1,12.1,0,0,0-9.7,4.8,11.9,11.9,0,0,0-1.8,10.6l14,46.9A35.8,35.8,0,0,0,63.8,164H240a4,4,0,0,0,4-4V136A36,36,0,0,0,208,100Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M26.8,80H44l20,24H96L83.5,66.5A8,8,0,0,1,91.1,56H108l44,48h56a32,32,0,0,1,32,32v24H63.8a32,32,0,0,1-30.6-22.8L19.1,90.3A8,8,0,0,1,26.8,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `heart` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.heart />
  <Heroicons.heart class="w-4 h-4" />
  <Heroicons.heart solid />
  <Heroicons.heart mini />
  <Heroicons.heart outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def heart(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" opacity="0.2"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32a60,60,0,0,0-48,24A60,60,0,0,0,20,92c0,71.9,99.9,128.6,104.1,131a7.8,7.8,0,0,0,3.9,1,7.6,7.6,0,0,0,3.9-1,314.3,314.3,0,0,0,51.5-37.6C218.3,154,236,122.6,236,92A60,60,0,0,0,176,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_three />
  <Heroicons.number_square_three class="w-4 h-4" />
  <Heroicons.number_square_three solid />
  <Heroicons.number_square_three mini />
  <Heroicons.number_square_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM149.5,177.5a36.2,36.2,0,0,1-51,0,8.1,8.1,0,0,1,11.4-11.4A19.9,19.9,0,1,0,124,132a8.1,8.1,0,0,1-7.1-4.3,8,8,0,0,1,.5-8.3L136.6,92H104a8,8,0,0,1,0-16h48a8.1,8.1,0,0,1,7.1,4.3,7.8,7.8,0,0,1-.6,8.3l-21,30a37.9,37.9,0,0,1,12,7.9,36.2,36.2,0,0,1,0,51Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_ngn` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_ngn />
  <Heroicons.currency_ngn class="w-4 h-4" />
  <Heroicons.currency_ngn solid />
  <Heroicons.currency_ngn mini />
  <Heroicons.currency_ngn outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_ngn(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="144" x2="216" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 210 64 46 192 210 192 46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 210 64 46 192 210 192 46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="144" x2="216" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 210 64 46 192 210 192 46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,136H200V120h16a8,8,0,0,0,0-16H200V46a8,8,0,0,0-16,0v58H119.4L70.3,41.1A8,8,0,0,0,56,46v58H40a8,8,0,0,0,0,16H56v16H40a8,8,0,0,0,0,16H56v58a8,8,0,0,0,16,0V152h64.6l49.1,62.9a8.1,8.1,0,0,0,8.9,2.7A8.1,8.1,0,0,0,200,210V152h16a8,8,0,0,0,0-16Zm-32-16v16H144.4l-12.5-16ZM72,69.3,99.1,104H72ZM72,136V120h39.6l12.5,16Zm112,50.7L156.9,152H184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="144" x2="216" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 210 64 46 192 210 192 46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="144" x2="216" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 210 64 46 192 210 192 46" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_mobile_camera` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_mobile_camera />
  <Heroicons.device_mobile_camera class="w-4 h-4" />
  <Heroicons.device_mobile_camera solid />
  <Heroicons.device_mobile_camera mini />
  <Heroicons.device_mobile_camera outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_mobile_camera(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="60" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="68" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="60" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,16H80A24.1,24.1,0,0,0,56,40V216a24.1,24.1,0,0,0,24,24h96a24.1,24.1,0,0,0,24-24V40A24.1,24.1,0,0,0,176,16ZM128,72a12,12,0,1,1,12-12A12,12,0,0,1,128,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="60" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="60" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_right_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_right_down />
  <Heroicons.arrow_bend_right_down class="w-4 h-4" />
  <Heroicons.arrow_bend_right_down solid />
  <Heroicons.arrow_bend_right_down mini />
  <Heroicons.arrow_bend_right_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_right_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 176 152 224 200 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,32a96,96,0,0,1,96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 176 152 224 200 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,32a96,96,0,0,1,96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 176 152 224 200 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,32a96,96,0,0,1,96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.7,181.7l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,104,168h40V128A88.1,88.1,0,0,0,56,40a8,8,0,0,1,0-16A104.2,104.2,0,0,1,160,128v40h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,205.7,181.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 176 152 224 200 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,32a96,96,0,0,1,96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 176 152 224 200 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,32a96,96,0,0,1,96,96v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_right />
  <Heroicons.arrow_line_right class="w-4 h-4" />
  <Heroicons.arrow_line_right solid />
  <Heroicons.arrow_line_right mini />
  <Heroicons.arrow_line_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 56 184 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 56 176 128 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 56 184 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M189.7,122.3a8.1,8.1,0,0,1,0,11.4l-72,72A8.3,8.3,0,0,1,112,208a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,104,200V136H32a8,8,0,0,1,0-16h72V56a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7ZM216,32a8,8,0,0,0-8,8V216a8,8,0,0,0,16,0V40A8,8,0,0,0,216,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 56 184 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="128" x2="184" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 56 184 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_out` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_out />
  <Heroicons.arrow_square_out class="w-4 h-4" />
  <Heroicons.arrow_square_out solid />
  <Heroicons.arrow_square_out mini />
  <Heroicons.arrow_square_out outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_out(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 100 216 40 156 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="112" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,144v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 100 216 40 156 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="112" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,144v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="72" width="144" height="144" rx="8" opacity="0.2"/><polyline points="216 100 216 40 156 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="112" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,144v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,100a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L186,81.3l-36.4,36.4A8,8,0,0,1,144,120a8.3,8.3,0,0,1-5.7-2.3,8,8,0,0,1,0-11.3L174.7,70,150.3,45.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,156,32h60a8,8,0,0,1,8,8Zm-40,36a8,8,0,0,0-8,8v64H48V80h64a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V144A8,8,0,0,0,184,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 100 216 40 156 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="112" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,144v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 100 216 40 156 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="112" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,144v64a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shuffle_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shuffle_simple />
  <Heroicons.shuffle_simple class="w-4 h-4" />
  <Heroicons.shuffle_simple solid />
  <Heroicons.shuffle_simple mini />
  <Heroicons.shuffle_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shuffle_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="48" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="150.6" y1="105.4" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="105.4" y2="150.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="48" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156.3" y1="99.7" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="208" x2="99.7" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="48" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="150.6" y1="105.4" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="105.4" y2="150.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48V88a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L188,79.3,156.3,111a8,8,0,0,1-5.7,2.4A7.7,7.7,0,0,1,145,111a7.9,7.9,0,0,1,0-11.3L176.7,68,162.3,53.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,168,40h40A8,8,0,0,1,216,48Zm-4.9,112.6a8.4,8.4,0,0,0-8.8,1.7L188,176.7,53.7,42.3A8.1,8.1,0,0,0,42.3,53.7L176.7,188l-14.4,14.3a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,168,216h40a8,8,0,0,0,8-8V168A8,8,0,0,0,211.1,160.6ZM99.7,145,42.3,202.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L111,156.3A8,8,0,0,0,99.7,145Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="48" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="150.6" y1="105.4" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="208" x2="105.4" y2="150.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 168 208 208 168 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="48" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="150.6" y1="105.4" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="208" x2="105.4" y2="150.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_down />
  <Heroicons.caret_circle_down class="w-4 h-4" />
  <Heroicons.caret_circle_down solid />
  <Heroicons.caret_circle_down mini />
  <Heroicons.caret_circle_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="164 116 128 156 92 116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="164 116 128 156 92 116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="164 116 128 156 92 116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm41.9,97.4-36,40a8,8,0,0,1-11.8,0l-36-40a8,8,0,0,1,11.8-10.8L128,144l30.1-33.4a8,8,0,1,1,11.8,10.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="12"/><polyline points="164 116 128 156 92 116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="8"/><polyline points="164 116 128 156 92 116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_left />
  <Heroicons.caret_left class="w-4 h-4" />
  <Heroicons.caret_left solid />
  <Heroicons.caret_left mini />
  <Heroicons.caret_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 208 80 128 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 208 80 128 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 208 80 128 160 48 160 208" opacity="0.2"/><polygon points="160 208 80 128 160 48 160 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M163.1,40.6a8.4,8.4,0,0,0-8.8,1.7l-80,80a8.1,8.1,0,0,0,0,11.4l80,80A8.3,8.3,0,0,0,160,216a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,168,208V48A8,8,0,0,0,163.1,40.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 208 80 128 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 208 80 128 160 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cooking_pot` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cooking_pot />
  <Heroicons.cooking_pot class="w-4 h-4" />
  <Heroicons.cooking_pot solid />
  <Heroicons.cooking_pot mini />
  <Heroicons.cooking_pot outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cooking_pot(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="16" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="16" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="16" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,80H208a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H64a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,48,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="96" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="16" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="16" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="16" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M52,80H204a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H68a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,52,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="212" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="96" x2="44" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,80H208a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H64a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,48,80Z" opacity="0.2"/><line x1="96" y1="16" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="16" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="16" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,80H208a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H64a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,48,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="96" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,48V16a8,8,0,0,1,16,0V48a8,8,0,0,1-16,0Zm40,8a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0V48A8,8,0,0,0,128,56Zm32,0a8,8,0,0,0,8-8V16a8,8,0,0,0-16,0V48A8,8,0,0,0,160,56Zm94.4,35.2a8,8,0,0,0-11.2-1.6L224,104V88a16,16,0,0,0-16-16H48A16,16,0,0,0,32,88v16L12.8,89.6a8,8,0,0,0-9.6,12.8L32,124v60a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V124l28.8-21.6A8,8,0,0,0,254.4,91.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="16" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="16" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="16" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,80H208a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H64a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,48,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="248" y1="96" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="8" y1="96" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="16" x2="96" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="16" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="16" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,80H208a8,8,0,0,1,8,8v96a23.9,23.9,0,0,1-24,24H64a23.9,23.9,0,0,1-24-24V88A8,8,0,0,1,48,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="248" y1="96" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="8" y1="96" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_warning_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_warning_vertical />
  <Heroicons.battery_warning_vertical class="w-4 h-4" />
  <Heroicons.battery_warning_vertical solid />
  <Heroicons.battery_warning_vertical mini />
  <Heroicons.battery_warning_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_warning_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="100" y1="12" x2="156" y2="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="56" y="48" width="144" height="180" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="176" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="40" width="144" height="184" rx="16" opacity="0.2"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,8a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H96A8,8,0,0,1,88,8ZM208,56V208a24.1,24.1,0,0,1-24,24H72a24.1,24.1,0,0,1-24-24V56A24.1,24.1,0,0,1,72,32H184A24.1,24.1,0,0,1,208,56Zm-88,76a8,8,0,0,0,16,0V92a8,8,0,0,0-16,0Zm20,36a12,12,0,1,0-12,12A12,12,0,0,0,140,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="168" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="168" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `newspaper_clipping` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.newspaper_clipping />
  <Heroicons.newspaper_clipping class="w-4 h-4" />
  <Heroicons.newspaper_clipping solid />
  <Heroicons.newspaper_clipping mini />
  <Heroicons.newspaper_clipping outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def newspaper_clipping(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="96" width="48" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="108" x2="184" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="148" x2="184" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="72" y="96" width="40" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V216l32-16,32,16,32-16,32,16,32-16,32,16V56A8,8,0,0,0,216,48ZM112,160H64V96h48Z" opacity="0.2"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="96" width="48" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,104h32v48H72ZM232,56V216a7.9,7.9,0,0,1-3.8,6.8,8,8,0,0,1-7.8.4L192,208.9l-28.4,14.3a8.5,8.5,0,0,1-7.2,0L128,208.9,99.6,223.2a8.3,8.3,0,0,1-7.2,0L64,208.9,35.6,223.2a8,8,0,0,1-7.8-.4A7.9,7.9,0,0,1,24,216V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM120,96a8,8,0,0,0-8-8H64a8,8,0,0,0-8,8v64a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8Zm80,48a8,8,0,0,0-8-8H144a8,8,0,0,0,0,16h48A8,8,0,0,0,200,144Zm0-32a8,8,0,0,0-8-8H144a8,8,0,0,0,0,16h48A8,8,0,0,0,200,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="64" y="96" width="48" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="144" x2="192" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="64" y="96" width="48" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `heart_straight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.heart_straight />
  <Heroicons.heart_straight class="w-4 h-4" />
  <Heroicons.heart_straight solid />
  <Heroicons.heart_straight mini />
  <Heroicons.heart_straight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def heart_straight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" opacity="0.2"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224.6,51.9a59.5,59.5,0,0,0-43-19.9,60.5,60.5,0,0,0-44,17.6L128,59.1l-7.5-7.4C97.2,28.3,59.2,26.3,35.9,47.4a59.9,59.9,0,0,0-2.3,87l83.1,83.1a15.9,15.9,0,0,0,22.6,0l81-81C243.7,113.2,245.6,75.2,224.6,51.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_dotted` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_dotted />
  <Heroicons.folder_simple_dotted class="w-4 h-4" />
  <Heroicons.folder_simple_dotted solid />
  <Heroicons.folder_simple_dotted mini />
  <Heroicons.folder_simple_dotted outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_dotted(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" opacity="0.2"/><path d="M32,80V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,80V64A16,16,0,0,1,40,48H93.3a15.6,15.6,0,0,1,9.6,3.2l29.9,22.4A8,8,0,0,1,128,88a7.7,7.7,0,0,1-4.8-1.6L93.3,64H40V80a8,8,0,0,1-16,0ZM88,200H40v-8a8,8,0,0,0-16,0v8.6A15.4,15.4,0,0,0,39.4,216H88a8,8,0,0,0,0-16Zm72,0H128a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm64-56a8,8,0,0,0-8,8v48H200a8,8,0,0,0,0,16h16.9A15.2,15.2,0,0,0,232,200.9V152A8,8,0,0,0,224,144Zm-8-72H168a8,8,0,0,0,0,16h48v24a8,8,0,0,0,16,0V88A16,16,0,0,0,216,72ZM32,160a8,8,0,0,0,8-8V120a8,8,0,0,0-16,0v32A8,8,0,0,0,32,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bag_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bag_simple />
  <Heroicons.bag_simple class="w-4 h-4" />
  <Heroicons.bag_simple solid />
  <Heroicons.bag_simple mini />
  <Heroicons.bag_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bag_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H175.3a48,48,0,0,0-94.6,0H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM128,40a32.1,32.1,0,0,1,31,24H97A32.1,32.1,0,0,1,128,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cylinder` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cylinder />
  <Heroicons.cylinder class="w-4 h-4" />
  <Heroicons.cylinder solid />
  <Heroicons.cylinder mini />
  <Heroicons.cylinder outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cylinder(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="58" rx="64" ry="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,58V198c0,18.8,28.7,34,64,34s64-15.2,64-34V58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="58" rx="64" ry="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,58V198c0,18.8,28.7,34,64,34s64-15.2,64-34V58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="58" rx="64" ry="34" opacity="0.2"/><ellipse cx="128" cy="58" rx="64" ry="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,58V198c0,18.8,28.7,34,64,34s64-15.2,64-34V58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,16C87.6,16,56,34.4,56,58V198c0,23.6,31.6,42,72,42s72-18.4,72-42V58C200,34.4,168.4,16,128,16Zm0,208c-33,0-56-13.7-56-26V84.7c13.1,9.4,33.1,15.3,56,15.3s42.9-5.9,56-15.3V198C184,210.3,161,224,128,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="58" rx="64" ry="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,58V198c0,18.8,28.7,34,64,34s64-15.2,64-34V58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="58" rx="64" ry="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,58V198c0,18.8,28.7,34,64,34s64-15.2,64-34V58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_four />
  <Heroicons.number_circle_four class="w-4 h-4" />
  <Heroicons.number_circle_four solid />
  <Heroicons.number_circle_four mini />
  <Heroicons.number_circle_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm28,152a8,8,0,0,1-16,0V152H100a8,8,0,0,1-6.5-3.4,7.9,7.9,0,0,1-1-7.3l24-68a8,8,0,0,1,15,5.4L111.3,136H140V112a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_cloud` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_cloud />
  <Heroicons.file_cloud class="w-4 h-4" />
  <Heroicons.file_cloud solid />
  <Heroicons.file_cloud mini />
  <Heroicons.file_cloud outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_cloud(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.7,168H60a28,28,0,0,0,0,56h48a44,44,0,1,0-44-44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,224h20a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65.7,168H60a28,28,0,0,0,0,56h48a44,44,0,1,0-44-44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.7,168H60a28,28,0,0,0,0,56h48a44,44,0,1,0-44-44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,16,0V40h88V88a8,8,0,0,0,8,8h48V216H176a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM160,51.3,188.7,80H160ZM160,180a52,52,0,0,1-52,52H60a36,36,0,0,1-9.2-70.8A65.3,65.3,0,0,0,48,180a8,8,0,0,0,16,0,47.4,47.4,0,0,1,4.4-20h0A48,48,0,0,1,160,180Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65.7,168H60a28,28,0,0,0,0,56h48a44,44,0,1,0-44-44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65.7,168H60a28,28,0,0,0,0,56h48a44,44,0,1,0-44-44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wall` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wall />
  <Heroicons.wall class="w-4 h-4" />
  <Heroicons.wall solid />
  <Heroicons.wall mini />
  <Heroicons.wall outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wall(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="56" width="192" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="152" x2="80" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="200" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="56" width="192" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="56" width="96" height="48" opacity="0.2"/><rect x="128" y="152" width="96" height="48" opacity="0.2"/><rect x="176" y="104" width="48" height="48" opacity="0.2"/><line x1="128" y1="104" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="56" width="192" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,92h92a4,4,0,0,0,4-4V56a8,8,0,0,0-8-8H140a4,4,0,0,0-4,4Z"/><path d="M184,152h44a4,4,0,0,0,4-4V112a4,4,0,0,0-4-4H184Z"/><rect x="88" y="108" width="80" height="44"/><path d="M72,108H28a4,4,0,0,0-4,4v36a4,4,0,0,0,4,4H72Z"/><path d="M136,168v36a4,4,0,0,0,4,4h84a8,8,0,0,0,8-8V172a4,4,0,0,0-4-4Z"/><path d="M120,92V52a4,4,0,0,0-4-4H32a8,8,0,0,0-8,8V88a4,4,0,0,0,4,4Z"/><path d="M120,168H28a4,4,0,0,0-4,4v28a8,8,0,0,0,8,8h84a4,4,0,0,0,4-4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="152" x2="80" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="200" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="56" width="192" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="152" x2="80" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="152" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="200" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="56" width="192" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eject` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eject />
  <Heroicons.eject class="w-4 h-4" />
  <Heroicons.eject solid />
  <Heroicons.eject mini />
  <Heroicons.eject outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eject(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.1,38.4,44.4,122.6A8,8,0,0,0,50.3,136H205.7a8,8,0,0,0,5.9-13.4L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.1,38.4,45,118.5A8,8,0,0,0,50.8,132H205.2a8,8,0,0,0,5.8-13.5L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.1,38.4,44.4,122.6A8,8,0,0,0,50.3,136H205.7a8,8,0,0,0,5.9-13.4L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" opacity="0.2"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" opacity="0.2"/><path d="M122.1,38.4,44.4,122.6A8,8,0,0,0,50.3,136H205.7a8,8,0,0,0,5.9-13.4L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M35.6,134.4a15.8,15.8,0,0,1,2.9-17.3l77.7-84.2h0a16.2,16.2,0,0,1,23.6,0l77.7,84.2A16,16,0,0,1,205.7,144H50.3A15.9,15.9,0,0,1,35.6,134.4ZM208,160H48a16,16,0,0,0-16,16v24a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V176A16,16,0,0,0,208,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.1,38.4,44.4,122.6A8,8,0,0,0,50.3,136H205.7a8,8,0,0,0,5.9-13.4L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M122.1,38.4,44.4,122.6A8,8,0,0,0,50.3,136H205.7a8,8,0,0,0,5.9-13.4L133.9,38.4A7.9,7.9,0,0,0,122.1,38.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="108" y="100" width="40" height="176" rx="8" transform="translate(-60 316) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `film_strip` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.film_strip />
  <Heroicons.film_strip class="w-4 h-4" />
  <Heroicons.film_strip solid />
  <Heroicons.film_strip mini />
  <Heroicons.film_strip outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def film_strip(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="48" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="48" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="176" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="88" x2="224" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="48" x2="80" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="48" x2="176" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="168" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="168" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,176H224v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8Z" opacity="0.2"/><path d="M224,80H32V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8Z" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="48" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="48" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="176" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM184,56h32V72H184Zm-48,0h32V72H136ZM88,56h32V72H88ZM72,200H40V184H72ZM72,72H40V56H72ZM88,200V185.3h32V200Zm48,0V185.3h32V200Zm80,0H184V185.3h9.2V184H216v16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="48" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="48" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="176" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="176" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="80" x2="224" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="48" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="48" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="176" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="176" x2="176" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `play_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.play_circle />
  <Heroicons.play_circle class="w-4 h-4" />
  <Heroicons.play_circle solid />
  <Heroicons.play_circle mini />
  <Heroicons.play_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def play_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="156 128 116 100 116 156 156 128" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32ZM112,160V96l48,32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36.4,110.7-48,32A8.7,8.7,0,0,1,112,168a8.5,8.5,0,0,1-3.8-.9A8,8,0,0,1,104,160V96a8,8,0,0,1,4.2-7.1,8.3,8.3,0,0,1,8.2.4l48,32a8,8,0,0,1,0,13.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_right />
  <Heroicons.caret_circle_right class="w-4 h-4" />
  <Heroicons.caret_circle_right solid />
  <Heroicons.caret_circle_right mini />
  <Heroicons.caret_circle_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="116 92 156 128 116 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="24"/><polyline points="116 92 156 128 116 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="116 92 156 128 116 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm33.4,109.9-40,36A8.2,8.2,0,0,1,116,172a7.9,7.9,0,0,1-5.9-2.6,8,8,0,0,1,.5-11.3L144,128,110.6,97.9a8,8,0,0,1,10.8-11.8l40,36a8,8,0,0,1,0,11.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="12"/><polyline points="116 92 156 128 116 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="8"/><polyline points="116 92 156 128 116 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_lines_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_lines_down />
  <Heroicons.arrow_fat_lines_down class="w-4 h-4" />
  <Heroicons.arrow_fat_lines_down solid />
  <Heroicons.arrow_fat_lines_down mini />
  <Heroicons.arrow_fat_lines_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_lines_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 104 80 104 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="72" x2="80" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 116 80 116 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="44" x2="80" y2="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="80" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 104 80 104 80 136 32 136" opacity="0.2"/><polygon points="32 136 128 232 224 136 176 136 176 104 80 104 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="72" x2="80" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,141.7l-96,96a8.1,8.1,0,0,1-11.4,0l-96-96a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,32,128H72V104a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8v24h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,229.7,141.7ZM184,40a8,8,0,0,0-8-8H80a8,8,0,0,0,0,16h96A8,8,0,0,0,184,40Zm0,32a8,8,0,0,0-8-8H80a8,8,0,0,0,0,16h96A8,8,0,0,0,184,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 104 80 104 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="72" x2="80" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 136 128 232 224 136 176 136 176 104 80 104 80 136 32 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="40" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="72" x2="80" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wave_sine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wave_sine />
  <Heroicons.wave_sine class="w-4 h-4" />
  <Heroicons.wave_sine solid />
  <Heroicons.wave_sine mini />
  <Heroicons.wave_sine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wave_sine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128c104-224,104,224,208,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128c104-224,104,224,208,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128c104-224,104,224,208,0Z" opacity="0.2"/><path d="M24,128c104-224,104,224,208,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178,200.7c-25.1,0-40.7-33.7-57.3-69.3-13-28.2-27.8-60.1-42.7-60.1s-36.3,37.6-46.7,60.1a8.1,8.1,0,1,1-14.6-6.8C38.7,77.4,58.1,55.3,78,55.3c25.1,0,40.7,33.7,57.3,69.3,13,28.2,27.8,60.1,42.7,60.1,16.4,0,36.3-37.6,46.7-60.1a8.1,8.1,0,0,1,14.6,6.8C217.3,178.6,197.9,200.7,178,200.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128c104-224,104,224,208,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128c104-224,104,224,208,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_up />
  <Heroicons.arrow_up class="w-4 h-4" />
  <Heroicons.arrow_up solid />
  <Heroicons.arrow_up mini />
  <Heroicons.arrow_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="216" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 112 128 40 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="216" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 112 128 40 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="216" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 112 128 40 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207.4,115.1A8,8,0,0,1,200,120H136v96a8,8,0,0,1-16,0V120H56a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l72-72a8.1,8.1,0,0,1,11.4,0l72,72A8.4,8.4,0,0,1,207.4,115.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="216" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 112 128 40 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="216" x2="128" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 112 128 40 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_lines_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_lines_up />
  <Heroicons.arrow_fat_lines_up class="w-4 h-4" />
  <Heroicons.arrow_fat_lines_up solid />
  <Heroicons.arrow_fat_lines_up mini />
  <Heroicons.arrow_fat_lines_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_lines_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 152 80 152 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="184" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 140 80 140 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="212" x2="80" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 152 80 152 80 120 32 120" opacity="0.2"/><polygon points="32 120 128 24 224 120 176 120 176 152 80 152 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="184" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.4,123.1A8,8,0,0,1,224,128H184v24a8,8,0,0,1-8,8H80a8,8,0,0,1-8-8V128H32a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l96-96a8.1,8.1,0,0,1,11.4,0l96,96A8.4,8.4,0,0,1,231.4,123.1ZM176,208H80a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Zm0-32H80a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 152 80 152 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="184" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="32 120 128 24 224 120 176 120 176 152 80 152 80 120 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="216" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="184" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_down_left />
  <Heroicons.arrow_elbow_down_left class="w-4 h-4" />
  <Heroicons.arrow_elbow_down_left solid />
  <Heroicons.arrow_elbow_down_left mini />
  <Heroicons.arrow_elbow_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 176 96 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 32 192 176 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 176 96 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 32 192 176 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 176 96 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 32 192 176 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,32V176a8,8,0,0,1-8,8H104v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,104,128v40h80V32a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 176 96 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 32 192 176 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 128 48 176 96 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 32 192 176 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flower_lotus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flower_lotus />
  <Heroicons.flower_lotus class="w-4 h-4" />
  <Heroicons.flower_lotus solid />
  <Heroicons.flower_lotus mini />
  <Heroicons.flower_lotus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flower_lotus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200c16,0,42.5-.2,72.9-17.8s40.3-39.5,43.4-50.8a7.9,7.9,0,0,0-5.7-9.8c-7.3-1.9-20.1-3.6-36.5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M53.9,121.8c-16.4-3.8-29.2-2.1-36.5-.2a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,200s40-21.8,40-80c0-45.6-24.6-68.8-35.2-76.8a8.1,8.1,0,0,0-9.6,0C112.6,51.2,88,74.4,88,120,88,178.2,128,200,128,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,200c12-2.6,44.3-20.8,63.7-54.4s14.6-60.3,10.8-72a7.8,7.8,0,0,0-9.2-5.3,77.1,77.1,0,0,0-31.4,15.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94.1,83.4A77.1,77.1,0,0,0,62.7,68.3a7.8,7.8,0,0,0-9.2,5.3c-3.8,11.7-8.6,38.5,10.8,72S116,197.4,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200s40-21.8,40-80c0-45.6-24.6-68.8-35.2-76.8a8.1,8.1,0,0,0-9.6,0C112.6,51.2,88,74.4,88,120,88,178.2,128,200,128,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,200c12-2.6,44.3-20.8,63.7-54.4s14.6-60.3,10.8-72a7.8,7.8,0,0,0-9.2-5.3,77.1,77.1,0,0,0-31.4,15.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M94.1,83.4A77.1,77.1,0,0,0,62.7,68.3a7.8,7.8,0,0,0-9.2,5.3c-3.8,11.7-8.6,38.5,10.8,72S116,197.4,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,200c16,0,41.8-.2,72.3-17.8s40.3-39.5,43.4-50.8a7.9,7.9,0,0,0-5.7-9.8c-7.3-1.9-19.8-3.6-35.8.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M53.8,121.7c-16-3.7-28.5-2-35.8-.1a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200s-40-21.8-40-80a106,106,0,0,1,6.1-36.6h0A77.5,77.5,0,0,0,62.8,68.3a7.9,7.9,0,0,0-9.3,5.3c-2.9,8.7-6.3,26,.4,48.2h0c-16.4-3.8-29.2-2.1-36.5-.2a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" opacity="0.2"/><path d="M128,200s40-21.8,40-80a106,106,0,0,0-6.1-36.6h0a77.5,77.5,0,0,1,31.3-15.1,7.9,7.9,0,0,1,9.3,5.3c2.9,8.7,6.3,26-.4,48.2h0c16.4-3.8,29.2-2.1,36.5-.2a7.9,7.9,0,0,1,5.7,9.8c-3.1,11.3-13,33.3-43.4,50.8S144,200,128,200" opacity="0.2"/><path d="M128,200c16,0,42.5-.2,72.9-17.8s40.3-39.5,43.4-50.8a7.9,7.9,0,0,0-5.7-9.8c-7.3-1.9-20.1-3.6-36.5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M53.9,121.8c-16.4-3.8-29.2-2.1-36.5-.2a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,200s40-21.8,40-80c0-45.6-24.6-68.8-35.2-76.8a8.1,8.1,0,0,0-9.6,0C112.6,51.2,88,74.4,88,120,88,178.2,128,200,128,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,200c12-2.6,44.3-20.8,63.7-54.4s14.6-60.3,10.8-72a7.8,7.8,0,0,0-9.2-5.3,77.1,77.1,0,0,0-31.4,15.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94.1,83.4A77.1,77.1,0,0,0,62.7,68.3a7.8,7.8,0,0,0-9.2,5.3c-3.8,11.7-8.6,38.5,10.8,72S116,197.4,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M250.5,121.3a15.9,15.9,0,0,0-9.9-7.5,77.1,77.1,0,0,0-27.9-1.8,86.7,86.7,0,0,0-2.6-40.9,15.9,15.9,0,0,0-18.5-10.7,82.3,82.3,0,0,0-26.2,10.8,94.4,94.4,0,0,0-27.8-34.4,15.9,15.9,0,0,0-19.2,0A94.4,94.4,0,0,0,90.6,71.2,82.3,82.3,0,0,0,64.4,60.4,15.9,15.9,0,0,0,45.9,71.1,86.7,86.7,0,0,0,43.3,112a77.1,77.1,0,0,0-27.9,1.8A15.9,15.9,0,0,0,4,133.6c3.5,12.6,14.3,36.7,47.1,55.6S112.5,208,127.9,208h.2c15.4,0,44.2,0,76.8-18.8s43.6-43,47.1-55.6A16,16,0,0,0,250.5,121.3ZM128,49.6c9.6,7.2,32,28.4,32,70.4s-22.4,63.2-32,70.4h0c-9.6-7.2-32-28.4-32-70.4S118.4,56.8,128,49.6ZM19.3,129.3c6.2-1.6,15.9-2.8,28.4-.6a117.1,117.1,0,0,0,9.7,20.9,137.9,137.9,0,0,0,33.2,38.6,123.4,123.4,0,0,1-31.5-12.9C31.3,159.2,22.3,139.5,19.3,129.3Zm177.6,46a123.4,123.4,0,0,1-31.5,12.9,137.9,137.9,0,0,0,33.2-38.6,117.1,117.1,0,0,0,9.7-20.9,68.8,68.8,0,0,1,28.3.5C233.7,139.5,224.7,159.2,196.9,175.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200c16,0,42.5-.2,72.9-17.8s40.3-39.5,43.4-50.8a7.9,7.9,0,0,0-5.7-9.8c-7.3-1.9-20.1-3.6-36.5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M53.9,121.8c-16.4-3.8-29.2-2.1-36.5-.2a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,200s40-21.8,40-80c0-45.6-24.6-68.8-35.2-76.8a8.1,8.1,0,0,0-9.6,0C112.6,51.2,88,74.4,88,120,88,178.2,128,200,128,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,200c12-2.6,44.3-20.8,63.7-54.4s14.6-60.3,10.8-72a7.8,7.8,0,0,0-9.2-5.3,77.1,77.1,0,0,0-31.4,15.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M94.1,83.4A77.1,77.1,0,0,0,62.7,68.3a7.8,7.8,0,0,0-9.2,5.3c-3.8,11.7-8.6,38.5,10.8,72S116,197.4,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,200c16,0,42.5-.2,72.9-17.8s40.3-39.5,43.4-50.8a7.9,7.9,0,0,0-5.7-9.8c-7.3-1.9-20.1-3.6-36.5.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M53.9,121.8c-16.4-3.8-29.2-2.1-36.5-.2a7.9,7.9,0,0,0-5.7,9.8c3.1,11.3,13,33.3,43.4,50.8S112,200,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,200s40-21.8,40-80c0-45.6-24.6-68.8-35.2-76.8a8.1,8.1,0,0,0-9.6,0C112.6,51.2,88,74.4,88,120,88,178.2,128,200,128,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,200c12-2.6,44.3-20.8,63.7-54.4s14.6-60.3,10.8-72a7.8,7.8,0,0,0-9.2-5.3,77.1,77.1,0,0,0-31.4,15.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M94.1,83.4A77.1,77.1,0,0,0,62.7,68.3a7.8,7.8,0,0,0-9.2,5.3c-3.8,11.7-8.6,38.5,10.8,72S116,197.4,128,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sun_dim` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sun_dim />
  <Heroicons.sun_dim class="w-4 h-4" />
  <Heroicons.sun_dim solid />
  <Heroicons.sun_dim mini />
  <Heroicons.sun_dim outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sun_dim(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="62.9" x2="57.3" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="28" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="193.1" x2="57.3" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="193.1" x2="198.7" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="228" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="62.9" x2="198.7" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="28" x2="128" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="198.7" y1="57.3" x2="204.4" y2="51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="228" y1="128" x2="236" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="198.7" y1="198.7" x2="204.4" y2="204.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="228" x2="128" y2="236" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="57.3" y1="198.7" x2="51.6" y2="204.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="28" y1="128" x2="20" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="57.3" y1="57.3" x2="51.6" y2="51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" opacity="0.2"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="36" x2="128" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="62.9" x2="57.3" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="128" x2="28" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="62.9" y1="193.1" x2="57.3" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="220" x2="128" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="193.1" x2="198.7" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="128" x2="228" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="193.1" y1="62.9" x2="198.7" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="68"/><path d="M128,44a8,8,0,0,0,8-8V28a8,8,0,0,0-16,0v8A8,8,0,0,0,128,44Z"/><path d="M57.3,68.6a8.1,8.1,0,0,0,11.3,0,8,8,0,0,0,0-11.3l-5.7-5.7A8,8,0,0,0,51.6,62.9Z"/><path d="M36,120H28a8,8,0,0,0,0,16h8a8,8,0,0,0,0-16Z"/><path d="M57.3,187.4l-5.7,5.7a8,8,0,0,0,0,11.3,8.3,8.3,0,0,0,5.7,2.3,8,8,0,0,0,5.6-2.3l5.7-5.7a8,8,0,0,0-11.3-11.3Z"/><path d="M128,212a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-8A8,8,0,0,0,128,212Z"/><path d="M198.7,187.4a8,8,0,0,0-11.3,11.3l5.7,5.7a8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3,8,8,0,0,0,0-11.3Z"/><path d="M228,120h-8a8,8,0,0,0,0,16h8a8,8,0,0,0,0-16Z"/><path d="M193.1,70.9a7.8,7.8,0,0,0,5.6-2.3l5.7-5.7a8,8,0,1,0-11.3-11.3l-5.7,5.7a8,8,0,0,0,0,11.3A7.8,7.8,0,0,0,193.1,70.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="36" x2="128" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="62.9" y1="62.9" x2="57.3" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="128" x2="28" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="62.9" y1="193.1" x2="57.3" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="220" x2="128" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="193.1" y1="193.1" x2="198.7" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="220" y1="128" x2="228" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="193.1" y1="62.9" x2="198.7" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="36" x2="128" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="62.9" y1="62.9" x2="57.3" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="128" x2="28" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="62.9" y1="193.1" x2="57.3" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="220" x2="128" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="193.1" y1="193.1" x2="198.7" y2="198.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="220" y1="128" x2="228" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="193.1" y1="62.9" x2="198.7" y2="57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `taxi` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.taxi />
  <Heroicons.taxi class="w-4 h-4" />
  <Heroicons.taxi solid />
  <Heroicons.taxi mini />
  <Heroicons.taxi outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def taxi(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,64,146,29a7.9,7.9,0,0,0-7.4-5H117.4a7.9,7.9,0,0,0-7.4,5L96,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,68,146,33a7.9,7.9,0,0,0-7.4-5H117.4a7.9,7.9,0,0,0-7.4,5L96,68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="124" x2="244" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M228,172v32a8,8,0,0,1-8,8H196a8,8,0,0,1-8-8V172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,172v32a8,8,0,0,1-8,8H36a8,8,0,0,1-8-8V172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M228,124,194.4,71.7a8.1,8.1,0,0,0-6.8-3.7H68.4a8.1,8.1,0,0,0-6.8,3.7L28,124v48H228Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184Z" opacity="0.2"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120Z" opacity="0.2"/><path d="M160,64,146,29a7.9,7.9,0,0,0-7.4-5H117.4a7.9,7.9,0,0,0-7.4,5L96,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,112H228.6L201.2,64.1A15.9,15.9,0,0,0,187.4,56h-22l-12-29.9A15.7,15.7,0,0,0,138.6,16H117.4a15.7,15.7,0,0,0-14.8,10.1L90.6,56h-22a15.9,15.9,0,0,0-13.8,8.1L27.4,112H16a8,8,0,0,0,0,16h8v80a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V192h96v16a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V128h8a8,8,0,0,0,0-16ZM117.4,32h21.2l9.6,24H107.8ZM80,160H64a8,8,0,0,1,0-16H80a8,8,0,0,1,0,16Zm112,0H176a8,8,0,0,1,0-16h16a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,64,146,29a7.9,7.9,0,0,0-7.4-5H117.4a7.9,7.9,0,0,0-7.4,5L96,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,64,146,29a7.9,7.9,0,0,0-7.4-5H117.4a7.9,7.9,0,0,0-7.4,5L96,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="120" x2="240" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,184v24a8,8,0,0,1-8,8H192a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,184v24a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="152" x2="80" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="152" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,120,194.3,68a7.9,7.9,0,0,0-6.9-4H68.6a7.9,7.9,0,0,0-6.9,4L32,120v64H224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `push_pin_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.push_pin_simple />
  <Heroicons.push_pin_simple class="w-4 h-4" />
  <Heroicons.push_pin_simple solid />
  <Heroicons.push_pin_simple mini />
  <Heroicons.push_pin_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def push_pin_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="176" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="176" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="40" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 176 80 40 176 40 200 176 56 176" opacity="0.2"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="40" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,176a8,8,0,0,1-8,8H136v56a8,8,0,0,1-16,0V184H40a8,8,0,0,1,0-16h9.3L70.5,48H64a8,8,0,0,1,0-16H192a8,8,0,0,1,0,16h-6.5l21.2,120H216A8,8,0,0,1,224,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="176" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="40" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="176" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="40" x2="192" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="176" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="40" x2="200" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_high />
  <Heroicons.speaker_high class="w-4 h-4" />
  <Heroicons.speaker_high solid />
  <Heroicons.speaker_high mini />
  <Heroicons.speaker_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80Z" opacity="0.2"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224.6,71.4a8,8,0,1,0-11.3,11.4,64.1,64.1,0,0,1,0,90.5,7.9,7.9,0,0,0,0,11.3,8,8,0,0,0,5.6,2.3,8.3,8.3,0,0,0,5.7-2.3,80.2,80.2,0,0,0,0-113.2Z"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.3,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3A8.1,8.1,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A7.8,7.8,0,0,0,160,224V32A8.1,8.1,0,0,0,155.5,24.8ZM32,96H72v64H32Z"/><path d="M185,99.7a7.9,7.9,0,0,0,0,11.3,24.1,24.1,0,0,1,0,34,7.9,7.9,0,0,0,0,11.3,7.6,7.6,0,0,0,5.6,2.3,7.8,7.8,0,0,0,5.7-2.3,40.1,40.1,0,0,0,0-56.6A8,8,0,0,0,185,99.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.9,77.1a71.9,71.9,0,0,1,0,101.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.6,105.4a31.9,31.9,0,0,1,0,45.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `leaf` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.leaf />
  <Heroicons.leaf class="w-4 h-4" />
  <Heroicons.leaf solid />
  <Heroicons.leaf mini />
  <Heroicons.leaf outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def leaf(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" opacity="0.2"/><line x1="160" y1="96" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,39.5a8.1,8.1,0,0,0-7.5-7.5C140.2,27.5,79.1,50.5,53,93.6a87.3,87.3,0,0,0-12.8,49.1c.6,15.9,5.2,32.1,13.8,48L154.3,90.3a8.1,8.1,0,0,1,11.4,11.4L65.3,202c15.9,8.6,32.1,13.2,48,13.8h3.3A87,87,0,0,0,162.4,203C205.5,176.9,228.5,115.8,224,39.5Z"/><path d="M57.1,196.1c-1.1-1.8-2.1-3.6-3.1-5.4L34.3,210.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L65.3,202l-5.4-3.1A9.3,9.3,0,0,1,57.1,196.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,192C16,112,80,32,216,40,224,176,144,240,64,192Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_waving` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_waving />
  <Heroicons.hand_waving class="w-4 h-4" />
  <Heroicons.hand_waving solid />
  <Heroicons.hand_waving mini />
  <Heroicons.hand_waving outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_waving(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94,61.4a20,20,0,0,1,34.6-20l30,51.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M67.4,95.2l-16-27.7A20,20,0,0,1,86,47.5l34,58.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,165.3a39.9,39.9,0,0,1,14.6-54.6l-10-17.4a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M81.1,240A110.3,110.3,0,0,1,48,204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,31a51.7,51.7,0,0,1,45,26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94,61.4a20,20,0,0,1,34.6-20l30,51.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M67.4,95.2l-16-27.7A20,20,0,0,1,86,47.5l34,58.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154,165.3a39.9,39.9,0,0,1,14.6-54.6l-10-17.4a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,23a60.1,60.1,0,0,1,52,30" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M66.9,240a121.1,121.1,0,0,1-26.8-32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.6,93.3a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l-16-27.7A20,20,0,0,1,86,47.5l8,13.9a20,20,0,0,1,34.6-20Z" opacity="0.2"/><path d="M94,61.4a20,20,0,0,1,34.6-20l30,51.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M67.4,95.2l-16-27.7A20,20,0,0,1,86,47.5l34,58.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,165.3a39.9,39.9,0,0,1,14.6-54.6l-10-17.4a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M81.1,240A110.3,110.3,0,0,1,48,204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,31a51.7,51.7,0,0,1,45,26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220.2,104l-20-34.7a28.1,28.1,0,0,0-47.3-1.9l-17.3-30A28.1,28.1,0,0,0,97.3,27.1a29.4,29.4,0,0,0-9.9,9.6,27.9,27.9,0,0,0-11.5-6.2,27.1,27.1,0,0,0-21.2,2.8A27.9,27.9,0,0,0,44.4,71.5l3.4,5.8A28.5,28.5,0,0,0,36,81a28.1,28.1,0,0,0-10.2,38.2l42,72.8a88,88,0,1,0,152.4-88Zm-6.7,62.6A71.2,71.2,0,0,1,180,210.3,72.1,72.1,0,0,1,81.6,184l-42-72.8a12,12,0,0,1,20.8-12l22,38.1a8,8,0,1,0,13.9-8l-22-38.1h0l-16-27.7a12,12,0,0,1-1.2-9.1,11.8,11.8,0,0,1,5.6-7.3,12,12,0,0,1,9.1-1.2,12.5,12.5,0,0,1,7.3,5.6L87,65.4h.1l26,45a7.7,7.7,0,0,0,6.9,4,7.3,7.3,0,0,0,4-1.1,8,8,0,0,0,2.9-10.9l-26-45h0a12,12,0,1,1,20.8-12l30,51.9h0l6.3,11a48.1,48.1,0,0,0-10.9,61,8,8,0,0,0,13.8-8,32,32,0,0,1,11.7-43.7,8.1,8.1,0,0,0,3.8-4.9,8.4,8.4,0,0,0-.8-6l-10-17.4a12,12,0,0,1,13.5-17.5,11.8,11.8,0,0,1,7.2,5.5l20,34.7A70.9,70.9,0,0,1,213.5,166.6Zm-125.8,78a8.2,8.2,0,0,1-6.6,3.4,8.6,8.6,0,0,1-4.6-1.4A117.9,117.9,0,0,1,41.1,208a8,8,0,1,1,13.8-8,102.6,102.6,0,0,0,30.8,33.4A8.1,8.1,0,0,1,87.7,244.6ZM168,31a8,8,0,0,1,8-8h0a60.2,60.2,0,0,1,52,30,7.9,7.9,0,0,1-3,10.9,7.1,7.1,0,0,1-4,1.1,8,8,0,0,1-6.9-4A44,44,0,0,0,176,39,8,8,0,0,1,168,31Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94,61.4a20,20,0,0,1,34.6-20l30,51.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M67.4,95.2l-16-27.7A20,20,0,0,1,86,47.5l34,58.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154,165.3a39.9,39.9,0,0,1,14.6-54.6l-10-17.4a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M81.1,240A110.3,110.3,0,0,1,48,204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,31a51.7,51.7,0,0,1,45,26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94,61.4a20,20,0,0,1,34.6-20l30,51.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M67.4,95.2l-16-27.7A20,20,0,0,1,86,47.5l34,58.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154,165.3a39.9,39.9,0,0,1,14.6-54.6l-10-17.4a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,74.7,188l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M81.1,240A110.3,110.3,0,0,1,48,204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,31a51.7,51.7,0,0,1,45,26" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_user` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_user />
  <Heroicons.folder_simple_user class="w-4 h-4" />
  <Heroicons.folder_simple_user solid />
  <Heroicons.folder_simple_user mini />
  <Heroicons.folder_simple_user outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_user(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" opacity="0.2"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M226.7,218a8,8,0,0,1-7.7,10H157a8,8,0,0,1-7.7-10,40.2,40.2,0,0,1,16.3-23.2,32,32,0,1,1,44.8,0A40.2,40.2,0,0,1,226.7,218ZM216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16h80a8,8,0,0,0,0-16H40V64H93.3l27.8,20.8a15.6,15.6,0,0,0,9.6,3.2H216v32a8,8,0,0,0,16,0V88A16,16,0,0,0,216,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="172" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M157,220a32,32,0,0,1,62,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `discord_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.discord_logo />
  <Heroicons.discord_logo class="w-4 h-4" />
  <Heroicons.discord_logo solid />
  <Heroicons.discord_logo mini />
  <Heroicons.discord_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def discord_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="144" r="12"/><circle cx="160" cy="144" r="12"/><path d="M74.4,80A174.9,174.9,0,0,1,128,72a174.9,174.9,0,0,1,53.6,8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.6,176a174.9,174.9,0,0,1-53.6,8,174.9,174.9,0,0,1-53.6-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M155,182.1l12.1,24a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3l-7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="96" cy="144" r="12"/><circle cx="160" cy="144" r="12"/><path d="M74.4,80A174.9,174.9,0,0,1,128,72a174.9,174.9,0,0,1,53.6,8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.6,176a174.9,174.9,0,0,1-53.6,8,174.9,174.9,0,0,1-53.6-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M155,182.1l12.1,24a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3l-7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="132" r="16"/><circle cx="160" cy="132" r="16"/><path d="M151.3,174.6l15.8,31.5a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3L151.5,81.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104.7,174.6,88.9,206.1a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l10.5,31.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M181.1,168c-15.2,5.1-33.5,8-53.1,8s-37.9-2.9-53.1-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,86.4A173.7,173.7,0,0,0,128,80a173.7,173.7,0,0,0-48,6.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9h0a190.1,190.1,0,0,1,52.2,0h0L162,49.9a8.1,8.1,0,0,1,9.4-5.3A176.4,176.4,0,0,1,201,53.8a7.7,7.7,0,0,1,4.7,5.1l33.9,113.2a8.1,8.1,0,0,1-2.4,8.4c-15.4,13.4-36.6,23.8-61.1,29.8a7.8,7.8,0,0,1-9-4.2l-12.1-24a195,195,0,0,1-27,1.9,195,195,0,0,1-27-1.9Z" opacity="0.2"/><circle cx="96" cy="144" r="12"/><circle cx="160" cy="144" r="12"/><path d="M74.4,80A174.9,174.9,0,0,1,128,72a174.9,174.9,0,0,1,53.6,8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.6,176a174.9,174.9,0,0,1-53.6,8,174.9,174.9,0,0,1-53.6-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M155,182.1l12.1,24a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3l-7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M247.3,169.8l-34-113.2a15.6,15.6,0,0,0-9.2-10.2h-.6l.6-.2A192.4,192.4,0,0,0,169.6,36a8,8,0,0,0-9.4,6.3,7.9,7.9,0,0,0,6.2,9.4c4.5.9,8.9,2,13.2,3.2A8,8,0,0,1,176,70h-.8A185.4,185.4,0,0,0,128,64a181.8,181.8,0,0,0-46.1,5.8,8,8,0,0,1-5.6-14.9h.1c4.3-1.2,8.7-2.3,13.2-3.2a8,8,0,0,0,6.3-9.4A8.1,8.1,0,0,0,86.5,36,191.2,191.2,0,0,0,51.9,46.4a15.6,15.6,0,0,0-9.2,10.2L8.7,169.8a16,16,0,0,0,4.9,16.7,34.7,34.7,0,0,0,2.9,2.5h.1c16.2,13.2,37.5,23.3,61.5,29.1a6.3,6.3,0,0,0,1.9.3,8,8,0,0,0,1.9-15.8,160.3,160.3,0,0,1-31.3-11.1h0a8,8,0,0,1,8.6-13.2c19,8.4,42.9,13.7,68.8,13.7s49.8-5.3,68.8-13.7a8,8,0,0,1,8.6,13.2h0a160.3,160.3,0,0,1-31.3,11.1,8,8,0,0,0,1.9,15.8,6.3,6.3,0,0,0,1.9-.3c24-5.8,45.3-15.9,61.5-29.1h.1a34.7,34.7,0,0,0,2.9-2.5A16,16,0,0,0,247.3,169.8ZM96,156a12,12,0,1,1,12-12A12,12,0,0,1,96,156Zm64,0a12,12,0,1,1,12-12A12,12,0,0,1,160,156Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="144" r="10"/><circle cx="160" cy="144" r="10"/><path d="M74.4,80A174.9,174.9,0,0,1,128,72a174.9,174.9,0,0,1,53.6,8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M181.6,176a174.9,174.9,0,0,1-53.6,8,174.9,174.9,0,0,1-53.6-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M155,182.1l12.1,24a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3l-7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="144" r="8"/><circle cx="160" cy="144" r="8"/><path d="M74.4,80A174.9,174.9,0,0,1,128,72a174.9,174.9,0,0,1,53.6,8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M181.6,176a174.9,174.9,0,0,1-53.6,8,174.9,174.9,0,0,1-53.6-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M155,182.1l12.1,24a7.8,7.8,0,0,0,9,4.2c24.5-6,45.7-16.4,61.1-29.8a8.1,8.1,0,0,0,2.4-8.4L205.7,58.9a7.7,7.7,0,0,0-4.7-5.1,176.4,176.4,0,0,0-29.6-9.2,8.1,8.1,0,0,0-9.4,5.3l-7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M101,182.1l-12.1,24a7.8,7.8,0,0,1-9,4.2c-24.5-6-45.7-16.4-61.1-29.8a8.1,8.1,0,0,1-2.4-8.4L50.3,58.9A7.7,7.7,0,0,1,55,53.8a176.4,176.4,0,0,1,29.6-9.2A8.1,8.1,0,0,1,94,49.9l7.9,23.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `book_bookmark` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.book_bookmark />
  <Heroicons.book_bookmark class="w-4 h-4" />
  <Heroicons.book_bookmark solid />
  <Heroicons.book_bookmark mini />
  <Heroicons.book_bookmark outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def book_bookmark(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 32 176 128 144 104 112 128 112 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 32 172 128 140 104 108 128 108 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,208a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 208 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32v96l-32-24-32,24V32H72A23.9,23.9,0,0,0,48,56V216a23.9,23.9,0,0,1,24-24H208V32Z" opacity="0.2"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 32 176 128 144 104 112 128 112 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,24H72A32.1,32.1,0,0,0,40,56V224a8,8,0,0,0,8,8H192a8,8,0,0,0,0-16H56a16,16,0,0,1,16-16H208a8,8,0,0,0,8-8V32A8,8,0,0,0,208,24Zm-24,96-25.6-19.2a3.9,3.9,0,0,0-4.8,0L128,120V40h56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 32 176 128 144 104 112 128 112 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 32 176 128 144 104 112 128 112 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,216a23.9,23.9,0,0,1,24-24H208V32H72A23.9,23.9,0,0,0,48,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 216 48 224 192 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magnifying_glass` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magnifying_glass />
  <Heroicons.magnifying_glass class="w-4 h-4" />
  <Heroicons.magnifying_glass solid />
  <Heroicons.magnifying_glass mini />
  <Heroicons.magnifying_glass outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magnifying_glass(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" opacity="0.2"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,116a60,60,0,1,1-60-60A60,60,0,0,1,176,116Zm53.6,113.7A8,8,0,0,1,224,232a8.3,8.3,0,0,1-5.7-2.3l-43.2-43.3a92.2,92.2,0,1,1,11.3-11.3l43.2,43.2A8,8,0,0,1,229.6,229.7ZM116,192a76,76,0,1,0-76-76A76.1,76.1,0,0,0,116,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `code` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.code />
  <Heroicons.code class="w-4 h-4" />
  <Heroicons.code solid />
  <Heroicons.code mini />
  <Heroicons.code outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def code(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 88 16 128 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 88 240 128 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 88 16 128 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 88 240 128 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 88 16 128 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 88 240 128 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.1,82.9a7.8,7.8,0,0,0-11.2-1l-48,40a7.9,7.9,0,0,0,0,12.2l48,40a7.8,7.8,0,0,0,11.2-1,7.8,7.8,0,0,0-1-11.2L28.5,128,69.1,94.1A7.8,7.8,0,0,0,70.1,82.9Z"/><path d="M245.1,121.9l-48-40a8,8,0,0,0-10.2,12.2L227.5,128l-40.6,33.9A8,8,0,0,0,192,176a7.7,7.7,0,0,0,5.1-1.9l48-40a7.9,7.9,0,0,0,0-12.2Z"/><path d="M162.7,32.5a7.9,7.9,0,0,0-10.2,4.8l-64,176a7.9,7.9,0,0,0,4.8,10.2,8.6,8.6,0,0,0,2.7.5,7.9,7.9,0,0,0,7.5-5.3l64-176A7.9,7.9,0,0,0,162.7,32.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 88 16 128 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 88 240 128 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="64 88 16 128 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 88 240 128 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_down_right />
  <Heroicons.arrow_bend_down_right class="w-4 h-4" />
  <Heroicons.arrow_bend_down_right solid />
  <Heroicons.arrow_bend_down_right mini />
  <Heroicons.arrow_bend_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 224 152 176 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,56a96,96,0,0,0,96,96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 224 152 176 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,56a96,96,0,0,0,96,96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 224 152 176 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,56a96,96,0,0,0,96,96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,157.7l-48,48A8.3,8.3,0,0,1,176,208a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,200V160H128A104.2,104.2,0,0,1,24,56a8,8,0,0,1,16,0,88.1,88.1,0,0,0,88,88h40V104a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,229.7,157.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 224 152 176 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,56a96,96,0,0,0,96,96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 224 152 176 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,56a96,96,0,0,0,96,96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circles_three_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circles_three_plus />
  <Heroicons.circles_three_plus class="w-4 h-4" />
  <Heroicons.circles_three_plus solid />
  <Heroicons.circles_three_plus mini />
  <Heroicons.circles_three_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circles_three_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="152" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="74" cy="74" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="182" cy="74" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="74" cy="182" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="182" y1="156" x2="182" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="182" x2="156" y2="182" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" opacity="0.2"/><circle cx="180" cy="76" r="36" opacity="0.2"/><circle cx="76" cy="180" r="36" opacity="0.2"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="180" y1="152" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="44"/><circle cx="180" cy="76" r="44"/><circle cx="76" cy="180" r="44"/><path d="M208,172H188V152a8,8,0,0,0-16,0v20H152a8,8,0,0,0,0,16h20v20a8,8,0,0,0,16,0V188h20a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="180" y1="152" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="76" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="76" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="76" cy="180" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="180" y1="152" x2="180" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="180" x2="152" y2="180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_up_left />
  <Heroicons.arrow_u_up_left class="w-4 h-4" />
  <Heroicons.arrow_u_up_left solid />
  <Heroicons.arrow_u_up_left mini />
  <Heroicons.arrow_u_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 136 32 88 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,200h88a56,56,0,0,0,56-56h0a56,56,0,0,0-56-56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 136 32 88 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,200h88a56,56,0,0,0,56-56h0a56,56,0,0,0-56-56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 136 32 88 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,200h88a56,56,0,0,0,56-56h0a56,56,0,0,0-56-56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,144a64.1,64.1,0,0,1-64,64H80a8,8,0,0,1,0-16h88a48,48,0,0,0,0-96H88v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,88,40V80h80A64.1,64.1,0,0,1,232,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 136 32 88 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,200h88a56,56,0,0,0,56-56h0a56,56,0,0,0-56-56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 136 32 88 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,200h88a56,56,0,0,0,56-56h0a56,56,0,0,0-56-56H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_out_cardinal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_out_cardinal />
  <Heroicons.arrows_out_cardinal class="w-4 h-4" />
  <Heroicons.arrows_out_cardinal solid />
  <Heroicons.arrows_out_cardinal mini />
  <Heroicons.arrows_out_cardinal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_out_cardinal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 203.7 128 232 99.7 203.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="99.7 52.3 128 24 156.3 52.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="52.3 156.3 24 128 52.3 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="203.7 99.7 232 128 203.7 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 203.7 128 232 99.7 203.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="160" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="99.7 52.3 128 24 156.3 52.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="96" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="52.3 156.3 24 128 52.3 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="203.7 99.7 232 128 203.7 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 203.7 128 232 99.7 203.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="99.7 52.3 128 24 156.3 52.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="52.3 156.3 24 128 52.3 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="203.7 99.7 232 128 203.7 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M163.7,200.7a8.1,8.1,0,0,1-1.8,8.7l-28.2,28.3a8.2,8.2,0,0,1-11.4,0L94.1,209.4a8,8,0,0,1,5.6-13.7H120V160a8,8,0,0,1,16,0v35.7h20.3A8.2,8.2,0,0,1,163.7,200.7ZM99.7,60.3H120V96a8,8,0,0,0,16,0V60.3h20.3a8,8,0,0,0,5.6-13.7L133.7,18.3a8.2,8.2,0,0,0-11.4,0L94.1,46.6a8,8,0,0,0,5.6,13.7ZM96,136a8,8,0,0,0,0-16H60.3V99.7a8,8,0,0,0-13.7-5.6L18.3,122.3a8.1,8.1,0,0,0,0,11.4l28.3,28.2a8,8,0,0,0,5.7,2.4,7.7,7.7,0,0,0,3-.6,8.2,8.2,0,0,0,5-7.4V136Zm141.7-13.7L209.4,94.1a8,8,0,0,0-13.7,5.6V120H160a8,8,0,0,0,0,16h35.7v20.3a8.2,8.2,0,0,0,5,7.4,7.7,7.7,0,0,0,3,.6,8,8,0,0,0,5.7-2.4l28.3-28.2A8.1,8.1,0,0,0,237.7,122.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 203.7 128 232 99.7 203.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="99.7 52.3 128 24 156.3 52.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="52.3 156.3 24 128 52.3 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="203.7 99.7 232 128 203.7 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 203.7 128 232 99.7 203.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="99.7 52.3 128 24 156.3 52.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="52.3 156.3 24 128 52.3 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="24" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="203.7 99.7 232 128 203.7 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud_slash />
  <Heroicons.cloud_slash class="w-4 h-4" />
  <Heroicons.cloud_slash solid />
  <Heroicons.cloud_slash mini />
  <Heroicons.cloud_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M193.9,200.5A80.1,80.1,0,0,1,160,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.6,63.5A80,80,0,0,1,219.7,181.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128A79,79,0,0,1,91.1,87.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M193.9,200.5A80.1,80.1,0,0,1,160,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,128A79,79,0,0,1,91.1,87.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M119.4,59.1A79,79,0,0,1,160,48a80.1,80.1,0,0,1,64.8,127" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,127.6a80,80,0,1,1,80,80H72a56,56,0,0,1,0-112,53,53,0,0,1,13.9,1.8" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M193.9,200.5A80.1,80.1,0,0,1,160,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.6,63.5A80,80,0,0,1,219.7,181.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,128A79,79,0,0,1,91.1,87.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L81.3,88.5v.2A58.2,58.2,0,0,0,72,88a64,64,0,0,0,0,128h88a87.9,87.9,0,0,0,31.8-5.9l10.3,11.3A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3Z"/><path d="M160,40a87.2,87.2,0,0,0-52.1,17.1,7.9,7.9,0,0,0-3.2,5.6,7.8,7.8,0,0,0,2,6.2L213.8,186.7a8.1,8.1,0,0,0,5.9,2.6h0a7.8,7.8,0,0,0,5.9-2.7A88,88,0,0,0,160,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M193.9,200.5A80.1,80.1,0,0,1,160,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112.6,63.5A80,80,0,0,1,219.7,181.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,128A79,79,0,0,1,91.1,87.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M193.9,200.5A80.1,80.1,0,0,1,160,208H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112.6,63.5A80,80,0,0,1,219.7,181.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,128A79,79,0,0,1,91.1,87.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `question` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.question />
  <Heroicons.question class="w-4 h-4" />
  <Heroicons.question solid />
  <Heroicons.question mini />
  <Heroicons.question outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def question(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="176" r="16"/><path d="M128,136a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,168a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm8-48.9v.9a8,8,0,0,1-16,0v-8a8,8,0,0,1,8-8,20,20,0,1,0-20-20,8,8,0,0,1-16,0,36,36,0,1,1,44,35.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="180" r="10"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="180" r="8"/><path d="M128,144v-8a28,28,0,1,0-28-28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `codesandbox_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.codesandbox_logo />
  <Heroicons.codesandbox_logo class="w-4 h-4" />
  <Heroicons.codesandbox_logo solid />
  <Heroicons.codesandbox_logo mini />
  <Heroicons.codesandbox_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def codesandbox_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="177 47.5 128 75.1 79 47.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 209 176 153.9 224 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 209 80 153.9 32 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="177 47.5 128 75.1 79 47.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 209 176 153.9 224 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 209 80 153.9 32 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M79,47.5l49,27.6,49-27.6L131.9,22.2a7.8,7.8,0,0,0-7.8,0Z" opacity="0.2"/><path d="M176,209V153.9l48-27v50.4a8.1,8.1,0,0,1-4.1,7Z" opacity="0.2"/><path d="M80,209V153.9l-48-27v50.4a8.1,8.1,0,0,0,4.1,7Z" opacity="0.2"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="177 47.5 128 75.1 79 47.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 209 176 153.9 224 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 209 80 153.9 32 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,126.8V78.7a15.6,15.6,0,0,0-2.1-7.9h-.1a15.5,15.5,0,0,0-6-5.9l-88-49.5a16,16,0,0,0-15.6,0l-88,49.5a16.2,16.2,0,0,0-6,5.9.1.1,0,0,1-.1.1v.2A15,15,0,0,0,24,78.7v48.1h0v50.5a16.1,16.1,0,0,0,8.2,14l44,24.7h0l44,24.8a16.5,16.5,0,0,0,7.2,2h1.3a16.1,16.1,0,0,0,7.1-2l44-24.8h0l44-24.7a16.1,16.1,0,0,0,8.2-14V126.8ZM83.9,147,40,122.2V87.6l80.9,45.1-.8,89.7L88,204.3V153.9A7.9,7.9,0,0,0,83.9,147ZM79,56.7,124.1,82a7.5,7.5,0,0,0,7.8,0L177,56.7,207.7,74l-78.8,44.8L48.4,74Zm57.9,76,79.1-45v34.5L172.1,147a7.9,7.9,0,0,0-4.1,6.9v50.4l-31.9,18Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="177 47.5 128 75.1 79 47.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 209 176 153.9 224 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 209 80 153.9 32 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,177.3V78.7a8.1,8.1,0,0,0-4.1-7l-88-49.5a7.8,7.8,0,0,0-7.8,0l-88,49.5a8.1,8.1,0,0,0-4.1,7v98.6a8.1,8.1,0,0,0,4.1,7l88,49.5a7.8,7.8,0,0,0,7.8,0l88-49.5A8.1,8.1,0,0,0,224,177.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="222.9 74.6 128.9 128 33.1 74.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128.9" y1="128" x2="128" y2="234.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="177 47.5 128 75.1 79 47.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 209 176 153.9 224 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 209 80 153.9 32 126.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_left />
  <Heroicons.arrow_circle_left class="w-4 h-4" />
  <Heroicons.arrow_circle_left solid />
  <Heroicons.arrow_circle_left mini />
  <Heroicons.arrow_circle_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="121.9 161.9 88 128 121.9 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="121.9 161.9 88 128 121.9 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="121.9 161.9 88 128 121.9 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="128" x2="88" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm40,112H107.3l20.3,20.3a8,8,0,0,1,0,11.3,7.8,7.8,0,0,1-5.7,2.3,7.6,7.6,0,0,1-5.6-2.3L82.4,133.7a8.7,8.7,0,0,1-1.8-2.6,8.3,8.3,0,0,1,0-6.2,8.7,8.7,0,0,1,1.8-2.6l33.9-33.9a8,8,0,0,1,11.3,11.3L107.3,120H168a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="121.9 161.9 88 128 121.9 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="121.9 161.9 88 128 121.9 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_transgender` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_transgender />
  <Heroicons.gender_transgender class="w-4 h-4" />
  <Heroicons.gender_transgender solid />
  <Heroicons.gender_transgender mini />
  <Heroicons.gender_transgender outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_transgender(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="160" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="141.3" y1="114.7" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="64" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="160" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="141.3" y1="114.7" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="172 40 216 40 216 84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="64" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="160" r="64" opacity="0.2"/><circle cx="96" cy="160" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="141.3" y1="114.7" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="64" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,32H168a8,8,0,0,0,0,16h28.7L168,76.7,149.7,58.3a8.1,8.1,0,0,0-11.4,11.4L156.7,88l-15.8,15.8a72.2,72.2,0,1,0,11.3,11.3L168,99.3l18.3,18.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L179.3,88,208,59.3V88a8,8,0,0,0,16,0V40A8,8,0,0,0,216,32ZM135.6,199.6a56.1,56.1,0,0,1-79.2,0,56,56,0,0,1,79.2-79.2,56,56,0,0,1,0,79.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="160" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="141.3" y1="114.7" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="64" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="160" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="141.3" y1="114.7" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="64" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sparkle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sparkle />
  <Heroicons.sparkle class="w-4 h-4" />
  <Heroicons.sparkle solid />
  <Heroicons.sparkle mini />
  <Heroicons.sparkle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sparkle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="16" x2="176" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="72" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="88" x2="208" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="16" x2="176" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="72" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="88" x2="208" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" opacity="0.2"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="16" x2="176" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="72" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="88" x2="208" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.9,144a15.8,15.8,0,0,1-10.5,15l-52.2,19.2L127,230.4a16,16,0,0,1-30,0L77.8,178.2,25.6,159a16,16,0,0,1,0-30l52.2-19.2L97,57.6a16,16,0,0,1,30,0l19.2,52.2L198.4,129A15.8,15.8,0,0,1,208.9,144ZM152,48h16V64a8,8,0,0,0,16,0V48h16a8,8,0,0,0,0-16H184V16a8,8,0,0,0-16,0V32H152a8,8,0,0,0,0,16Zm88,32h-8V72a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0V96h8a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="16" x2="176" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="72" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="88" x2="208" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M138.7,175.5l-19.2,52.1a8,8,0,0,1-15,0L85.3,175.5a8.1,8.1,0,0,0-4.8-4.8L28.4,151.5a8,8,0,0,1,0-15l52.1-19.2a8.1,8.1,0,0,0,4.8-4.8l19.2-52.1a8,8,0,0,1,15,0l19.2,52.1a8.1,8.1,0,0,0,4.8,4.8l52.1,19.2a8,8,0,0,1,0,15l-52.1,19.2A8.1,8.1,0,0,0,138.7,175.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="16" x2="176" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="40" x2="152" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="72" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="88" x2="208" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_soap` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_soap />
  <Heroicons.hand_soap class="w-4 h-4" />
  <Heroicons.hand_soap solid />
  <Heroicons.hand_soap mini />
  <Heroicons.hand_soap outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_soap(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,104h96a32,32,0,0,1,32,32v80a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V136A32,32,0,0,1,80,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104V88a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40a16,16,0,0,0-16-16H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,108h96a32,32,0,0,1,32,32v76a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V140A32,32,0,0,1,80,108Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,108V92a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,40a16,16,0,0,0-16-16H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="24" x2="128" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,104h96a32,32,0,0,1,32,32v80a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V136A32,32,0,0,1,80,104Z" opacity="0.2"/><path d="M80,104h96a32,32,0,0,1,32,32v80a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V136A32,32,0,0,1,80,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104V88a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40a16,16,0,0,0-16-16H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,96.8V88a32.1,32.1,0,0,0-32-32H136V32h32a8,8,0,0,1,8,8,8,8,0,0,0,16,0,24.1,24.1,0,0,0-24-24H104a8,8,0,0,0,0,16h16V56H104A32.1,32.1,0,0,0,72,88v8.8A40.1,40.1,0,0,0,40,136v80a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V136A40.1,40.1,0,0,0,184,96.8ZM104,72h48a16,16,0,0,1,16,16v8H88V88A16,16,0,0,1,104,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,104h96a32,32,0,0,1,32,32v80a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V136A32,32,0,0,1,80,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,104V88a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,40a16,16,0,0,0-16-16H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="24" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,104h96a32,32,0,0,1,32,32v80a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V136A32,32,0,0,1,80,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,104V88a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,40a16,16,0,0,0-16-16H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="24" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bathtub` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bathtub />
  <Heroicons.bathtub class="w-4 h-4" />
  <Heroicons.bathtub solid />
  <Heroicons.bathtub mini />
  <Heroicons.bathtub outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bathtub(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="192" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="184" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104V52a20,20,0,0,1,40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="136" y="96" width="64" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,104h32a8,8,0,0,1,8,8v32a48,48,0,0,1-48,48H64a48,48,0,0,1-48-48V112a8,8,0,0,1,8-8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="192" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184" y1="192" x2="184" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,104V52a20,20,0,0,1,40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="136" y="96" width="64" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,104h32a8,8,0,0,1,8,8v32a48,48,0,0,1-48,48H64a48,48,0,0,1-48-48V112a8,8,0,0,1,8-8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,104H200v40H136V104H24a8,8,0,0,0-8,8v32a48,48,0,0,0,48,48H192a48,48,0,0,0,48-48V112A8,8,0,0,0,232,104Z" opacity="0.2"/><line x1="72" y1="192" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="192" x2="184" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104V52a20,20,0,0,1,40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="136" y="96" width="64" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,104h32a8,8,0,0,1,8,8v32a48,48,0,0,1-48,48H64a48,48,0,0,1-48-48V112a8,8,0,0,1,8-8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,96H212a8,8,0,0,0-8-8H132a8,8,0,0,0-8,8H64V52a12,12,0,0,1,24,0,8,8,0,0,0,16,0,28,28,0,0,0-56,0V96H24A16,16,0,0,0,8,112v32a56,56,0,0,0,56,56v16a8,8,0,0,0,16,0V200h96v16a8,8,0,0,0,16,0V200a56,56,0,0,0,56-56V112A16,16,0,0,0,232,96Zm-36,8v36H140V104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="192" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="192" x2="184" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,104V52a20,20,0,0,1,40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="136" y="96" width="64" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,104h32a8,8,0,0,1,8,8v32a48,48,0,0,1-48,48H64a48,48,0,0,1-48-48V112a8,8,0,0,1,8-8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="192" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="192" x2="184" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,104V52a20,20,0,0,1,40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="136" y="96" width="64" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,104h32a8,8,0,0,1,8,8v32a48,48,0,0,1-48,48H64a48,48,0,0,1-48-48V112a8,8,0,0,1,8-8H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `mask_sad` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.mask_sad />
  <Heroicons.mask_sad class="w-4 h-4" />
  <Heroicons.mask_sad solid />
  <Heroicons.mask_sad mini />
  <Heroicons.mask_sad outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def mask_sad(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.5,184a47.9,47.9,0,0,0-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M74.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154.5,184a47.9,47.9,0,0,0-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" opacity="0.2"/><path d="M146.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.5,184a47.9,47.9,0,0,0-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M217,35.1a15.9,15.9,0,0,0-14.8-1.7C188.2,38.9,159.8,48,128,48S67.8,38.9,53.8,33.4A16,16,0,0,0,32,48.3V104c0,35.8,9.7,69.5,27.2,95s42.6,41,68.8,41,50.7-14.5,68.8-41S224,139.8,224,104V48.3A15.9,15.9,0,0,0,217,35.1ZM68.2,125.3a8,8,0,0,1,.6-11.3,8,8,0,0,1,11.3.7,16,16,0,0,0,23.8,0,8,8,0,0,1,11.3-.7,8,8,0,0,1,.6,11.3,31.8,31.8,0,0,1-47.6,0Zm93,63.1a8.1,8.1,0,0,1-11.1,2.3,39.8,39.8,0,0,0-44.2,0,8,8,0,0,1-11.1-2.3A8.1,8.1,0,0,1,97,177.3a56.3,56.3,0,0,1,62,0A8.1,8.1,0,0,1,161.2,188.4Zm26.6-63.1a31.8,31.8,0,0,1-47.6,0,8,8,0,0,1,.6-11.3,8,8,0,0,1,11.3.7,16,16,0,0,0,23.8,0,8,8,0,0,1,11.3-.7A8,8,0,0,1,187.8,125.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M74.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.5,184a47.9,47.9,0,0,0-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M74.1,120a24,24,0,0,0,35.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.5,184a47.9,47.9,0,0,0-53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,48.3a7.9,7.9,0,0,0-10.9-7.4C190,46.7,160.9,56,128,56S66,46.7,50.9,40.9A7.9,7.9,0,0,0,40,48.3V104c0,70.7,39.4,128,88,128s88-57.3,88-128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `projector_screen_chart` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.projector_screen_chart />
  <Heroicons.projector_screen_chart class="w-4 h-4" />
  <Heroicons.projector_screen_chart solid />
  <Heroicons.projector_screen_chart mini />
  <Heroicons.projector_screen_chart outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def projector_screen_chart(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="112" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92" y1="128" x2="92" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="124" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="120" x2="164" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="176" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="80" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="40" width="192" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="232" r="24"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="72" width="160" height="112" opacity="0.2"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="112" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,64V48a16,16,0,0,0-16-16H40A16,16,0,0,0,24,48V64A16,16,0,0,0,40,80v96H32a8,8,0,0,0,0,16h88v17.4a24,24,0,1,0,16,0V192h88a8,8,0,0,0,0-16h-8V80A16,16,0,0,0,232,64ZM104,144a8,8,0,0,1-16,0V128a8,8,0,0,1,16,0Zm24,96a8,8,0,1,1,8-8A8,8,0,0,1,128,240Zm8-96a8,8,0,0,1-16,0V120a8,8,0,0,1,16,0Zm32,0a8,8,0,0,1-16,0V112a8,8,0,0,1,16,0ZM40,64V48H216V64H40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="120" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="112" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="184" x2="48" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="72" x2="208" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="96" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="120" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="112" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="40" width="192" height="32" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="184" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="232" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `newspaper` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.newspaper />
  <Heroicons.newspaper class="w-4 h-4" />
  <Heroicons.newspaper solid />
  <Heroicons.newspaper mini />
  <Heroicons.newspaper outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def newspaper(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a16,16,0,0,1-16-16h0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M16,88v92a20.1,20.1,0,0,0,20,20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="148" x2="176" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,180V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16H36A20.1,20.1,0,0,0,56,180Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z" opacity="0.2"/><line x1="96" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a16,16,0,0,1-16-16h0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H56A16,16,0,0,0,40,64V184a8,8,0,0,1-16,0V88A8,8,0,0,0,8,88v96H8A24,24,0,0,0,32,208H208a24.1,24.1,0,0,0,24-24V64A16,16,0,0,0,216,48ZM176,152H96a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,200a16,16,0,0,1-16-16h0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="112" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="144" x2="176" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,200a16,16,0,0,0,16-16V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a16,16,0,0,1-16,16Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,200a16,16,0,0,1-16-16h0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `snowflake` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.snowflake />
  <Heroicons.snowflake class="w-4 h-4" />
  <Heroicons.snowflake solid />
  <Heroicons.snowflake mini />
  <Heroicons.snowflake outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def snowflake(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="64" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 40 128 64 152 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 216 128 192 152 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72.6" y1="96" x2="183.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="39.8 104.8 72.6 96 63.8 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192.2 192.8 183.4 160 216.2 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72.6" y1="160" x2="183.4" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="63.8 192.8 72.6 160 39.8 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216.2 104.8 183.4 96 192.2 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="64" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 40 128 64 152 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 216 128 192 152 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72.6" y1="96" x2="183.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="39.8 104.8 72.6 96 63.8 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192.2 192.8 183.4 160 216.2 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72.6" y1="160" x2="183.4" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="63.8 192.8 72.6 160 39.8 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="216.2 104.8 183.4 96 192.2 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="64" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 40 128 64 152 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 216 128 192 152 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72.6" y1="96" x2="183.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="39.8 104.8 72.6 96 63.8 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192.2 192.8 183.4 160 216.2 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72.6" y1="160" x2="183.4" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="63.8 192.8 72.6 160 39.8 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216.2 104.8 183.4 96 192.2 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.9,149.1a7.9,7.9,0,0,1-5.6,9.8l-25.1,6.8,6.7,25a7.9,7.9,0,0,1-5.6,9.8l-2.1.3a8,8,0,0,1-7.7-5.9l-7.9-29.6L136,141.9v46.8l21.7,21.6a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L128,203.3l-18.3,18.4a8.1,8.1,0,0,1-11.4-11.4L120,188.7V141.9L79.4,165.3l-7.9,29.6a8,8,0,0,1-7.7,5.9l-2.1-.3a7.9,7.9,0,0,1-5.6-9.8l6.7-25-25.1-6.8a8,8,0,1,1,4.2-15.4l29.5,7.9L112,128,71.4,104.6l-29.5,7.9a7.6,7.6,0,0,1-2.1.3,8,8,0,0,1-2.1-15.7l25.1-6.8-6.7-25a8,8,0,0,1,15.4-4.2l7.9,29.6L120,114.1V67.3L98.3,45.7a8.1,8.1,0,0,1,11.4-11.4L128,52.7l18.3-18.4a8.1,8.1,0,0,1,11.4,11.4L136,67.3v46.8l40.6-23.4,7.9-29.6a8,8,0,1,1,15.4,4.2l-6.7,25,25.1,6.8a8,8,0,0,1-2.1,15.7l-2.1-.3-29.5-7.9L144,128l40.6,23.4,29.5-7.9A7.9,7.9,0,0,1,223.9,149.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="64" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 40 128 64 152 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 216 128 192 152 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72.6" y1="96" x2="183.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="39.8 104.8 72.6 96 63.8 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192.2 192.8 183.4 160 216.2 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72.6" y1="160" x2="183.4" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="63.8 192.8 72.6 160 39.8 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216.2 104.8 183.4 96 192.2 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="64" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 40 128 64 152 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 216 128 192 152 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72.6" y1="96" x2="183.4" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="39.8 104.8 72.6 96 63.8 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192.2 192.8 183.4 160 216.2 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72.6" y1="160" x2="183.4" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="63.8 192.8 72.6 160 39.8 151.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216.2 104.8 183.4 96 192.2 63.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_centered_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_centered_text />
  <Heroicons.chat_centered_text class="w-4 h-4" />
  <Heroicons.chat_centered_text solid />
  <Heroicons.chat_centered_text mini />
  <Heroicons.chat_centered_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_centered_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="104" x2="160" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="100" x2="160" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="140" x2="160" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" opacity="0.2"/><line x1="96" y1="104" x2="160" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V184a16,16,0,0,0,16,16H99.5l14.8,24.7a16,16,0,0,0,27.4,0L156.5,200H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM160,144H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="104" x2="160" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="104" x2="160" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_up_right />
  <Heroicons.arrow_bend_up_right class="w-4 h-4" />
  <Heroicons.arrow_bend_up_right solid />
  <Heroicons.arrow_bend_up_right mini />
  <Heroicons.arrow_bend_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a96,96,0,0,1,96-96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,200a96,96,0,0,1,96-96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,200a96,96,0,0,1,96-96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,109.7l-48,48A8.3,8.3,0,0,1,176,160a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,152V112H128a88.1,88.1,0,0,0-88,88,8,8,0,0,1-16,0A104.2,104.2,0,0,1,128,96h40V56a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,229.7,109.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,200a96,96,0,0,1,96-96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 152 224 104 176 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,200a96,96,0,0,1,96-96h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_male` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_male />
  <Heroicons.gender_male class="w-4 h-4" />
  <Heroicons.gender_male solid />
  <Heroicons.gender_male mini />
  <Heroicons.gender_male outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_male(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="152" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="154.9" y1="101.1" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="152" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="154.9" y1="101.1" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="152" r="72" opacity="0.2"/><circle cx="104" cy="152" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="154.9" y1="101.1" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,32H168a8,8,0,0,0,0,16h28.7L154.6,90.1a80,80,0,1,0,11.3,11.3L208,59.3V88a8,8,0,0,0,16,0V40A8,8,0,0,0,216,32ZM149.3,197.3a64,64,0,1,1,0-90.6A64.3,64.3,0,0,1,149.3,197.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="152" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="154.9" y1="101.1" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="152" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="154.9" y1="101.1" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 40 216 40 216 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_meh` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_meh />
  <Heroicons.smiley_meh class="w-4 h-4" />
  <Heroicons.smiley_meh solid />
  <Heroicons.smiley_meh mini />
  <Heroicons.smiley_meh outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_meh(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="160" x2="168" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="160" x2="168" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="88" y1="160" x2="168" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm76,72H88a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Zm-4-48a12,12,0,1,1,12-12A12,12,0,0,1,164,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="160" x2="168" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="160" x2="168" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_gear` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_gear />
  <Heroicons.user_gear class="w-4 h-4" />
  <Heroicons.user_gear solid />
  <Heroicons.user_gear mini />
  <Heroicons.user_gear outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_gear(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="220" cy="136" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="120" x2="220" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="206.1" y1="128" x2="195.8" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="206.1" y1="144" x2="195.8" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="152" x2="220" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="233.9" y1="144" x2="244.2" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="233.9" y1="128" x2="244.2" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="136" x2="224" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="136" x2="205" y2="129.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="136" x2="212.2" y2="152.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="136" x2="235.8" y2="152.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="136" x2="243" y2="129.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" opacity="0.2"/><circle cx="108" cy="100" r="60" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="220" cy="136" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="120" x2="220" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="206.1" y1="128" x2="195.8" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="206.1" y1="144" x2="195.8" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="220" y1="152" x2="220" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="233.9" y1="144" x2="244.2" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="233.9" y1="128" x2="244.2" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M199.9,194.9a7.8,7.8,0,0,1,1.1,8.5,7.9,7.9,0,0,1-7.2,4.6H22.2a7.9,7.9,0,0,1-7.2-4.6,7.8,7.8,0,0,1,1.1-8.5,118.4,118.4,0,0,1,55.8-37.3,68,68,0,1,1,72.2,0A118.4,118.4,0,0,1,199.9,194.9ZM251.2,154a8,8,0,0,1-7,4,7.6,7.6,0,0,1-4-1.1l-4.6-2.7a24,24,0,0,1-7.6,4.4V164a8,8,0,0,1-16,0v-5.4a24,24,0,0,1-7.6-4.4l-4.6,2.7a7.6,7.6,0,0,1-4,1.1,8,8,0,0,1-4-14.9l4.6-2.7a24.4,24.4,0,0,1,0-8.8l-4.6-2.7a7.9,7.9,0,0,1-3-10.9,8.1,8.1,0,0,1,11-2.9l4.6,2.7a24,24,0,0,1,7.6-4.4V108a8,8,0,0,1,16,0v5.4a24,24,0,0,1,7.6,4.4l4.6-2.7a8.1,8.1,0,0,1,11,2.9,7.9,7.9,0,0,1-3,10.9l-4.6,2.7a24.4,24.4,0,0,1,0,8.8l4.6,2.7A7.9,7.9,0,0,1,251.2,154ZM220,144a8,8,0,1,0-8-8A8,8,0,0,0,220,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="220" cy="136" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="220" y1="120" x2="220" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="206.1" y1="128" x2="195.8" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="206.1" y1="144" x2="195.8" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="220" y1="152" x2="220" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="233.9" y1="144" x2="244.2" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="233.9" y1="128" x2="244.2" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="108" cy="100" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M22.2,200a112,112,0,0,1,171.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="220" cy="136" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="220" y1="120" x2="220" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="206.1" y1="128" x2="195.8" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="206.1" y1="144" x2="195.8" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="220" y1="152" x2="220" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="233.9" y1="144" x2="244.2" y2="150" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="233.9" y1="128" x2="244.2" y2="122" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hash_straight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hash_straight />
  <Heroicons.hash_straight class="w-4 h-4" />
  <Heroicons.hash_straight solid />
  <Heroicons.hash_straight mini />
  <Heroicons.hash_straight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hash_straight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="40" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,152H168V104h48a8,8,0,0,0,0-16H168V40a8,8,0,0,0-16,0V88H104V40a8,8,0,0,0-16,0V88H40a8,8,0,0,0,0,16H88v48H40a8,8,0,0,0,0,16H88v48a8,8,0,0,0,16,0V168h48v48a8,8,0,0,0,16,0V168h48a8,8,0,0,0,0-16Zm-112,0V104h48v48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="40" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="96" x2="216" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="160" x2="216" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="40" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="40" x2="96" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_out_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_out_simple />
  <Heroicons.arrows_out_simple class="w-4 h-4" />
  <Heroicons.arrows_out_simple solid />
  <Heroicons.arrows_out_simple mini />
  <Heroicons.arrows_out_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_out_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 48 208 48 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 48 208 48 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 208 48 208 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 48 208 48 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48V96a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L184,83.3l-26.3,26.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L172.7,72,154.3,53.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,160,40h48A8,8,0,0,1,216,48ZM98.3,146.3,72,172.7,53.7,154.3a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,40,160v48a8,8,0,0,0,8,8H96a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8L83.3,184l26.4-26.3a8.1,8.1,0,0,0-11.4-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 48 208 48 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 208 48 208 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 48 208 48 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 208 48 208 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.square />
  <Heroicons.square class="w-4 h-4" />
  <Heroicons.square solid />
  <Heroicons.square mini />
  <Heroicons.square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="32" width="192" height="192" rx="16"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fire_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fire_simple />
  <Heroicons.fire_simple class="w-4 h-4" />
  <Heroicons.fire_simple solid />
  <Heroicons.fire_simple mini />
  <Heroicons.fire_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fire_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" opacity="0.2"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.9,140a92,92,0,0,1-184,0c0-23.1,9.9-49.7,29.4-79.1a8,8,0,0,1,5-3.4,8.2,8.2,0,0,1,6.1,1.2l32.2,21.5,30.9-64.8a7.9,7.9,0,0,1,5.8-4.4,8.1,8.1,0,0,1,7.1,2.2c14.7,14.7,31.5,32.6,44.6,53.4C212.4,91.1,219.9,115.1,219.9,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.9,65.4c-15.4,23.2-28,49.8-28,74.6a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L111.9,92l-40-26.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_clockwise />
  <Heroicons.arrow_clockwise class="w-4 h-4" />
  <Heroicons.arrow_clockwise solid />
  <Heroicons.arrow_clockwise mini />
  <Heroicons.arrow_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232.2,51.7v48a8,8,0,0,1-8,8h-48a8,8,0,0,1-5.7-13.6l18.4-18.4-4.3-4.3a80,80,0,1,0,0,113.2,7.9,7.9,0,0,1,11.3,0,8,8,0,0,1,0,11.3,96,96,0,1,1,0-135.8l4.3,4.3,18.3-18.3a8,8,0,0,1,8.7-1.8A8.2,8.2,0,0,1,232.2,51.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.2,190.2a88,88,0,1,1,0-124.4l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phosphor_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phosphor_logo />
  <Heroicons.phosphor_logo class="w-4 h-4" />
  <Heroicons.phosphor_logo solid />
  <Heroicons.phosphor_logo mini />
  <Heroicons.phosphor_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phosphor_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="68" y1="32" x2="134" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="68" y="32" width="66" height="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M134,164v66a65.9,65.9,0,0,1-66-66" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M134,164h8a66,66,0,0,0,0-132h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="68" y1="32" x2="134" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="68" y="32" width="66" height="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134,164v66a65.9,65.9,0,0,1-66-66" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134,164h8a66,66,0,0,0,0-132h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="68 32 68 164 134 164 68 32" opacity="0.2"/><line x1="68" y1="32" x2="134" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="68" y="32" width="66" height="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M134,164v66a65.9,65.9,0,0,1-66-66" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M134,164h8a66,66,0,0,0,0-132h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M134,164h8a66,66,0,0,0,0-132h-8Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M142,24H68a8,8,0,0,0-8,8V164a74.1,74.1,0,0,0,74,74,8,8,0,0,0,8-8V172a74,74,0,0,0,0-148ZM126,221.5A58.1,58.1,0,0,1,76.6,172H126Zm0-91.4L80.9,40H126ZM142,156V40a58,58,0,0,1,0,116Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="68" y1="32" x2="134" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="68" y="32" width="66" height="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M134,164v66a65.9,65.9,0,0,1-66-66" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M134,164h8a66,66,0,0,0,0-132h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="68" y1="32" x2="134" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="68" y="32" width="66" height="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M134,164v66a65.9,65.9,0,0,1-66-66" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M134,164h8a66,66,0,0,0,0-132h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_x />
  <Heroicons.speaker_x class="w-4 h-4" />
  <Heroicons.speaker_x solid />
  <Heroicons.speaker_x mini />
  <Heroicons.speaker_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.3,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3A8.1,8.1,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8ZM32,96H72v64H32Z"/><path d="M227.3,128l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L216,116.7,197.7,98.3a8.1,8.1,0,0,0-11.4,11.4L204.7,128l-18.4,18.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L216,139.3l18.3,18.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `app_window` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.app_window />
  <Heroicons.app_window class="w-4 h-4" />
  <Heroicons.app_window solid />
  <Heroicons.app_window mini />
  <Heroicons.app_window outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def app_window(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="84" r="12"/><circle cx="108" cy="84" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="76" cy="92" r="16"/><circle cx="124" cy="92" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="84" r="12"/><circle cx="108" cy="84" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM68,96A12,12,0,1,1,80,84,12,12,0,0,1,68,96Zm40,0a12,12,0,1,1,12-12A12,12,0,0,1,108,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="84" r="10"/><circle cx="108" cy="84" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="84" r="8"/><circle cx="108" cy="84" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_down_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_down_up />
  <Heroicons.arrows_down_up class="w-4 h-4" />
  <Heroicons.arrows_down_up solid />
  <Heroicons.arrows_down_up mini />
  <Heroicons.arrows_down_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_down_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 176 80 208 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="48" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 80 176 48 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="208" x2="176" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 176 80 208 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="48" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144 80 176 48 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="208" x2="176" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 176 80 208 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="48" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 80 176 48 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="208" x2="176" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M119.4,172.9a8.4,8.4,0,0,1-1.7,8.8l-32,32a8.2,8.2,0,0,1-11.4,0l-32-32a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,48,168H72V48a8,8,0,0,1,16,0V168h24A8,8,0,0,1,119.4,172.9Zm94.3-98.6-32-32a8.1,8.1,0,0,0-11.4,0l-32,32a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,144,88h24V208a8,8,0,0,0,16,0V88h24a8,8,0,0,0,7.4-4.9A8.4,8.4,0,0,0,213.7,74.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 176 80 208 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="48" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 80 176 48 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="208" x2="176" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="112 176 80 208 48 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="48" x2="80" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 80 176 48 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="208" x2="176" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pencil_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pencil_circle />
  <Heroicons.pencil_circle class="w-4 h-4" />
  <Heroicons.pencil_circle solid />
  <Heroicons.pencil_circle mini />
  <Heroicons.pencil_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pencil_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 211.2 176 176 128 72 80 176 80 211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,192a24,24,0,0,1,48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,224V192a24,24,0,0,0-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.2" y1="128" x2="153.8" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 211.2 176 176 128 72 80 176 80 211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,200a24,24,0,0,1,48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,224V200a24,24,0,0,0-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="98.5" y1="136" x2="157.5" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,211.2a96,96,0,1,1,96,0h0V176L128,72,80,176v35.2Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 211.2 176 176 128 72 80 176 80 211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,192a24,24,0,0,1,48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,224V192a24,24,0,0,0-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.2" y1="128" x2="153.8" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a103.8,103.8,0,0,0-147,0,103.8,103.8,0,0,0,0,147,103.8,103.8,0,0,0,147,0,103.8,103.8,0,0,0,0-147ZM128,170.9a31.9,31.9,0,0,0-32.3-9.8L111,128h34l15.3,33.1a31.9,31.9,0,0,0-32.3,9.8Zm40,35.5a89,89,0,0,1-32,9.2V192a16,16,0,0,1,32,0Zm22.2-16.2c-2,2-4.1,3.9-6.2,5.7V176a9.8,9.8,0,0,0-.7-3.4l-48-104h-.1a4.1,4.1,0,0,0-.5-.9c0-.1,0-.1-.1-.2l-.5-.7H134a4.6,4.6,0,0,0-.7-.7h-.2l-.7-.6h-.2l-.8-.5h-.1l-.9-.3h-.3l-.9-.2h-2.4l-1,.2h-.2l-.8.3h-.2l-.9.4h-.1l-.7.6h-.2l-.7.7h-.1l-.5.7-.2.2a4.1,4.1,0,0,1-.5.9l-22.1,48h0L72.7,172.6A9.8,9.8,0,0,0,72,176v19.9c-2.1-1.8-4.2-3.7-6.2-5.7a88,88,0,1,1,124.4,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 211.2 176 176 128 72 80 176 80 211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,192a24,24,0,0,1,48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,224V192a24,24,0,0,0-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102.2" y1="128" x2="153.8" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 211.2 176 176 128 72 80 176 80 211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,192a24,24,0,0,1,48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,224V192a24,24,0,0,0-48,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102.2" y1="128" x2="153.8" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_js` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_js />
  <Heroicons.file_js class="w-4 h-4" />
  <Heroicons.file_js solid />
  <Heroicons.file_js mini />
  <Heroicons.file_js outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_js(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,220h24a8,8,0,0,0,8-8V92L156,36H52a8,8,0,0,0-8,8v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,164v36a20,20,0,0,1-40,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,204c0,13.1-9.3,21-25,21a33.4,33.4,0,0,1-20.1-6.8h0A7.6,7.6,0,0,1,96,212a8,8,0,0,1,8-8,8.3,8.3,0,0,1,5.1,1.8H109a18.4,18.4,0,0,0,10,3.2c9,0,9-3,9-5s0-.9-1.2-1.6-5.8-2.2-9.2-3.1C109,197,96,193.5,96,180s9.5-21,23-21a33.4,33.4,0,0,1,20.1,6.8h0A7.6,7.6,0,0,1,142,172a8,8,0,0,1-8,8,8.3,8.3,0,0,1-5.1-1.8h.1a18.4,18.4,0,0,0-10-3.2c-4.6,0-7,1.7-7,5v.2c1.1,1.3,6.6,2.8,9.7,3.6C130,186,144,189.7,144,204ZM72,160a8,8,0,0,0-8,8v32a8,8,0,0,1-16,0,8,8,0,0,0-16,0,24,24,0,0,0,48,0V168A8,8,0,0,0,72,160ZM216,88V216a16,16,0,0,1-16,16H176a8,8,0,0,1-8-8V144a8,8,0,0,0-8-8H48a8,8,0,0,1-8-8V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-20,0L152,44V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,168v32a16,16,0,0,1-32,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,224h24a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8V144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_up_left />
  <Heroicons.arrow_bend_up_left class="w-4 h-4" />
  <Heroicons.arrow_bend_up_left solid />
  <Heroicons.arrow_bend_up_left mini />
  <Heroicons.arrow_bend_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,200a96,96,0,0,0-96-96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,200a96,96,0,0,0-96-96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,200a96,96,0,0,0-96-96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,200a8,8,0,0,1-16,0,88.1,88.1,0,0,0-88-88H88v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-48-48a8.1,8.1,0,0,1,0-11.4l48-48a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,88,56V96h40A104.2,104.2,0,0,1,232,200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,200a96,96,0,0,0-96-96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,200a96,96,0,0,0-96-96H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `faders_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.faders_horizontal />
  <Heroicons.faders_horizontal class="w-4 h-4" />
  <Heroicons.faders_horizontal solid />
  <Heroicons.faders_horizontal mini />
  <Heroicons.faders_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def faders_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="172" x2="168" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="84" x2="104" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="60" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="196" x2="168" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="132" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="172" x2="172" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="84" x2="108" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="60" x2="108" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="196" x2="172" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="172" x2="168" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="84" x2="104" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="60" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="196" x2="168" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,164H40a8,8,0,0,0,0,16h96a8,8,0,0,0,0-16Z"/><path d="M216,164H176V148a8,8,0,0,0-16,0v48a8,8,0,0,0,16,0V180h40a8,8,0,0,0,0-16Z"/><path d="M40,92H72a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M104,116a8,8,0,0,0,8-8V92H216a8,8,0,0,0,0-16H112V60a8,8,0,0,0-16,0v48A8,8,0,0,0,104,116Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="172" x2="168" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="84" x2="104" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="60" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="196" x2="168" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="136" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="172" x2="168" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="84" x2="104" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="60" x2="104" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="196" x2="168" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chalkboard` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chalkboard />
  <Heroicons.chalkboard class="w-4 h-4" />
  <Heroicons.chalkboard solid />
  <Heroicons.chalkboard mini />
  <Heroicons.chalkboard outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chalkboard(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,200V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 200 120 168 192 168 192 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 200 64 80 192 80 192 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,200V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 200 120 160 184 160 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="72 200 72 88 184 88 184 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 168 192 168 192 80 64 80 64 200 120 200 120 168" opacity="0.2"/><path d="M32,200V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 200 120 168 192 168 192 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 200 64 80 192 80 192 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,192h-8V56a16,16,0,0,0-16-16H40A16,16,0,0,0,24,56V192H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-24,0H144V176a8,8,0,0,1,8-8h56a8,8,0,0,1,8,8Zm0-48a8,8,0,0,1-16,0V72H56V184a8,8,0,0,1-16,0V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,200V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 200 120 168 192 168 192 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 200 64 80 192 80 192 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,200V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 200 120 168 192 168 192 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 200 64 80 192 80 192 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h />
  <Heroicons.text_h class="w-4 h-4" />
  <Heroicons.text_h solid />
  <Heroicons.text_h mini />
  <Heroicons.text_h outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="56" x2="200" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="200" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="56" x2="200" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,56V200a8,8,0,0,1-16,0V136H64v64a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v64H192V56a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="56" x2="200" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="56" x2="56" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="56" x2="200" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `snapchat_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.snapchat_logo />
  <Heroicons.snapchat_logo class="w-4 h-4" />
  <Heroicons.snapchat_logo solid />
  <Heroicons.snapchat_logo mini />
  <Heroicons.snapchat_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def snapchat_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="189.3" y1="122.7" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66.7" y1="122.7" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="189.3" y1="122.7" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="66.7" y1="122.7" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" opacity="0.2"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="189.3" y1="122.7" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="66.7" y1="122.7" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M243,194.5c-7.2,6.7-17.5,7.4-26.6,8-5.7.4-11.7.8-15.2,2.7s-6.8,6.7-10.2,11.3c-5.4,7.4-11.5,15.8-21.2,18.3s-18.6-1.9-26.8-5.7c-5.3-2.5-10.8-5.1-15-5.1s-9.7,2.6-15,5.1-13.7,6.4-21.2,6.4a27.7,27.7,0,0,1-5.6-.7c-9.7-2.5-15.8-10.9-21.2-18.3-3.4-4.6-6.8-9.4-10.2-11.3s-9.5-2.3-15.2-2.7c-9.1-.6-19.4-1.3-26.6-8a8,8,0,0,1,2.1-13.1c.3-.1,12.5-6,24.5-21.3a105.5,105.5,0,0,0,17.3-32.7l-19.9-8a8,8,0,1,1,6-14.8l18,7.2A160.5,160.5,0,0,0,64,80a64,64,0,0,1,128,0,160.5,160.5,0,0,0,3,31.8l18-7.2a8,8,0,0,1,6,14.8l-19.9,8a105.5,105.5,0,0,0,17.3,32.7c12.1,15.3,24.3,21.3,24.5,21.3a8,8,0,0,1,2.1,13.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="189.3" y1="122.7" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="66.7" y1="122.7" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M18.5,188.7S72,163.9,72,80a56,56,0,0,1,112,0c0,83.9,53.5,108.7,53.5,108.7-9.3,8.7-29,3.4-40.2,9.5s-17,25.6-29.5,28.8S141,216,128,216s-27.7,14.1-39.8,11-18.5-22.7-29.5-28.8S27.8,197.4,18.5,188.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="189.3" y1="122.7" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="66.7" y1="122.7" x2="40" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_medium />
  <Heroicons.wifi_medium class="w-4 h-4" />
  <Heroicons.wifi_medium solid />
  <Heroicons.wifi_medium mini />
  <Heroicons.wifi_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M134,208.9a7.9,7.9,0,0,1-12.1-.1L50.4,124.5a119.9,119.9,0,0,1,155.2,0Z" opacity="0.2"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M50.4,124.5a119.9,119.9,0,0,1,155.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.6,69.6C174.3,19.5,81.7,19.5,15.4,69.5a16.1,16.1,0,0,0-6.2,11,16.6,16.6,0,0,0,3.7,12.3L115.8,214a16.1,16.1,0,0,0,12.2,5.7h0a16,16,0,0,0,12.1-5.6h0l103-121.4a16,16,0,0,0,3.7-12.2A15.6,15.6,0,0,0,240.6,69.6ZM25,82.3Zm179.5,31.2a131,131,0,0,0-17-10.7l-.8-.4a122.1,122.1,0,0,0-17.8-7.6l-1.5-.4A115.2,115.2,0,0,0,149,89.8l-1.6-.2a118.4,118.4,0,0,0-38.8,0l-1.6.2a126.7,126.7,0,0,0-18.4,4.5l-1.5.5a127,127,0,0,0-17.8,7.6l-.8.4a123.5,123.5,0,0,0-16.9,10.7h0L25.1,82.3c60.6-45.7,145.3-45.7,205.8.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59,132.1a98.8,98.8,0,0,1,138,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_up_right />
  <Heroicons.arrow_up_right class="w-4 h-4" />
  <Heroicons.arrow_up_right solid />
  <Heroicons.arrow_up_right mini />
  <Heroicons.arrow_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="192" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 64 192 64 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="192" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="88 64 192 64 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="192" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 64 192 64 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,64V168a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L140,127.3,69.7,197.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L128.7,116,82.3,69.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,88,56H192A8,8,0,0,1,200,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="192" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="88 64 192 64 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="192" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="88 64 192 64 192 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `watch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.watch />
  <Heroicons.watch class="w-4 h-4" />
  <Heroicons.watch solid />
  <Heroicons.watch mini />
  <Heroicons.watch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def watch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="72" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="128 88 128 128 168 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,68.1l6.8-37.5a8,8,0,0,1,7.9-6.6h50.6a8,8,0,0,1,7.9,6.6L168,68.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,187.9l6.8,37.5a8,8,0,0,0,7.9,6.6h50.6a8,8,0,0,0,7.9-6.6l6.8-37.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 96 128 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,68.1l7-45.3a8,8,0,0,1,7.9-6.8h50.2a8,8,0,0,1,7.9,6.8l7,45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,187.9l7,45.3a8,8,0,0,0,7.9,6.8h50.2a8,8,0,0,0,7.9-6.8l7-45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="72" opacity="0.2"/><circle cx="128" cy="128" r="72" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="128 88 128 128 168 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,68.1l6.8-37.5a8,8,0,0,1,7.9-6.6h50.6a8,8,0,0,1,7.9,6.6L168,68.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,187.9l6.8,37.5a8,8,0,0,0,7.9,6.6h50.6a8,8,0,0,0,7.9-6.6l6.8-37.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M175.3,63.5l-6.2-34.4A16,16,0,0,0,153.3,16H102.7A16,16,0,0,0,86.9,29.1L80.7,63.5a80,80,0,0,0,0,129l6.2,34.4A16,16,0,0,0,102.7,240h50.6a16,16,0,0,0,15.8-13.1l6.2-34.4a80,80,0,0,0,0-129ZM102.7,32h50.6l3.9,21.6a78.9,78.9,0,0,0-58.4,0Zm50.6,192H102.7l-3.9-21.6a78.9,78.9,0,0,0,58.4,0ZM168,136H128a8,8,0,0,1-8-8V88a8,8,0,0,1,16,0v32h32a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 88 128 128 168 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,68.1l6.8-37.5a8,8,0,0,1,7.9-6.6h50.6a8,8,0,0,1,7.9,6.6L168,68.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,187.9l6.8,37.5a8,8,0,0,0,7.9,6.6h50.6a8,8,0,0,0,7.9-6.6l6.8-37.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 88 128 128 168 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,68.1l6.8-37.5a8,8,0,0,1,7.9-6.6h50.6a8,8,0,0,1,7.9,6.6L168,68.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,187.9l6.8,37.5a8,8,0,0,0,7.9,6.6h50.6a8,8,0,0,0,7.9-6.6l6.8-37.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `soccer_ball` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.soccer_ball />
  <Heroicons.soccer_ball class="w-4 h-4" />
  <Heroicons.soccer_ball solid />
  <Heroicons.soccer_ball mini />
  <Heroicons.soccer_ball outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def soccer_ball(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 86 88.1 115 103.3 162 152.7 162 167.9 115 128 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="64" x2="128" y2="86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="163 38.6 128 64 93 38.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="67.1" y1="108.2" x2="88.1" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="53.8 67.1 67.1 108.2 32.1 133.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90.4" y1="179.8" x2="103.3" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="47.1 179.8 90.4 179.8 103.8 220.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="165.6" y1="179.8" x2="152.7" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152.2 220.9 165.6 179.8 208.9 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="188.9" y1="108.2" x2="167.9" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="223.9 133.7 188.9 108.2 202.2 67.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="128 74 76.7 111.3 96.3 171.7 159.7 171.7 179.3 111.3 128 74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="32" x2="128" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36.7" y1="98.3" x2="76.7" y2="111.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="71.6" y1="205.7" x2="96.3" y2="171.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="184.4" y1="205.7" x2="159.7" y2="171.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="219.3" y1="98.3" x2="179.3" y2="111.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 86 88.1 115 103.3 162 152.7 162 167.9 115 128 86" opacity="0.2"/><path d="M93,38.6a96.1,96.1,0,0,1,70,0h0L128,64,93,38.6Z" opacity="0.2"/><path d="M32.1,133.7a98.4,98.4,0,0,1,4.6-35.4A95.5,95.5,0,0,1,53.8,67.1h0l13.3,41.1-35,25.5Z" opacity="0.2"/><path d="M103.8,220.9a95.9,95.9,0,0,1-32.2-15.2,97,97,0,0,1-24.5-25.9H90.4l13.4,41.1Z" opacity="0.2"/><path d="M208.9,179.8a97,97,0,0,1-24.5,25.9,95.9,95.9,0,0,1-32.2,15.2h0l13.4-41.1Z" opacity="0.2"/><path d="M202.2,67.1a95.5,95.5,0,0,1,17.1,31.2,98.4,98.4,0,0,1,4.6,35.4h0l-35-25.5,13.3-41.1Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 86 88.1 115 103.3 162 152.7 162 167.9 115 128 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="64" x2="128" y2="86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="163 38.6 128 64 93 38.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="67.1" y1="108.2" x2="88.1" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="53.8 67.1 67.1 108.2 32.1 133.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90.4" y1="179.8" x2="103.3" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="47.1 179.8 90.4 179.8 103.8 220.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="165.6" y1="179.8" x2="152.7" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152.2 220.9 165.6 179.8 208.9 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="188.9" y1="108.2" x2="167.9" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="223.9 133.7 188.9 108.2 202.2 67.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.8,134.8a4.8,4.8,0,0,0,0-1.2c.1-1.9.2-3.7.2-5.6a103.2,103.2,0,0,0-23-65.1,5.5,5.5,0,0,0-1.4-1.7,103.9,103.9,0,0,0-41.1-29.8l-1.1-.4a103.4,103.4,0,0,0-74.8,0l-1.1.4A103.9,103.9,0,0,0,48.4,61.2,5.5,5.5,0,0,0,47,62.9,103.2,103.2,0,0,0,24,128c0,1.9.1,3.7.2,5.6a4.8,4.8,0,0,0,0,1.2,104.2,104.2,0,0,0,15.7,48.4,9.9,9.9,0,0,0,1.1,1.7,104.3,104.3,0,0,0,60.3,43.6h.3a104.2,104.2,0,0,0,52.8,0h.3A104.3,104.3,0,0,0,215,184.9a9.9,9.9,0,0,0,1.1-1.7A104.2,104.2,0,0,0,231.8,134.8ZM68.5,117.1l13.2,4.3,12.7,39.2-8.1,11.2H51.7a86.2,86.2,0,0,1-11.2-34.3Zm119,0,28,20.4a86.2,86.2,0,0,1-11.2,34.3H169.7l-8.1-11.2,12.7-39.2ZM193.2,69l-10.7,32.9-13.2,4.3L136,81.9V68.1l28-20.4A87,87,0,0,1,193.2,69ZM92,47.7l28,20.4V81.9L86.7,106.2l-13.2-4.3L62.8,69A87,87,0,0,1,92,47.7Zm18,166.4L99.3,181.2l8.1-11.2h41.2l8.1,11.2L146,214.1a86.2,86.2,0,0,1-36,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="128 86 88.1 115 103.3 162 152.7 162 167.9 115 128 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="64" x2="128" y2="86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="163 38.6 128 64 93 38.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="67.1" y1="108.2" x2="88.1" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="53.8 67.1 67.1 108.2 32.1 133.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="90.4" y1="179.8" x2="103.3" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="47.1 179.8 90.4 179.8 103.8 220.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="165.6" y1="179.8" x2="152.7" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152.2 220.9 165.6 179.8 208.9 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="188.9" y1="108.2" x2="167.9" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="223.9 133.7 188.9 108.2 202.2 67.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="128 86 88.1 115 103.3 162 152.7 162 167.9 115 128 86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="64" x2="128" y2="86" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="163 38.6 128 64 93 38.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="67.1" y1="108.2" x2="88.1" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="53.8 67.1 67.1 108.2 32.1 133.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="90.4" y1="179.8" x2="103.3" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="47.1 179.8 90.4 179.8 103.8 220.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="165.6" y1="179.8" x2="152.7" y2="162" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152.2 220.9 165.6 179.8 208.9 179.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="188.9" y1="108.2" x2="167.9" y2="115" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="223.9 133.7 188.9 108.2 202.2 67.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_png` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_png />
  <Heroicons.file_png class="w-4 h-4" />
  <Heroicons.file_png solid />
  <Heroicons.file_png mini />
  <Heroicons.file_png outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_png(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,200H60a16,16,0,0,0,0-32H44v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 216 108 168 144 216 144 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M204,194h12v11.8A21.5,21.5,0,0,1,198,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 220 108 164 148 220 148 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36,204H52a20,20,0,0,0,0-40H36v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M220,198.9h8v8c-4.6,7.9-12.7,13.1-22,13.1-14.4,0-26-12.5-26-28s11.6-28,26-28a24.2,24.2,0,0,1,14,4.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,200H60a16,16,0,0,0,0-32H44v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 216 108 168 144 216 144 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M204,194h12v11.8A21.5,21.5,0,0,1,198,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M60,160H44a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32H52V176h8a8,8,0,0,1,0,16Zm92-24v48a8,8,0,0,1-5.5,7.6,7.3,7.3,0,0,1-2.5.4,7.8,7.8,0,0,1-6.4-3.2L116,192v24a8,8,0,0,1-16,0V168a8,8,0,0,1,5.5-7.6,7.9,7.9,0,0,1,8.9,2.8L136,192V168a8,8,0,0,1,16,0Zm72,37.8a7.5,7.5,0,0,1-1.3,4.3A29.4,29.4,0,0,1,198,224c-16.5,0-30-14.4-30-32s13.5-32,30-32a28.4,28.4,0,0,1,16.6,5.4,8,8,0,0,1-9.2,13A12.6,12.6,0,0,0,198,176c-7.7,0-14,7.2-14,16s6.3,16,14,16a13.3,13.3,0,0,0,10-4.8V202h-4a8,8,0,0,1,0-16h12a8,8,0,0,1,8,8ZM48,136H208a8,8,0,0,0,8-8V88a8.1,8.1,0,0,0-2.3-5.7l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88A8,8,0,0,0,48,136ZM152,44l44,44H152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,200H60a16,16,0,0,0,0-32H44v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 216 108 168 144 216 144 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M204,194h12v11.8A21.5,21.5,0,0,1,198,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,200H60a16,16,0,0,0,0-32H44v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 216 108 168 144 216 144 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M204,194h12v11.8A21.5,21.5,0,0,1,198,216c-12.2,0-22-10.7-22-24s9.8-24,22-24a20.3,20.3,0,0,1,12,3.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_x />
  <Heroicons.file_x class="w-4 h-4" />
  <Heroicons.file_x solid />
  <Heroicons.file_x mini />
  <Heroicons.file_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="128" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3Zm-56,88a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L128,163.3l-18.3,18.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L116.7,152,98.3,133.7a8.1,8.1,0,0,1,11.4-11.4L128,140.7l18.3-18.4a8.1,8.1,0,0,1,11.4,11.4L139.3,152ZM152,88V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="128" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="128" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flashlight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flashlight />
  <Heroicons.flashlight class="w-4 h-4" />
  <Heroicons.flashlight solid />
  <Heroicons.flashlight mini />
  <Heroicons.flashlight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flashlight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,24H184a8,8,0,0,1,8,8V77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V32A8,8,0,0,1,72,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,24H184a8,8,0,0,1,8,8V77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V32A8,8,0,0,1,72,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="120" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V64H192Z" opacity="0.2"/><path d="M72,24H184a8,8,0,0,1,8,8V77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V32A8,8,0,0,1,72,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,16H72A16,16,0,0,0,56,32V77.3a15.6,15.6,0,0,0,3.2,9.6L80,114.7V224a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16V114.7l20.8-27.8a15.6,15.6,0,0,0,3.2-9.6V32A16,16,0,0,0,184,16ZM136,152a8,8,0,0,1-16,0V120a8,8,0,0,1,16,0ZM72,56V32H184V56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,24H184a8,8,0,0,1,8,8V77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V32A8,8,0,0,1,72,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="120" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,24H184a8,8,0,0,1,8,8V77.3a8.1,8.1,0,0,1-1.6,4.8l-20.8,27.8a8.1,8.1,0,0,0-1.6,4.8V224a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V114.7a8.1,8.1,0,0,0-1.6-4.8L65.6,82.1A8.1,8.1,0,0,1,64,77.3V32A8,8,0,0,1,72,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="120" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand_palm` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand_palm />
  <Heroicons.hand_palm class="w-4 h-4" />
  <Heroicons.hand_palm solid />
  <Heroicons.hand_palm mini />
  <Heroicons.hand_palm outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand_palm(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,172a40,40,0,0,1,40-40V112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,172a40,40,0,0,1,40-40V112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0V36a20,20,0,0,1,40,0V52a20,20,0,0,1,40,0Z" opacity="0.2"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,172a40,40,0,0,1,40-40V112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,84a28.2,28.2,0,0,0-12,2.7V52a28.1,28.1,0,0,0-28-28,27.8,27.8,0,0,0-13.4,3.4A28,28,0,0,0,80,36v6.7A28,28,0,0,0,40,68v84a88,88,0,0,0,176,0V112A28.1,28.1,0,0,0,188,84Zm12,68a72,72,0,0,1-144,0V68a12,12,0,0,1,24,0v44a8,8,0,0,0,16,0V36a12,12,0,0,1,24,0v68a8,8,0,0,0,16,0V52a12,12,0,0,1,24,0v72.7A48,48,0,0,0,120,172a8,8,0,0,0,16,0,32.1,32.1,0,0,1,32-32,8,8,0,0,0,8-8V112a12,12,0,0,1,24,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,172a40,40,0,0,1,40-40V112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,52a20,20,0,0,1,40,0v60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,68V36a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,172a40,40,0,0,1,40-40V112a20,20,0,0,1,40,0v40a80,80,0,0,1-160,0V68a20,20,0,0,1,40,0v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `armchair` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.armchair />
  <Heroicons.armchair class="w-4 h-4" />
  <Heroicons.armchair solid />
  <Heroicons.armchair mini />
  <Heroicons.armchair outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def armchair(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,96V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,168V128a32,32,0,1,0-32,32h0v40a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V160h0a32,32,0,1,0-32-32v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92" y1="136" x2="164" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M164,164V128a40,40,0,1,1,44,39.8V200a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V167.8A40,40,0,1,1,92,128v36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,88.2V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V88.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,160v40a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V160h0a32,32,0,0,1,0-64V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V96a32,32,0,0,1,0,64Z" opacity="0.2"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,96V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,168V128a32,32,0,1,0-32,32h0v40a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V160h0a32,32,0,1,0-32-32v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,159v41a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V159a32,32,0,1,1,40-31v40a8,8,0,0,0,16,0V136h64v32a8,8,0,0,0,16,0V128a32,32,0,1,1,40,31ZM95.3,120h65.4A48,48,0,0,1,208,80h3.7a3.9,3.9,0,0,0,4.3-3.9V72a40,40,0,0,0-40-40H80A40,40,0,0,0,40,72v4.2a3.9,3.9,0,0,0,4.3,3.9H48A48,48,0,0,1,95.3,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,96V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,168V128a32,32,0,1,0-32,32h0v40a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V160h0a32,32,0,1,0-32-32v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,96V72A32,32,0,0,1,80,40h96a32,32,0,0,1,32,32V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,168V128a32,32,0,1,0-32,32h0v40a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V160h0a32,32,0,1,0-32-32v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_charging` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_charging />
  <Heroicons.battery_charging class="w-4 h-4" />
  <Heroicons.battery_charging solid />
  <Heroicons.battery_charging mini />
  <Heroicons.battery_charging outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_charging(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="124 168 140 128 108 128 124 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="118 168 134 128 102 128 118 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="124 168 140 128 108 128 124 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm-52.6,83-16,40a7.9,7.9,0,0,1-7.4,5,8,8,0,0,1-3-.6,7.9,7.9,0,0,1-4.4-10.4l11.6-29H108a7.9,7.9,0,0,1-6.6-3.5,8,8,0,0,1-.8-7.5l16-40a8,8,0,1,1,14.8,6l-11.6,29H140a7.9,7.9,0,0,1,6.6,3.5A8,8,0,0,1,147.4,131Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="124 168 140 128 108 128 124 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="124 168 140 128 108 128 124 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `palette` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.palette />
  <Heroicons.palette class="w-4 h-4" />
  <Heroicons.palette solid />
  <Heroicons.palette mini />
  <Heroicons.palette outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def palette(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="83" cy="102" r="12"/><circle cx="83" cy="154" r="12"/><circle cx="173" cy="102" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="76" r="16"/><circle cx="83" cy="102" r="16"/><circle cx="83" cy="154" r="16"/><circle cx="173" cy="102" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" opacity="0.2"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="83" cy="102" r="12"/><circle cx="83" cy="154" r="12"/><circle cx="173" cy="102" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200.8,53.9A103.4,103.4,0,0,0,128,24h-1.1A104,104,0,0,0,93.4,226.1,32,32,0,0,0,136,195.9V192a16,16,0,0,1,16-16h46.2a31.7,31.7,0,0,0,31.2-24.9,101.5,101.5,0,0,0,2.6-24A102.9,102.9,0,0,0,200.8,53.9ZM89,164.4A12,12,0,1,1,93.4,148,12,12,0,0,1,89,164.4ZM93.4,108A12,12,0,1,1,89,91.6,12.1,12.1,0,0,1,93.4,108ZM128,88a12,12,0,1,1,12-12A12,12,0,0,1,128,88Zm51,24.4A12,12,0,1,1,183.4,96,12.1,12.1,0,0,1,179,112.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="76" r="10"/><circle cx="83" cy="102" r="10"/><circle cx="83" cy="154" r="10"/><circle cx="173" cy="102" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,149.4a96.2,96.2,0,0,0,2.4-22.2c-.4-52.9-44.2-95.7-97-95.2A96,96,0,0,0,96,218.5a23.9,23.9,0,0,0,32-22.6V192a23.9,23.9,0,0,1,24-24h46.2A24,24,0,0,0,221.6,149.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="76" r="8"/><circle cx="83" cy="102" r="8"/><circle cx="83" cy="154" r="8"/><circle cx="173" cy="102" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `envelope_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.envelope_simple />
  <Heroicons.envelope_simple class="w-4 h-4" />
  <Heroicons.envelope_simple solid />
  <Heroicons.envelope_simple mini />
  <Heroicons.envelope_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def envelope_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="224 56 128 144 32 56 224 56" opacity="0.2"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48Zm-8,144H40V74.2l82.6,75.7a8,8,0,0,0,10.8,0L216,74.2V192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 56 128 144 32 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_in_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_in_simple />
  <Heroicons.arrows_in_simple class="w-4 h-4" />
  <Heroicons.arrows_in_simple solid />
  <Heroicons.arrows_in_simple mini />
  <Heroicons.arrows_in_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_in_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 56 152 104 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 152 104 152 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 56 152 104 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 152 104 152 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 56 152 104 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 152 104 152 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,53.7,187.3,80l18.4,18.3a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,200,112H152a8,8,0,0,1-8-8V56a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7L176,68.7l26.3-26.4a8.1,8.1,0,0,1,11.4,11.4ZM104,144H56a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8L68.7,176,42.3,202.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L80,187.3l18.3,18.4A8.3,8.3,0,0,0,104,208a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,112,200V152A8,8,0,0,0,104,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 56 152 104 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 152 104 152 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 56 152 104 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 152 104 152 104 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sim_card` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sim_card />
  <Heroicons.sim_card class="w-4 h-4" />
  <Heroicons.sim_card solid />
  <Heroicons.sim_card mini />
  <Heroicons.sim_card outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sim_card(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="120" width="96" height="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="152" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="152" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="88" y="124" width="80" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="164" x2="128" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="120" width="96" height="72" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="120" width="96" height="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="152" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="152" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM200,216H56V40h92.7L200,91.3V216Z"/><path d="M176,112H80a8,8,0,0,0-8,8v72a8,8,0,0,0,8,8h96a8,8,0,0,0,8-8V120A8,8,0,0,0,176,112Zm-56,64a8,8,0,0,1-16,0V136a8,8,0,0,1,16,0Zm32,0a8,8,0,0,1-16,0V136a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="80" y="120" width="96" height="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="152" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="152" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="80" y="120" width="96" height="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="152" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="152" x2="144" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_square />
  <Heroicons.user_square class="w-4 h-4" />
  <Heroicons.user_square solid />
  <Heroicons.user_square mini />
  <Heroicons.user_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.8,216a72,72,0,0,1,140.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M57.8,216a72,72,0,0,1,140.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V48A8,8,0,0,0,208,40ZM57.8,216A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,70.2,56Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.8,216a72,72,0,0,1,140.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="44"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176h-3.7a80.7,80.7,0,0,0-26-38.2,76.8,76.8,0,0,0-9-6.3,59.9,59.9,0,0,1-82.6,0,76.8,76.8,0,0,0-9,6.3,80.7,80.7,0,0,0-26,38.2H48V48H208V208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M57.8,216a72,72,0,0,1,140.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M57.8,216a72,72,0,0,1,140.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_html` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_html />
  <Heroicons.file_html class="w-4 h-4" />
  <Heroicons.file_html solid />
  <Heroicons.file_html mini />
  <Heroicons.file_html outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_html(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="176" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="176" x2="36" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="196" x2="64" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="212 176 212 216 236 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 216 144 176 164 204 184 176 184 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,136V40a8,8,0,0,1,8-8h96l56,56v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="140" y1="164" x2="60" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="220" x2="100" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="20" y1="164" x2="20" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60" y1="164" x2="60" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="20" y1="192" x2="60" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="220 164 220 220 244 220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="140 220 140 164 164 196 188 164 188 220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="176" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="176" x2="36" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="176" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36" y1="196" x2="64" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="212 176 212 216 236 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 216 144 176 164 204 184 176 184 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,168H88a8,8,0,0,0,0,16h8v32a8,8,0,0,0,16,0V184h8a8,8,0,0,0,0-16Z"/><path d="M64,168a8,8,0,0,0-8,8v12H44V176a8,8,0,0,0-16,0v40a8,8,0,0,0,16,0V204H56v12a8,8,0,0,0,16,0V176A8,8,0,0,0,64,168Z"/><path d="M236,208H220V176a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8h24a8,8,0,0,0,0-16Z"/><path d="M186.4,168.4a7.8,7.8,0,0,0-8.9,3L164,190.2l-13.5-18.8A8,8,0,0,0,136,176v40a8,8,0,0,0,16,0V201l5.5,7.6a7.9,7.9,0,0,0,13,0L176,201v15a8,8,0,0,0,16,0V176A7.8,7.8,0,0,0,186.4,168.4Z"/><path d="M48,136H208a8,8,0,0,0,8-8V88a8.1,8.1,0,0,0-2.3-5.7l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88A8,8,0,0,0,48,136ZM152,44l44,44H152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="176" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="216" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="176" x2="36" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="176" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36" y1="196" x2="64" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="212 176 212 216 236 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 216 144 176 164 204 184 176 184 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,136V40a8,8,0,0,1,8-8h96l56,56v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="120" y1="176" x2="88" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="216" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="176" x2="36" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="176" x2="64" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36" y1="196" x2="64" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="212 176 212 216 236 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 216 144 176 164 204 184 176 184 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,136V40a8,8,0,0,1,8-8h96l56,56v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thumbs_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thumbs_up />
  <Heroicons.thumbs_up class="w-4 h-4" />
  <Heroicons.thumbs_up solid />
  <Heroicons.thumbs_up mini />
  <Heroicons.thumbs_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thumbs_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104l40-80a32,32,0,0,1,32,32V80h61.9a15.9,15.9,0,0,1,15.8,18l-12,96a16,16,0,0,1-15.8,14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,104l40-80a32,32,0,0,1,32,32V80h61.9a15.9,15.9,0,0,1,15.8,18l-12,96a16,16,0,0,1-15.8,14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" opacity="0.2"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,104l40-80a32,32,0,0,1,32,32V80h61.9a15.9,15.9,0,0,1,15.8,18l-12,96a16,16,0,0,1-15.8,14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.9,80.1a24.4,24.4,0,0,0-18-8.1H160V56a40.1,40.1,0,0,0-40-40,8.2,8.2,0,0,0-7.2,4.4L75,96H32a16,16,0,0,0-16,16v88a16,16,0,0,0,16,16H201.9a24.1,24.1,0,0,0,23.8-21l12-96A24.5,24.5,0,0,0,231.9,80.1ZM32,112H72v88H32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,104l40-80a32,32,0,0,1,32,32V80h61.9a15.9,15.9,0,0,1,15.8,18l-12,96a16,16,0,0,1-15.8,14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,104H80a0,0,0,0,1,0,0V208a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V112A8,8,0,0,1,32,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,104l40-80a32,32,0,0,1,32,32V80h61.9a15.9,15.9,0,0,1,15.8,18l-12,96a16,16,0,0,1-15.8,14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_down_right />
  <Heroicons.arrow_u_down_right class="w-4 h-4" />
  <Heroicons.arrow_u_down_right solid />
  <Heroicons.arrow_u_down_right mini />
  <Heroicons.arrow_u_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 120 224 168 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,56H88a56,56,0,0,0-56,56h0a56,56,0,0,0,56,56H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 120 224 168 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,56H88a56,56,0,0,0-56,56h0a56,56,0,0,0,56,56H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 120 224 168 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,56H88a56,56,0,0,0-56,56h0a56,56,0,0,0,56,56H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,173.7l-48,48A8.3,8.3,0,0,1,176,224a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,216V176H88A64,64,0,0,1,88,48h88a8,8,0,0,1,0,16H88a48,48,0,0,0,0,96h80V120a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,229.7,173.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 120 224 168 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,56H88a56,56,0,0,0-56,56h0a56,56,0,0,0,56,56H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 120 224 168 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,56H88a56,56,0,0,0-56,56h0a56,56,0,0,0,56,56H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_underline` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_underline />
  <Heroicons.text_underline class="w-4 h-4" />
  <Heroicons.text_underline solid />
  <Heroicons.text_underline mini />
  <Heroicons.text_underline outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_underline(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,56v64a64,64,0,0,0,128,0V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,56v60a64,64,0,0,0,128,0V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,56v64a64,64,0,0,0,128,0V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,216a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,216Zm-96-24a72.1,72.1,0,0,0,72-72V56a8,8,0,0,0-16,0v64a56,56,0,0,1-112,0V56a8,8,0,0,0-16,0v64A72.1,72.1,0,0,0,128,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,56v64a64,64,0,0,0,128,0V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,56v64a64,64,0,0,0,128,0V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_outgoing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_outgoing />
  <Heroicons.phone_outgoing class="w-4 h-4" />
  <Heroicons.phone_outgoing solid />
  <Heroicons.phone_outgoing mini />
  <Heroicons.phone_outgoing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_outgoing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" opacity="0.2"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.6,175.1A56.2,56.2,0,0,1,176,224C96.6,224,32,159.4,32,80A56.2,56.2,0,0,1,80.9,24.4,16.3,16.3,0,0,1,97.6,34l20.1,46.9A15.9,15.9,0,0,1,116.3,96L99.7,121.4h0a76.5,76.5,0,0,0,35.2,35L160,139.7a15.6,15.6,0,0,1,15.1-1.3l46.9,20A16.3,16.3,0,0,1,231.6,175.1ZM160,104a8.5,8.5,0,0,0,5.7-2.3L200,67.3V88a8,8,0,0,0,16,0V48a8,8,0,0,0-8-8H168a8,8,0,0,0,0,16h20.7L154.3,90.3a8.1,8.1,0,0,0,0,11.4A8.5,8.5,0,0,0,160,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 48 208 48 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_up_left />
  <Heroicons.arrow_up_left class="w-4 h-4" />
  <Heroicons.arrow_up_left solid />
  <Heroicons.arrow_up_left mini />
  <Heroicons.arrow_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="192" x2="64" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 64 64 64 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="192" x2="64" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="168 64 64 64 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="192" x2="64" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 64 64 64 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M197.7,197.7a8.2,8.2,0,0,1-11.4,0L116,127.3,69.7,173.7A8.3,8.3,0,0,1,64,176a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,56,168V64a8,8,0,0,1,8-8H168a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8L127.3,116l70.4,70.3A8.1,8.1,0,0,1,197.7,197.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="192" x2="64" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 64 64 64 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="192" y1="192" x2="64" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 64 64 64 64 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_intersex` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_intersex />
  <Heroicons.gender_intersex class="w-4 h-4" />
  <Heroicons.gender_intersex solid />
  <Heroicons.gender_intersex mini />
  <Heroicons.gender_intersex outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_intersex(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="108" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="204" x2="152" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 24 208 24 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164.4" y1="67.6" x2="208" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="108" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="168" x2="120" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="204" x2="152" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="172 24 208 24 208 60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164.4" y1="67.6" x2="208" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="108" r="60" opacity="0.2"/><circle cx="120" cy="108" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="168" x2="120" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="204" x2="152" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="168 24 208 24 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164.4" y1="67.6" x2="208" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,16H168a8,8,0,0,0,0,16h20.7L164.3,56.4A68,68,0,1,0,112,175.5V196H88a8,8,0,0,0,0,16h24v20a8,8,0,0,0,16,0V212h24a8,8,0,0,0,0-16H128V175.5A67.9,67.9,0,0,0,175.1,68.2L200,43.3V64a8,8,0,0,0,16,0V24A8,8,0,0,0,208,16ZM120,160a52,52,0,1,1,52-52A52,52,0,0,1,120,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="108" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="168" x2="120" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="204" x2="152" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="168 24 208 24 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164.4" y1="67.6" x2="208" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="120" cy="108" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="168" x2="120" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="204" x2="152" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="168 24 208 24 208 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164.4" y1="67.6" x2="208" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_tablet_camera` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_tablet_camera />
  <Heroicons.device_tablet_camera class="w-4 h-4" />
  <Heroicons.device_tablet_camera solid />
  <Heroicons.device_tablet_camera mini />
  <Heroicons.device_tablet_camera outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_tablet_camera(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="68" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="76" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="68" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24H64A24.1,24.1,0,0,0,40,48V208a24.1,24.1,0,0,0,24,24H192a24.1,24.1,0,0,0,24-24V48A24.1,24.1,0,0,0,192,24ZM128,80a12,12,0,1,1,12-12A12,12,0,0,1,128,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="68" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="68" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pause` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pause />
  <Heroicons.pause class="w-4 h-4" />
  <Heroicons.pause solid />
  <Heroicons.pause mini />
  <Heroicons.pause outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pause(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="48" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="52" height="176" rx="8" opacity="0.2"/><rect x="48" y="40" width="52" height="176" rx="8" opacity="0.2"/><rect x="156" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48V208a16,16,0,0,1-16,16H164a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h36A16,16,0,0,1,216,48ZM92,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H92a16,16,0,0,0,16-16V48A16,16,0,0,0,92,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="48" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="156" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="48" y="40" width="52" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `faders` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.faders />
  <Heroicons.faders class="w-4 h-4" />
  <Heroicons.faders solid />
  <Heroicons.faders mini />
  <Heroicons.faders outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def faders(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="120" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="168" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="136" x2="80" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="88" x2="104" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="124" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="40" x2="128" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="204" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="40" x2="200" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="164" x2="176" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="172" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="40" x2="56" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="132" x2="80" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="84" x2="104" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="120" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="200" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="168" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="40" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="136" x2="80" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="88" x2="104" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,112a8,8,0,0,0-8,8v96a8,8,0,0,0,16,0V120A8,8,0,0,0,128,112Z"/><path d="M200,192a8,8,0,0,0-8,8v16a8,8,0,0,0,16,0V200A8,8,0,0,0,200,192Z"/><path d="M224,160H208V40a8,8,0,0,0-16,0V160H176a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16Z"/><path d="M56,160a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V168A8,8,0,0,0,56,160Z"/><path d="M80,128H64V40a8,8,0,0,0-16,0v88H32a8,8,0,0,0,0,16H80a8,8,0,0,0,0-16Z"/><path d="M152,80H136V40a8,8,0,0,0-16,0V80H104a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="120" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="40" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="200" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="40" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="168" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="40" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="136" x2="80" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="88" x2="104" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="120" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="40" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="200" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="40" x2="200" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="168" x2="56" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="40" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="136" x2="80" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="88" x2="104" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `scroll` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.scroll />
  <Heroicons.scroll class="w-4 h-4" />
  <Heroicons.scroll solid />
  <Heroicons.scroll mini />
  <Heroicons.scroll outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def scroll(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,176V64a23.9,23.9,0,0,0-24-24H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="168" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="136" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M22.1,80A24,24,0,1,1,64,64V192a24,24,0,1,0,41.9-16h112A24,24,0,0,1,200,216H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,176V64a23.9,23.9,0,0,0-24-24H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="100" x2="168" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="140" x2="168" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M22.1,80A24,24,0,1,1,64,64V192a24,24,0,1,0,41.9-16h112A24,24,0,0,1,200,216H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,216a24,24,0,0,0,17.9-40h112A24,24,0,0,1,200,216Z" opacity="0.2"/><path d="M200,176V64a23.9,23.9,0,0,0-24-24H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="168" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="136" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M22.1,80A24,24,0,1,1,64,64V192a24,24,0,1,0,41.9-16h112A24,24,0,0,1,200,216H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.8,170.7a7.8,7.8,0,0,0-5.9-2.7H208V64a32.1,32.1,0,0,0-32-32H40A32.1,32.1,0,0,0,8,64a31.5,31.5,0,0,0,8.2,21.3,7.9,7.9,0,0,0,11.2.7,8,8,0,0,0,.7-11.3A16,16,0,1,1,56,64V192a32.1,32.1,0,0,0,32,32H200a32.1,32.1,0,0,0,32-32A31.5,31.5,0,0,0,223.8,170.7ZM104,96h64a8,8,0,0,1,0,16H104a8,8,0,0,1,0-16Zm-8,40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H104A8,8,0,0,1,96,136Zm104,72H115.7a32.2,32.2,0,0,0,4.3-16,30.8,30.8,0,0,0-1-8h94.9A16.1,16.1,0,0,1,200,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,176V64a23.9,23.9,0,0,0-24-24H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="104" x2="168" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="136" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M22.1,80A24,24,0,1,1,64,64V192a24,24,0,1,0,41.9-16h112A24,24,0,0,1,200,216H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,176V64a23.9,23.9,0,0,0-24-24H40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="104" x2="168" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="136" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M22.1,80A24,24,0,1,1,64,64V192a24,24,0,1,0,41.9-16h112A24,24,0,0,1,200,216H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_jpy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_jpy />
  <Heroicons.currency_jpy class="w-4 h-4" />
  <Heroicons.currency_jpy solid />
  <Heroicons.currency_jpy mini />
  <Heroicons.currency_jpy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_jpy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="136" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 48 128 136 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="136" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="200 48 128 136 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="136" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 48 128 136 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.2,53.1,144.9,128H176a8,8,0,0,1,0,16H136v16h40a8,8,0,0,1,0,16H136v40a8,8,0,0,1-16,0V176H80a8,8,0,0,1,0-16h40V144H80a8,8,0,0,1,0-16h31.1L49.8,53.1A8,8,0,0,1,62.2,42.9L128,123.4l65.8-80.5a8,8,0,0,1,12.4,10.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="136" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="200 48 128 136 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="136" x2="176" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="136" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="200 48 128 136 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_clockwise />
  <Heroicons.arrows_clockwise class="w-4 h-4" />
  <Heroicons.arrows_clockwise solid />
  <Heroicons.arrows_clockwise mini />
  <Heroicons.arrows_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,65.8a87.9,87.9,0,0,1,124.4,0l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="79.8 156.3 31.8 156.3 31.8 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a87.9,87.9,0,0,1-124.4,0l-34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65.8,65.8a87.9,87.9,0,0,1,124.4,0l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="79.8 156.3 31.8 156.3 31.8 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.2,190.2a87.9,87.9,0,0,1-124.4,0l-34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,65.8a87.9,87.9,0,0,1,124.4,0l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="79.8 156.3 31.8 156.3 31.8 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,190.2a87.9,87.9,0,0,1-124.4,0l-34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232.2,51.7v48a8,8,0,0,1-8,8h-48a8,8,0,0,1-5.7-13.6l18.4-18.4-4.3-4.3a80.2,80.2,0,0,0-113.2,0,7.9,7.9,0,0,1-11.3,0,8,8,0,0,1,0-11.3,96.2,96.2,0,0,1,135.8,0l4.3,4.3,18.3-18.3a8,8,0,0,1,8.7-1.8A8.2,8.2,0,0,1,232.2,51.7ZM184.6,184.6a80.2,80.2,0,0,1-113.2,0l-4.3-4.3,18.4-18.4a8,8,0,0,0-5.7-13.6h-48a8,8,0,0,0-8,8v48a8.2,8.2,0,0,0,5,7.4,8,8,0,0,0,3,.6,7.8,7.8,0,0,0,5.7-2.4l18.3-18.3,4.3,4.3a96.1,96.1,0,0,0,135.8,0,8,8,0,0,0,0-11.3A7.9,7.9,0,0,0,184.6,184.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65.8,65.8a87.9,87.9,0,0,1,124.4,0l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="79.8 156.3 31.8 156.3 31.8 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.2,190.2a87.9,87.9,0,0,1-124.4,0l-34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176.2 99.7 224.2 99.7 224.2 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65.8,65.8a87.9,87.9,0,0,1,124.4,0l34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="79.8 156.3 31.8 156.3 31.8 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.2,190.2a87.9,87.9,0,0,1-124.4,0l-34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bounding_box` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bounding_box />
  <Heroicons.bounding_box class="w-4 h-4" />
  <Heroicons.bounding_box solid />
  <Heroicons.bounding_box mini />
  <Heroicons.bounding_box outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bounding_box(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="168" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="168" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="168" x2="64" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="192" x2="88" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="88" x2="192" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="64" x2="168" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="168" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="168" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="168" x2="64" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="192" x2="88" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="88" x2="192" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="64" x2="168" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="168" y="40" width="48" height="48" rx="8" opacity="0.2"/><rect x="40" y="40" width="48" height="48" rx="8" opacity="0.2"/><rect x="168" y="168" width="48" height="48" rx="8" opacity="0.2"/><rect x="40" y="168" width="48" height="48" rx="8" opacity="0.2"/><rect x="168" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="168" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="168" x2="64" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="192" x2="88" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="88" x2="192" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="64" x2="168" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,96a16,16,0,0,0,16-16V48a16,16,0,0,0-16-16H176a16,16,0,0,0-16,16v8H96V48A16,16,0,0,0,80,32H48A16,16,0,0,0,32,48V80A16,16,0,0,0,48,96h8v64H48a16,16,0,0,0-16,16v32a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16v-8h64v8a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V176a16,16,0,0,0-16-16h-8V96Zm-24,64h-8a16,16,0,0,0-16,16v8H96v-8a16,16,0,0,0-16-16H72V96h8A16,16,0,0,0,96,80V72h64v8a16,16,0,0,0,16,16h8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="168" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="168" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="168" x2="64" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="192" x2="88" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="88" x2="192" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="64" x2="168" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="168" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="168" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="168" width="48" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="168" x2="64" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="192" x2="88" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="88" x2="192" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="64" x2="168" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gitlab_logo_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gitlab_logo_simple />
  <Heroicons.gitlab_logo_simple class="w-4 h-4" />
  <Heroicons.gitlab_logo_simple solid />
  <Heroicons.gitlab_logo_simple mini />
  <Heroicons.gitlab_logo_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gitlab_logo_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" opacity="0.2"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.9,169.8l-94.8,65.6a15.7,15.7,0,0,1-18.2,0L24.1,169.8a16.1,16.1,0,0,1-6.4-17.3L45,50a12,12,0,0,1,22.9-1.1L88.5,104h79l20.6-55.1A12,12,0,0,1,211,50l27.3,102.5A16.1,16.1,0,0,1,231.9,169.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_simple_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_simple_slash />
  <Heroicons.bell_simple_slash class="w-4 h-4" />
  <Heroicons.bell_simple_slash solid />
  <Heroicons.bell_simple_slash mini />
  <Heroicons.bell_simple_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_simple_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12.1c6.6-11.3,14.1-32.1,14.1-67.9v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="228" x2="160" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M182.5,188H49a8,8,0,0,1-6.9-12.1c6.6-11.3,14.1-32.1,14.1-67.9v-4A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M100,37.7A69.4,69.4,0,0,1,128.5,32c39.6.3,71.3,33.2,71.3,72.9V108c0,19,2.1,33.7,5.1,45.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,104a72,72,0,0,1,72.5-72c39.8.3,71.5,33.2,71.5,72.9V112c0,35.8,7.5,56.6,14.1,68a7.9,7.9,0,0,1-6.9,12H48.8a7.9,7.9,0,0,1-6.9-12C48.5,168.6,56,147.8,56,112Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68v-8A71.8,71.8,0,0,1,68.9,63.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.9,210.6a7.9,7.9,0,0,1-.5,11.3A8.2,8.2,0,0,1,208,224a8,8,0,0,1-5.9-2.6L182.6,200H49a16,16,0,0,1-13.8-24.1c5.9-10.2,13-29.6,13-63.9v-8A80.2,80.2,0,0,1,58.9,63.9L42.1,45.4A8,8,0,0,1,53.9,34.6ZM160,216H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm42.9-41.3a8,8,0,0,0,5.9,2.6,7.9,7.9,0,0,0,4.2-1.2,8,8,0,0,0,3.3-9.7c-5.6-14.2-8.5-32.6-8.5-54.4v-7.1c0-44.3-35.5-80.6-79.2-80.9A80.2,80.2,0,0,0,88.5,34.4a8,8,0,0,0-3.9,5.7,8.2,8.2,0,0,0,2,6.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12.1c6.6-11.3,14.1-32.1,14.1-67.9v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.5,41.4a70.8,70.8,0,0,1,36-9.4c39.6.3,71.3,33.2,71.3,72.9V112c0,26.7,4.2,45,9,57.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M186.2,192H49a8,8,0,0,1-6.9-12.1c6.6-11.3,14.1-32.1,14.1-67.9v-8A72.4,72.4,0,0,1,68.9,63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `suitcase` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.suitcase />
  <Heroicons.suitcase class="w-4 h-4" />
  <Heroicons.suitcase solid />
  <Heroicons.suitcase mini />
  <Heroicons.suitcase outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def suitcase(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,216V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="68" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,212V48a16,16,0,0,0-16-16H104A16,16,0,0,0,88,48V212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,72V216H40a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8Z" opacity="0.2"/><path d="M168,72V216h48a8,8,0,0,0,8-8V80a8,8,0,0,0-8-8Z" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,216V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,64H176V56a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,56v8H40A16,16,0,0,0,24,80V208a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64ZM96,80h64V208H96Zm0-24a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v8H96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,216V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,216V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `handbag_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.handbag_simple />
  <Heroicons.handbag_simple class="w-4 h-4" />
  <Heroicons.handbag_simple solid />
  <Heroicons.handbag_simple mini />
  <Heroicons.handbag_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def handbag_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" opacity="0.2"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239,206.2l-14.3-128A15.9,15.9,0,0,0,208.8,64H175.3a48,48,0,0,0-94.6,0H47.2A15.9,15.9,0,0,0,31.3,78.2L17,206.2a16.2,16.2,0,0,0,4,12.5A15.9,15.9,0,0,0,32.9,224H223.1a15.9,15.9,0,0,0,11.9-5.3A16.2,16.2,0,0,0,239,206.2ZM128,40a32.1,32.1,0,0,1,31,24H97A32.1,32.1,0,0,1,128,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,72a40,40,0,0,1,80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_left_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_left_right />
  <Heroicons.arrows_left_right class="w-4 h-4" />
  <Heroicons.arrows_left_right solid />
  <Heroicons.arrows_left_right mini />
  <Heroicons.arrows_left_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_left_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 144 208 176 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="176" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 112 48 80 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="80" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 144 208 176 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="176" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 112 48 80 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="80" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 144 208 176 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="176" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 112 48 80 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="80" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,181.7l-32,32A8.3,8.3,0,0,1,176,216a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,208V184H48a8,8,0,0,1,0-16H168V144a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l32,32A8.1,8.1,0,0,1,213.7,181.7Zm-139.4-64A8.3,8.3,0,0,0,80,120a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,88,112V88H208a8,8,0,0,0,0-16H88V48a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-32,32a8.1,8.1,0,0,0,0,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 144 208 176 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="176" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 112 48 80 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="80" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 144 208 176 176 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="176" x2="208" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 112 48 80 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="80" x2="48" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_check` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_check />
  <Heroicons.shield_check class="w-4 h-4" />
  <Heroicons.shield_check solid />
  <Heroicons.shield_check mini />
  <Heroicons.shield_check outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_check(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a16,16,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40Zm-30.5,69.8-58.6,56a8.1,8.1,0,0,1-5.6,2.2,7.9,7.9,0,0,1-5.5-2.2l-29.3-28a8,8,0,1,1,11-11.6l23.8,22.7,53.2-50.7a8,8,0,0,1,11,11.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magnifying_glass_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magnifying_glass_plus />
  <Heroicons.magnifying_glass_plus class="w-4 h-4" />
  <Heroicons.magnifying_glass_plus solid />
  <Heroicons.magnifying_glass_plus mini />
  <Heroicons.magnifying_glass_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magnifying_glass_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="84" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="84" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="116" cy="116" r="84" opacity="0.2"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="84" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.6,218.3l-43.2-43.2a92.2,92.2,0,1,0-11.3,11.3l43.2,43.3A8.3,8.3,0,0,0,224,232a8,8,0,0,0,5.6-13.7ZM148,124H124v24a8,8,0,0,1-16,0V124H84a8,8,0,0,1,0-16h24V84a8,8,0,0,1,16,0v24h24a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="116" y1="84" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="84" y1="116" x2="148" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="116" y1="84" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="116" cy="116" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_up />
  <Heroicons.arrow_line_up class="w-4 h-4" />
  <Heroicons.arrow_line_up solid />
  <Heroicons.arrow_line_up mini />
  <Heroicons.arrow_line_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="224" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 72 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="224" x2="128" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 152 128 80 200 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="224" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 72 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.7,138.3a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,200,152H136v72a8,8,0,0,1-16,0V152H56a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l72-72a8.1,8.1,0,0,1,11.4,0ZM216,32H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="224" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 144 128 72 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="224" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 144 128 72 200 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `vibrate` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.vibrate />
  <Heroicons.vibrate class="w-4 h-4" />
  <Heroicons.vibrate solid />
  <Heroicons.vibrate mini />
  <Heroicons.vibrate outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def vibrate(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="80" width="176" height="96" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="88" x2="208" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="88" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="104" x2="16" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="76" width="176" height="104" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="220" y1="100" x2="220" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36" y1="100" x2="36" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="80" width="176" height="96" rx="16" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="40" y="80" width="176" height="96" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="88" x2="208" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="88" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="104" x2="16" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><rect x="72" y="32" width="112" height="192" rx="24"/><path d="M208,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,208,80Z"/><path d="M240,96a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V104A8,8,0,0,0,240,96Z"/><path d="M48,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,48,80Z"/><path d="M16,96a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V104A8,8,0,0,0,16,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="80" width="176" height="96" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="88" x2="208" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="104" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="88" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="104" x2="16" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="80" width="176" height="96" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="88" x2="208" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="104" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="88" x2="48" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="104" x2="16" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `aperture` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.aperture />
  <Heroicons.aperture class="w-4 h-4" />
  <Heroicons.aperture solid />
  <Heroicons.aperture mini />
  <Heroicons.aperture outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def aperture(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="164.7" y2="134.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.9" y1="80" x2="152.1" y2="99.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.9" y1="176" x2="115.5" y2="92.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="91.3" y2="121.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="176" x2="103.9" y2="156.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="140.5" y2="163.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="32" x2="164.7" y2="134.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44.9" y1="80" x2="152.1" y2="99.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44.9" y1="176" x2="115.5" y2="92.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="224" x2="91.3" y2="121.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="211.1" y1="176" x2="103.9" y2="156.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="211.1" y1="80" x2="140.5" y2="163.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,60.1a96,96,0,1,0,0,135.8A96,96,0,0,0,195.9,60.1Zm-31.2,74.6-24.2,28.4h0l-36.6-6.7h0L91.3,121.3h0l24.2-28.4h0l36.6,6.7h0l12.6,35.1Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="164.7" y2="134.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.9" y1="80" x2="152.1" y2="99.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44.9" y1="176" x2="115.5" y2="92.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="91.3" y2="121.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="176" x2="103.9" y2="156.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="211.1" y1="80" x2="140.5" y2="163.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128A104.1,104.1,0,0,0,128,24,104.1,104.1,0,0,0,24,128,104.1,104.1,0,0,0,128,232h.1A104.1,104.1,0,0,0,232,128ZM49.2,88.9l51.2,9.4L46.7,161.5A88,88,0,0,1,49.2,88.9Zm160.1,5.6a88,88,0,0,1-2.5,72.6l-51.2-9.4Zm-8-15.2L167.6,119l-28-78.2a86.8,86.8,0,0,1,50.6,25A88.5,88.5,0,0,1,201.3,79.3ZM122.4,40.2l17.5,49L58.3,74.3a99.2,99.2,0,0,1,7.5-8.5A87.1,87.1,0,0,1,122.4,40.2ZM54.7,176.7,88.4,137l28,78.2a86.8,86.8,0,0,1-50.6-25A88.5,88.5,0,0,1,54.7,176.7Zm78.9,39.1-17.5-49,23,4.2h.1l58.5,10.7a99.2,99.2,0,0,1-7.5,8.5A87.1,87.1,0,0,1,133.6,215.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="32" x2="164.7" y2="134.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="44.9" y1="80" x2="152.1" y2="99.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="44.9" y1="176" x2="115.5" y2="92.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="224" x2="91.3" y2="121.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="211.1" y1="176" x2="103.9" y2="156.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="211.1" y1="80" x2="140.5" y2="163.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="32" x2="164.7" y2="134.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="44.9" y1="80" x2="152.1" y2="99.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="44.9" y1="176" x2="115.5" y2="92.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="224" x2="91.3" y2="121.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="211.1" y1="176" x2="103.9" y2="156.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="211.1" y1="80" x2="140.5" y2="163.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_up_right />
  <Heroicons.arrow_square_up_right class="w-4 h-4" />
  <Heroicons.arrow_square_up_right solid />
  <Heroicons.arrow_square_up_right mini />
  <Heroicons.arrow_square_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM164,148a8,8,0,0,1-16,0V119.3l-42.3,42.4a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L136.7,108H108a8,8,0,0,1,0-16h48a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 100 156 100 156 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="156" x2="156" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bug_beetle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bug_beetle />
  <Heroicons.bug_beetle class="w-4 h-4" />
  <Heroicons.bug_beetle solid />
  <Heroicons.bug_beetle mini />
  <Heroicons.bug_beetle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bug_beetle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="32" width="144" height="192" rx="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="136" x2="224" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="136" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="168" x2="57.8" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="136" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="198.2" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="55.9" y1="28" x2="79.7" y2="50.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="199.9" y1="28" x2="176.2" y2="50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="32" width="144" height="192" rx="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="144" x2="224" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="144" x2="56" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="144" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="55.9" y1="28" x2="79.7" y2="50.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="199.9" y1="28" x2="176.2" y2="50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="184" x2="63.5" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192.5" y1="184" x2="224" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,104v48a72,72,0,0,1-72,72h0a72,72,0,0,1-72-72V104Z" opacity="0.2"/><rect x="56" y="32" width="144" height="192" rx="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="136" x2="224" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="136" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="168" x2="57.8" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="136" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="198.2" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="55.9" y1="28" x2="79.7" y2="50.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="199.9" y1="28" x2="176.2" y2="50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.4,33.8a8,8,0,0,1,11-11.6L80.1,40a79.8,79.8,0,0,1,95.7-.1l18.6-17.7a8,8,0,0,1,11.3.3,7.9,7.9,0,0,1-.3,11.3L187.6,50.7a79.6,79.6,0,0,1,20,45.3H48.4A79.9,79.9,0,0,1,68.3,50.8ZM32,96a8,8,0,0,0,0,16H48V96Zm176,56a70.3,70.3,0,0,1-.4,8H224a8,8,0,0,1,0,16H204.3a80,80,0,0,1-152.6,0H32a8,8,0,0,1,0-16H48.4a70.3,70.3,0,0,1-.4-8v-8H32a8,8,0,0,1,0-16H48V112H208v16h16a8,8,0,0,1,0,16H208Zm-72-16a8,8,0,0,0-16,0v64a8,8,0,0,0,16,0Zm96-32a8,8,0,0,0-8-8H208v16h16A8,8,0,0,0,232,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="32" width="144" height="192" rx="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="136" x2="224" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="136" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="168" x2="57.8" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="136" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="198.2" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="55.9" y1="28" x2="79.7" y2="50.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="199.9" y1="28" x2="176.2" y2="50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="32" width="144" height="192" rx="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="136" x2="224" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="136" x2="56" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="168" x2="57.8" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="136" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="198.2" y1="168" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="55.9" y1="28" x2="79.7" y2="50.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="199.9" y1="28" x2="176.2" y2="50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gear_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gear_six />
  <Heroicons.gear_six class="w-4 h-4" />
  <Heroicons.gear_six solid />
  <Heroicons.gear_six mini />
  <Heroicons.gear_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gear_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M197.4,80.7a73.6,73.6,0,0,1,6.3,10.9L229.6,106a102,102,0,0,1,.1,44l-26,14.4a73.6,73.6,0,0,1-6.3,10.9l.5,29.7a104,104,0,0,1-38.1,22.1l-25.5-15.3a88.3,88.3,0,0,1-12.6,0L96.3,227a102.6,102.6,0,0,1-38.2-22l.5-29.6a80.1,80.1,0,0,1-6.3-11L26.4,150a102,102,0,0,1-.1-44l26-14.4a73.6,73.6,0,0,1,6.3-10.9L58.1,51A104,104,0,0,1,96.2,28.9l25.5,15.3a88.3,88.3,0,0,1,12.6,0L159.7,29a102.6,102.6,0,0,1,38.2,22Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M197.4,80.7a73.6,73.6,0,0,1,6.3,10.9L229.6,106a102,102,0,0,1,.1,44l-26,14.4a73.6,73.6,0,0,1-6.3,10.9l.5,29.7a104,104,0,0,1-38.1,22.1l-25.5-15.3a88.3,88.3,0,0,1-12.6,0L96.3,227a102.6,102.6,0,0,1-38.2-22l.5-29.6a80.1,80.1,0,0,1-6.3-11L26.4,150a102,102,0,0,1-.1-44l26-14.4a73.6,73.6,0,0,1,6.3-10.9L58.1,51A104,104,0,0,1,96.2,28.9l25.5,15.3a88.3,88.3,0,0,1,12.6,0L159.7,29a102.6,102.6,0,0,1,38.2,22Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.6,106,203.7,91.6a73.6,73.6,0,0,0-6.3-10.9l.5-29.7a102.6,102.6,0,0,0-38.2-22L134.3,44.2a88.3,88.3,0,0,0-12.6,0L96.2,28.9A104,104,0,0,0,58.1,51l.5,29.7a73.6,73.6,0,0,0-6.3,10.9L26.3,106a103.6,103.6,0,0,0,.1,44l25.9,14.4a80.1,80.1,0,0,0,6.3,11L58.1,205a102.6,102.6,0,0,0,38.2,22l25.4-15.2a88.3,88.3,0,0,0,12.6,0l25.5,15.3A104,104,0,0,0,197.9,205l-.5-29.7a73.6,73.6,0,0,0,6.3-10.9l26-14.4A102,102,0,0,0,229.6,106ZM128,176a48,48,0,1,1,48-48A48,48,0,0,1,128,176Z" opacity="0.2"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M197.4,80.7a73.6,73.6,0,0,1,6.3,10.9L229.6,106a102,102,0,0,1,.1,44l-26,14.4a73.6,73.6,0,0,1-6.3,10.9l.5,29.7a104,104,0,0,1-38.1,22.1l-25.5-15.3a88.3,88.3,0,0,1-12.6,0L96.3,227a102.6,102.6,0,0,1-38.2-22l.5-29.6a80.1,80.1,0,0,1-6.3-11L26.4,150a103.6,103.6,0,0,1-.1-44l26-14.4a73.6,73.6,0,0,1,6.3-10.9L58.1,51A104,104,0,0,1,96.2,28.9l25.5,15.3a88.3,88.3,0,0,1,12.6,0L159.7,29a102.6,102.6,0,0,1,38.2,22Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.5,104.3a8,8,0,0,0-4-5.3L209.7,85.8q-1.9-3.9-4.2-7.5l.4-27.2a8.3,8.3,0,0,0-2.6-6.1,112,112,0,0,0-41.1-23.7,8.1,8.1,0,0,0-6.6.8l-23.3,14c-2.9-.1-5.7-.1-8.6,0l-23.3-14a8.1,8.1,0,0,0-6.6-.8A111.1,111.1,0,0,0,52.7,45.1a7.9,7.9,0,0,0-2.6,6l.5,27.2c-1.6,2.4-3,4.9-4.4,7.5L22.5,99a7.7,7.7,0,0,0-4,5.3,111.4,111.4,0,0,0,0,47.4,8,8,0,0,0,4,5.3l23.8,13.2a69.3,69.3,0,0,0,4.3,7.5l-.5,27.2a8.3,8.3,0,0,0,2.6,6.1,112.9,112.9,0,0,0,41.1,23.7,8.1,8.1,0,0,0,6.6-.8l23.3-14h8.6l23.4,14a7.3,7.3,0,0,0,4.1,1.2,10,10,0,0,0,2.4-.4,111.1,111.1,0,0,0,41.1-23.8,7.9,7.9,0,0,0,2.6-6l-.4-27.2c1.5-2.4,2.9-4.9,4.3-7.5L233.6,157a7.9,7.9,0,0,0,3.9-5.3A111.4,111.4,0,0,0,237.5,104.3ZM172,128a44,44,0,1,1-44-44A44,44,0,0,1,172,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M197.4,80.7a73.6,73.6,0,0,1,6.3,10.9L229.6,106a102,102,0,0,1,.1,44l-26,14.4a73.6,73.6,0,0,1-6.3,10.9l.5,29.7a104,104,0,0,1-38.1,22.1l-25.5-15.3a88.3,88.3,0,0,1-12.6,0L96.3,227a102.6,102.6,0,0,1-38.2-22l.5-29.6a80.1,80.1,0,0,1-6.3-11L26.4,150a102,102,0,0,1-.1-44l26-14.4a73.6,73.6,0,0,1,6.3-10.9L58.1,51A104,104,0,0,1,96.2,28.9l25.5,15.3a88.3,88.3,0,0,1,12.6,0L159.7,29a102.6,102.6,0,0,1,38.2,22Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M197.4,80.7a73.6,73.6,0,0,1,6.3,10.9L229.6,106a102,102,0,0,1,.1,44l-26,14.4a73.6,73.6,0,0,1-6.3,10.9l.5,29.7a104,104,0,0,1-38.1,22.1l-25.5-15.3a88.3,88.3,0,0,1-12.6,0L96.3,227a102.6,102.6,0,0,1-38.2-22l.5-29.6a80.1,80.1,0,0,1-6.3-11L26.4,150a102,102,0,0,1-.1-44l26-14.4a73.6,73.6,0,0,1,6.3-10.9L58.1,51A104,104,0,0,1,96.2,28.9l25.5,15.3a88.3,88.3,0,0,1,12.6,0L159.7,29a102.6,102.6,0,0,1,38.2,22Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three_vertical />
  <Heroicons.dots_three_vertical class="w-4 h-4" />
  <Heroicons.dots_three_vertical solid />
  <Heroicons.dots_three_vertical mini />
  <Heroicons.dots_three_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="12"/><circle cx="128" cy="64" r="12"/><circle cx="128" cy="192" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="16"/><circle cx="128" cy="128" r="16"/><circle cx="128" cy="192" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="12"/><circle cx="128" cy="64" r="12"/><circle cx="128" cy="192" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128ZM128,76a12,12,0,1,0-12-12A12,12,0,0,0,128,76Zm0,104a12,12,0,1,0,12,12A12,12,0,0,0,128,180Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="10"/><circle cx="128" cy="128" r="10"/><circle cx="128" cy="192" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="64" r="8"/><circle cx="128" cy="128" r="8"/><circle cx="128" cy="192" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_four />
  <Heroicons.number_square_four class="w-4 h-4" />
  <Heroicons.number_square_four solid />
  <Heroicons.number_square_four mini />
  <Heroicons.number_square_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM156,176a8,8,0,0,1-16,0V152H100a8,8,0,0,1-6.5-3.4,7.9,7.9,0,0,1-1-7.3l24-68a8,8,0,0,1,15,5.4L111.3,136H140V112a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 76 100 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="148" y1="112" x2="148" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `math_operations` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.math_operations />
  <Heroicons.math_operations class="w-4 h-4" />
  <Heroicons.math_operations solid />
  <Heroicons.math_operations mini />
  <Heroicons.math_operations outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def math_operations(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="184" x2="104" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="152" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="72" x2="40" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168.1" x2="152" y2="168.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="199.9" x2="152" y2="199.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="96" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="184" x2="104" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="152" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="72" x2="40" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="164.1" x2="152" y2="164.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="203.9" x2="152" y2="203.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="96" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="184" x2="104" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="152" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="72" x2="40" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="168.1" x2="152" y2="168.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="199.9" x2="152" y2="199.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="96" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H80V152a8,8,0,0,0-16,0v24H40a8,8,0,0,0,0,16H64v24a8,8,0,0,0,16,0V192h24a8,8,0,0,0,0-16Z"/><path d="M104,64H40a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z"/><path d="M152,176.1h64a8,8,0,0,0,0-16H152a8,8,0,0,0,0,16Z"/><path d="M216,191.9H152a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z"/><path d="M154.3,101.7a8.2,8.2,0,0,0,11.4,0L184,83.3l18.3,18.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L195.3,72l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L184,60.7,165.7,42.3a8.1,8.1,0,0,0-11.4,11.4L172.7,72,154.3,90.3A8.1,8.1,0,0,0,154.3,101.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="184" x2="104" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="152" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="72" x2="40" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="168.1" x2="152" y2="168.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="199.9" x2="152" y2="199.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="96" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="184" x2="104" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="152" x2="72" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="72" x2="40" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="168.1" x2="152" y2="168.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="199.9" x2="152" y2="199.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="96" x2="160" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_plus />
  <Heroicons.battery_plus class="w-4 h-4" />
  <Heroicons.battery_plus solid />
  <Heroicons.battery_plus mini />
  <Heroicons.battery_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124" y1="104" x2="124" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="124" y1="104" x2="124" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124" y1="104" x2="124" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,96v64a8,8,0,0,1-16,0V96a8,8,0,0,1,16,0ZM224,72V184a24.1,24.1,0,0,1-24,24H48a24.1,24.1,0,0,1-24-24V72A24.1,24.1,0,0,1,48,48H200A24.1,24.1,0,0,1,224,72Zm-68,56a8,8,0,0,0-8-8H132V104a8,8,0,0,0-16,0v16H100a8,8,0,0,0,0,16h16v16a8,8,0,0,0,16,0V136h16A8,8,0,0,0,156,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="124" y1="104" x2="124" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="124" y1="104" x2="124" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="128" x2="148" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_circle_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_circle_text />
  <Heroicons.chat_circle_text class="w-4 h-4" />
  <Heroicons.chat_circle_text solid />
  <Heroicons.chat_circle_text mini />
  <Heroicons.chat_circle_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_circle_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="108" x2="160" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="148" x2="160" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" opacity="0.2"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,0,0,36.8,178l-8.5,29.9a16.1,16.1,0,0,0,4,15.8,15.8,15.8,0,0,0,15.7,4l30-8.5A104,104,0,1,0,128,24Zm32,128H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.4,177A95.9,95.9,0,1,1,79,210.6h0L45.8,220a7.9,7.9,0,0,1-9.8-9.8L45.4,177Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `barricade` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.barricade />
  <Heroicons.barricade class="w-4 h-4" />
  <Heroicons.barricade solid />
  <Heroicons.barricade mini />
  <Heroicons.barricade outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def barricade(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="72" x2="172" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="72" x2="232" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="84" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="160" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="72" x2="172" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="72" x2="232" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="84" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="160" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="160" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,72l76,76V80a8,8,0,0,0-8-8Z" opacity="0.2"/><path d="M84,72l88,88H100L24,84V80a8,8,0,0,1,8-8Z" opacity="0.2"/><rect x="24" y="72" width="208" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="72" x2="172" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="72" x2="232" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="84" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="160" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,64H32A16,16,0,0,0,16,80v72a16,16,0,0,0,16,16H56v32a8,8,0,0,0,16,0V168H184v32a8,8,0,0,0,16,0V168h24a16,16,0,0,0,16-16V80A16,16,0,0,0,224,64ZM32,92l60,60H32Zm192,60H164L92,80h72l60,60v12Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84" y1="72" x2="172" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="72" x2="232" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="84" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="160" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="160" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84" y1="72" x2="172" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="72" x2="232" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="84" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="160" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="160" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three_circle />
  <Heroicons.dots_three_circle class="w-4 h-4" />
  <Heroicons.dots_three_circle solid />
  <Heroicons.dots_three_circle mini />
  <Heroicons.dots_three_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="128" r="12"/><circle cx="176" cy="128" r="12"/><circle cx="80" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="100" cy="128" r="16"/><circle cx="156" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="176" cy="128" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="80" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM80,140a12,12,0,1,1,12-12A12,12,0,0,1,80,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm48,0a12,12,0,1,1,12-12A12,12,0,0,1,176,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="10"/><circle cx="80" cy="128" r="10"/><circle cx="176" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="8"/><circle cx="80" cy="128" r="8"/><circle cx="176" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_line_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_line_left />
  <Heroicons.arrow_fat_line_left class="w-4 h-4" />
  <Heroicons.arrow_fat_line_left solid />
  <Heroicons.arrow_fat_line_left mini />
  <Heroicons.arrow_fat_line_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_line_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 184 176 184 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 176 176 176 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 184 176 184 80 120 80 120 32" opacity="0.2"/><polygon points="120 32 24 128 120 224 120 176 184 176 184 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.3,229.7l-96-96a8.1,8.1,0,0,1,0-11.4l96-96a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,128,32V72h56a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H128v40a8,8,0,0,1-4.9,7.4A8.4,8.4,0,0,1,114.3,229.7ZM216,184a8,8,0,0,0,8-8V80a8,8,0,0,0-16,0v96A8,8,0,0,0,216,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 184 176 184 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 184 176 184 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `spiral` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.spiral />
  <Heroicons.spiral class="w-4 h-4" />
  <Heroicons.spiral solid />
  <Heroicons.spiral mini />
  <Heroicons.spiral outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def spiral(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,136a8,8,0,0,1,8,8,16,16,0,0,1-16,16,23.9,23.9,0,0,1-24-24,32,32,0,0,1,32-32,40,40,0,0,1,40,40,48,48,0,0,1-48,48,56,56,0,0,1-56-56,64.1,64.1,0,0,1,64-64,72,72,0,0,1,72,72,80,80,0,0,1-80,80,88,88,0,0,1-88-88,96,96,0,0,1,96-96A104,104,0,0,1,240,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M124,136a8,8,0,0,1-8-8,16,16,0,0,1,16-16,25.9,25.9,0,0,1,26,26,36,36,0,0,1-36,36,46,46,0,0,1-46-46,56,56,0,0,1,56-56,65.9,65.9,0,0,1,66,66,76,76,0,0,1-76,76,86,86,0,0,1-86-86,96,96,0,0,1,96-96A106.1,106.1,0,0,1,238,138" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,136a8,8,0,0,1,8,8,16,16,0,0,1-16,16,23.9,23.9,0,0,1-24-24,32,32,0,0,1,32-32,40,40,0,0,1,40,40,48,48,0,0,1-48,48,56,56,0,0,1-56-56,64.1,64.1,0,0,1,64-64,72,72,0,0,1,72,72,80,80,0,0,1-80,80,88,88,0,0,1-88-88,96,96,0,0,1,96-96A104,104,0,0,1,240,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,144a8,8,0,0,1-16,0,96.2,96.2,0,0,0-96-96,88.1,88.1,0,0,0-88,88,80.1,80.1,0,0,0,80,80,72.1,72.1,0,0,0,72-72,64.1,64.1,0,0,0-64-64,56,56,0,0,0-56,56,48,48,0,0,0,48,48,40,40,0,0,0,40-40,32.1,32.1,0,0,0-32-32,24.1,24.1,0,0,0-24,24,16,16,0,0,0,16,16,8,8,0,0,0,8-8,8,8,0,0,1,0-16,16,16,0,0,1,16,16,24.1,24.1,0,0,1-24,24,32.1,32.1,0,0,1-32-32,40,40,0,0,1,40-40,48,48,0,0,1,48,48,56,56,0,0,1-56,56,64.1,64.1,0,0,1-64-64,72.1,72.1,0,0,1,72-72,80.1,80.1,0,0,1,80,80,88.1,88.1,0,0,1-88,88,96.2,96.2,0,0,1-96-96A104.2,104.2,0,0,1,136,32,112.1,112.1,0,0,1,248,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,136a8,8,0,0,1,8,8,16,16,0,0,1-16,16,23.9,23.9,0,0,1-24-24,32,32,0,0,1,32-32,40,40,0,0,1,40,40,48,48,0,0,1-48,48,56,56,0,0,1-56-56,64.1,64.1,0,0,1,64-64,72,72,0,0,1,72,72,80,80,0,0,1-80,80,88,88,0,0,1-88-88,96,96,0,0,1,96-96A104,104,0,0,1,240,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,136a8,8,0,0,1,8,8,16,16,0,0,1-16,16,23.9,23.9,0,0,1-24-24,32,32,0,0,1,32-32,40,40,0,0,1,40,40,48,48,0,0,1-48,48,56,56,0,0,1-56-56,64.1,64.1,0,0,1,64-64,72,72,0,0,1,72,72,80,80,0,0,1-80,80,88,88,0,0,1-88-88,96,96,0,0,1,96-96A104,104,0,0,1,240,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_up_right />
  <Heroicons.arrow_line_up_right class="w-4 h-4" />
  <Heroicons.arrow_line_up_right solid />
  <Heroicons.arrow_line_up_right mini />
  <Heroicons.arrow_line_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 156 192 56 92 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 156 192 56 92 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 156 192 56 92 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M74.3,173.7a8.1,8.1,0,0,1,0-11.4L130.7,106,86.3,61.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,92,48H192a8,8,0,0,1,8,8V156a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L142,117.3,85.7,173.7a8.2,8.2,0,0,1-11.4,0ZM216,208H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 156 192 56 92 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="168" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 156 192 56 92 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `handshake` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.handshake />
  <Heroicons.handshake class="w-4 h-4" />
  <Heroicons.handshake solid />
  <Heroicons.handshake mini />
  <Heroicons.handshake outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def handshake(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.7,121.8,216,134.1,184,72.9l25-12.5a7.9,7.9,0,0,1,10.6,3.4l24.6,47.1A8,8,0,0,1,240.7,121.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,133.1,15.3,120.7a7.9,7.9,0,0,1-3.5-10.8L36.4,62.8A8,8,0,0,1,47,59.3L72,71.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,134.1l-16,18.8-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L40,133.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,152.9l-44-32-12.8,9.6a32.1,32.1,0,0,1-38.4,0l-5.4-4.1a8.1,8.1,0,0,1-.9-12.1l39.2-39.1a7.9,7.9,0,0,1,5.6-2.3H184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72.6,71.8l51.3-15a8,8,0,0,1,5.5.4L164,72.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212.9l-30.1-7.6a7.4,7.4,0,0,1-3.3-1.7L56,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.7,121.8,212,134.1,180,72.9l25-12.5a7.9,7.9,0,0,1,10.6,3.4l24.6,47.1A8,8,0,0,1,236.7,121.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,133.1,19.3,120.7a7.9,7.9,0,0,1-3.5-10.8L40.4,62.8A8,8,0,0,1,51,59.3L76,71.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M212,134.1l-12,18.8-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L44,133.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,152.9l-44-32-12.8,9.6a32.1,32.1,0,0,1-38.4,0l-5.4-4.1a8.1,8.1,0,0,1-.9-12.1l39.2-39.1a7.9,7.9,0,0,1,5.6-2.3H180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76.6,71.8l47.3-15a8,8,0,0,1,5.5.4L164,72.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,220.9l-30.1-7.6a7.4,7.4,0,0,1-3.3-1.7L52,192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,152.9l-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L40,133.1,72.6,71.8l51.3-15a8,8,0,0,1,5.5.4L164,72.9H143.3a7.9,7.9,0,0,0-5.6,2.3L98.5,114.3a8.1,8.1,0,0,0,.9,12.1l5.4,4.1a32.1,32.1,0,0,0,38.4,0l12.8-9.6Z" opacity="0.2"/><path d="M240.7,121.8,216,134.1,184,72.9l25-12.5a7.9,7.9,0,0,1,10.6,3.4l24.6,47.1A8,8,0,0,1,240.7,121.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,133.1,15.3,120.7a7.9,7.9,0,0,1-3.5-10.8L36.4,62.8A8,8,0,0,1,47,59.3L72,71.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,134.1l-16,18.8-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L40,133.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,152.9l-44-32-12.8,9.6a32.1,32.1,0,0,1-38.4,0l-5.4-4.1a8.1,8.1,0,0,1-.9-12.1l39.2-39.1a7.9,7.9,0,0,1,5.6-2.3H184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72.6,71.8l51.3-15a8,8,0,0,1,5.5.4L164,72.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,212.9l-30.1-7.6a7.4,7.4,0,0,1-3.3-1.7L56,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M119.8,214.8a8.1,8.1,0,0,1-7.8,6.1,6.3,6.3,0,0,1-1.9-.3l-30.2-7.5a15.7,15.7,0,0,1-6.6-3.5L50.8,190a7.9,7.9,0,1,1,10.4-12l22.6,19.6,30.1,7.5A8.1,8.1,0,0,1,119.8,214.8Zm132.6-95.2a15.8,15.8,0,0,1-8.1,9.3L221,140.6l-14.9,17.5h-.2c0,.1-.1.1-.1.2h-.1l-36.8,36.8a16.5,16.5,0,0,1-11.4,4.7,15.8,15.8,0,0,1-3.8-.5L95.7,185a15.2,15.2,0,0,1-6-2.9l-54-42.2-24-12a16.3,16.3,0,0,1-8.1-9.4,16,16,0,0,1,1.1-12.3L29.3,59.1a16.1,16.1,0,0,1,21.3-7L73,63.3l48.7-14.2a16.6,16.6,0,0,1,11,.8l33,15h16.4l23.3-11.7a16,16,0,0,1,21.3,6.9l24.6,47.1A16.2,16.2,0,0,1,252.4,119.6Zm-64.7,34.2-31.6-23-8.1,6.1a40.2,40.2,0,0,1-48,0l-5.4-4.1a15.9,15.9,0,0,1-1.7-24.1L132,69.5l1.8-1.5-7.7-3.5L77.4,78.7,50.2,130.9l49.4,38.6L157.5,184Zm18.7-20.7L179.2,80.9H143.3L104.2,120l5.4,4.1a24.3,24.3,0,0,0,28.8,0l12.8-9.6a8,8,0,0,1,9.5-.1l38,27.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.7,121.8,216,134.1,184,72.9l25-12.5a7.9,7.9,0,0,1,10.6,3.4l24.6,47.1A8,8,0,0,1,240.7,121.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,133.1,15.3,120.7a7.9,7.9,0,0,1-3.5-10.8L36.4,62.8A8,8,0,0,1,47,59.3L72,71.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,134.1l-16,18.8-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L40,133.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,152.9l-44-32-12.8,9.6a32.1,32.1,0,0,1-38.4,0l-5.4-4.1a8.1,8.1,0,0,1-.9-12.1l39.2-39.1a7.9,7.9,0,0,1,5.6-2.3H184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72.6,71.8l51.3-15a8,8,0,0,1,5.5.4L164,72.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,212.9l-30.1-7.6a7.4,7.4,0,0,1-3.3-1.7L56,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.7,121.8,216,134.1,184,72.9l25-12.5a7.9,7.9,0,0,1,10.6,3.4l24.6,47.1A8,8,0,0,1,240.7,121.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,133.1,15.3,120.7a7.9,7.9,0,0,1-3.5-10.8L36.4,62.8A8,8,0,0,1,47,59.3L72,71.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,134.1l-16,18.8-36.8,36.8a8.5,8.5,0,0,1-7.6,2.1l-58-14.5a8,8,0,0,1-2.9-1.5L40,133.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,152.9l-44-32-12.8,9.6a32.1,32.1,0,0,1-38.4,0l-5.4-4.1a8.1,8.1,0,0,1-.9-12.1l39.2-39.1a7.9,7.9,0,0,1,5.6-2.3H184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72.6,71.8l51.3-15a8,8,0,0,1,5.5.4L164,72.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,212.9l-30.1-7.6a7.4,7.4,0,0,1-3.3-1.7L56,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `umbrella_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.umbrella_simple />
  <Heroicons.umbrella_simple class="w-4 h-4" />
  <Heroicons.umbrella_simple solid />
  <Heroicons.umbrella_simple mini />
  <Heroicons.umbrella_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def umbrella_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" opacity="0.2"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M235.4,138.8a15.9,15.9,0,0,1-11.7,5.2H136v56a16,16,0,0,0,32,0,8,8,0,0,1,16,0,32,32,0,0,1-64,0V144H32.3a15.9,15.9,0,0,1-11.7-5.2,15.7,15.7,0,0,1-4.2-12.2A111.9,111.9,0,0,1,204,53.8a110.9,110.9,0,0,1,35.6,72.8A15.7,15.7,0,0,1,235.4,138.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,200a24,24,0,0,1-48,0V136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32.3,136a7.9,7.9,0,0,1-7.9-8.7,104,104,0,0,1,207.2,0,7.9,7.9,0,0,1-7.9,8.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `terminal_window` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.terminal_window />
  <Heroicons.terminal_window class="w-4 h-4" />
  <Heroicons.terminal_window solid />
  <Heroicons.terminal_window mini />
  <Heroicons.terminal_window outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def terminal_window(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 96 120 128 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="160" x2="176" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 96 120 128 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="160" x2="176" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8.5" opacity="0.2"/><polyline points="80 96 120 128 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="160" x2="176" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215.5,39.5H40.5a17,17,0,0,0-17,17v143a17,17,0,0,0,17,17h175a17,17,0,0,0,17-17V56.5A17,17,0,0,0,215.5,39.5ZM121,134.2l-40,32a7.9,7.9,0,0,1-5,1.8,7.8,7.8,0,0,1-6.2-3A7.9,7.9,0,0,1,71,153.8L103.2,128,71,102.2A8,8,0,1,1,81,89.8l40,32a7.9,7.9,0,0,1,0,12.4ZM180,168H140a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 96 120 128 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="160" x2="176" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 96 120 128 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="160" x2="176" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `book_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.book_open />
  <Heroicons.book_open class="w-4 h-4" />
  <Heroicons.book_open solid />
  <Heroicons.book_open mini />
  <Heroicons.book_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def book_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88a32,32,0,0,1,32-32h64a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H160a32,32,0,0,0-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32V88A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88a32,32,0,0,1,32-32h64a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H160a32,32,0,0,0-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32V88A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,56H160a32,32,0,0,0-32,32A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32,32,32,0,0,1,32-32h64a8,8,0,0,0,8-8V64A8,8,0,0,0,224,56Z" opacity="0.2"/><path d="M128,88a32,32,0,0,1,32-32h64a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H160a32,32,0,0,0-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32V88A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208a24.1,24.1,0,0,1,24,24,8,8,0,0,0,16,0,24.1,24.1,0,0,1,24-24h64a16,16,0,0,0,16-16V64a16,16,0,0,0-16-16H176a40,40,0,0,0-40,40v80a8,8,0,0,1-16,0V88A40,40,0,0,0,80,48H32A16,16,0,0,0,16,64V192a16,16,0,0,0,16,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88a32,32,0,0,1,32-32h64a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H160a32,32,0,0,0-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32V88A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,88a32,32,0,0,1,32-32h64a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H160a32,32,0,0,0-32,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,192a8,8,0,0,0,8,8H96a32,32,0,0,1,32,32V88A32,32,0,0,0,96,56H32a8,8,0,0,0-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_t` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_t />
  <Heroicons.text_t class="w-4 h-4" />
  <Heroicons.text_t solid />
  <Heroicons.text_t mini />
  <Heroicons.text_t outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_t(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 56 208 56 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48 88 48 56 208 56 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 88 48 56 208 56 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,48H48a8,8,0,0,0-8,8V88a8,8,0,0,0,16,0V64h64V192H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16H136V64h64V88a8,8,0,0,0,16,0V56A8,8,0,0,0,208,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 88 48 56 208 56 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="56" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 88 48 56 208 56 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="200" x2="160" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_left_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_left_down />
  <Heroicons.arrow_u_left_down class="w-4 h-4" />
  <Heroicons.arrow_u_left_down solid />
  <Heroicons.arrow_u_left_down mini />
  <Heroicons.arrow_u_left_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_left_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 176 88 224 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,176V88a56,56,0,0,0-56-56h0A56,56,0,0,0,88,88V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 176 88 224 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,176V88a56,56,0,0,0-56-56h0A56,56,0,0,0,88,88V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 176 88 224 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,176V88a56,56,0,0,0-56-56h0A56,56,0,0,0,88,88V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,88v88a8,8,0,0,1-16,0V88a48,48,0,0,0-96,0v80h40a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,40,168H80V88a64,64,0,0,1,128,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 176 88 224 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,176V88a56,56,0,0,0-56-56h0A56,56,0,0,0,88,88V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="136 176 88 224 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,176V88a56,56,0,0,0-56-56h0A56,56,0,0,0,88,88V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `toggle_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.toggle_right />
  <Heroicons.toggle_right class="w-4 h-4" />
  <Heroicons.toggle_right solid />
  <Heroicons.toggle_right mini />
  <Heroicons.toggle_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def toggle_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="176" cy="128" r="32" opacity="0.2"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,56H80a72,72,0,0,0,0,144h96a72,72,0,0,0,0-144Zm0,112a40,40,0,1,1,40-40A40,40,0,0,1,176,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="16" y="64" width="224" height="128" rx="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_notch_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_notch_plus />
  <Heroicons.folder_notch_plus class="w-4 h-4" />
  <Heroicons.folder_notch_plus solid />
  <Heroicons.folder_notch_plus mini />
  <Heroicons.folder_notch_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_notch_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="124" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="124" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" opacity="0.2"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="124" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72ZM40,96V64H93.3l21.4,16L93.3,96Zm112,60H136v16a8,8,0,0,1-16,0V156H104a8,8,0,0,1,0-16h16V124a8,8,0,0,1,16,0v16h16a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="124" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="124" x2="128" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link_simple_horizontal_break` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link_simple_horizontal_break />
  <Heroicons.link_simple_horizontal_break class="w-4 h-4" />
  <Heroicons.link_simple_horizontal_break solid />
  <Heroicons.link_simple_horizontal_break mini />
  <Heroicons.link_simple_horizontal_break outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link_simple_horizontal_break(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,168H64a40,40,0,0,1,0-80h40a8,8,0,0,0,0-16H64a56,56,0,0,0,0,112h40a8,8,0,0,0,0-16Z"/><path d="M192,72H152a8,8,0,0,0,0,16h40a40,40,0,0,1,0,80H152a8,8,0,0,0,0,16h40a56,56,0,0,0,0-112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tiktok_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tiktok_logo />
  <Heroicons.tiktok_logo class="w-4 h-4" />
  <Heroicons.tiktok_logo solid />
  <Heroicons.tiktok_logo mini />
  <Heroicons.tiktok_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tiktok_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" opacity="0.2"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,84v40a8,8,0,0,1-8,8,103.2,103.2,0,0,1-48-11.7V156A76,76,0,1,1,86.6,81.2a8,8,0,0,1,6.5,1.7A7.8,7.8,0,0,1,96,89.1v41.6a7.9,7.9,0,0,1-4.6,7.2A20,20,0,1,0,120,156V28a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8,48,48,0,0,0,48,48A8,8,0,0,1,232,84Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,106a95.9,95.9,0,0,0,56,18V84a56,56,0,0,1-56-56H128V156a28,28,0,1,1-40-25.3V89.1A68,68,0,1,0,168,156Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microphone` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microphone />
  <Heroicons.microphone class="w-4 h-4" />
  <Heroicons.microphone solid />
  <Heroicons.microphone mini />
  <Heroicons.microphone outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microphone(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M199.6,136a72.1,72.1,0,0,1-143.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="136" rx="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,120a80,80,0,0,1-160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="144" rx="40" opacity="0.2"/><rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M199.6,136a72.1,72.1,0,0,1-143.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,176a48,48,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48,48,0,0,0,128,176Z"/><path d="M200.4,128.1a8,8,0,0,0-8.8,7,64,64,0,0,1-127.2,0,8,8,0,0,0-8.8-7,7.9,7.9,0,0,0-7.1,8.8A79.7,79.7,0,0,0,120,207.3V232a8,8,0,0,0,16,0V207.3a79.7,79.7,0,0,0,71.5-70.4A7.9,7.9,0,0,0,200.4,128.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M199.6,136a72.1,72.1,0,0,1-143.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M199.6,136a72.1,72.1,0,0,1-143.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `image` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.image />
  <Heroicons.image class="w-4 h-4" />
  <Heroicons.image solid />
  <Heroicons.image mini />
  <Heroicons.image outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def image(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="100" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="156" cy="100" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184V56a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="156" cy="100" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,100h0a12,12,0,0,1-12,12,12,12,0,0,1-12-12,12,12,0,0,1,24,0Zm64-44V184h0v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V168h0V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,164.7V56H40v92.7L76.7,112a16.1,16.1,0,0,1,22.6,0L144,156.7,164.7,136a16.1,16.1,0,0,1,22.6,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="156" cy="100" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,168l50.3-50.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,0,11.4,0l20.6-20.6a8,8,0,0,1,11.4,0L224,184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="156" cy="100" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `television_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.television_simple />
  <Heroicons.television_simple class="w-4 h-4" />
  <Heroicons.television_simple solid />
  <Heroicons.television_simple mini />
  <Heroicons.television_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def television_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" opacity="0.2"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,80V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V80A16,16,0,0,1,40,64h68.7L74.3,29.7A8.1,8.1,0,0,1,85.7,18.3L128,60.7l42.3-42.4a8.1,8.1,0,0,1,11.4,11.4L147.3,64H216A16,16,0,0,1,232,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="136" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 24 128 72 176 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_line` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_line />
  <Heroicons.chart_line class="w-4 h-4" />
  <Heroicons.chart_line solid />
  <Heroicons.chart_line mini />
  <Heroicons.chart_line outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_line(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 160 152 96 104 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 96 160 152 96 104 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 160 152 96 104 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,200H40V163.6l56.4-49.3,58.8,44.1a8,8,0,0,0,10.1-.4l64-56a8,8,0,1,0-10.6-12l-59.1,51.7L100.8,97.6a8,8,0,0,0-10.1.4L40,142.4V48a8,8,0,0,0-16,0V208a8,8,0,0,0,8,8H224a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 96 160 152 96 104 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 96 160 152 96 104 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `mouse_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.mouse_simple />
  <Heroicons.mouse_simple class="w-4 h-4" />
  <Heroicons.mouse_simple solid />
  <Heroicons.mouse_simple mini />
  <Heroicons.mouse_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def mouse_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="116" x2="128" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" opacity="0.2"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,24H108A64.1,64.1,0,0,0,44,88v80a64.1,64.1,0,0,0,64,64h40a64.1,64.1,0,0,0,64-64V88A64.1,64.1,0,0,0,148,24Zm-12,88a8,8,0,0,1-16,0V64a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="112" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="32" width="152" height="192" rx="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="112" x2="128" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ladder_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ladder_simple />
  <Heroicons.ladder_simple class="w-4 h-4" />
  <Heroicons.ladder_simple solid />
  <Heroicons.ladder_simple mini />
  <Heroicons.ladder_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ladder_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="32" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="32" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="184" x2="192" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="32" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="32" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="184" x2="192" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="32" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="32" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="184" x2="192" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24a8,8,0,0,0-8,8V64H72V32a8,8,0,0,0-16,0V224a8,8,0,0,0,16,0V192H184v32a8,8,0,0,0,16,0V32A8,8,0,0,0,192,24Zm-8,56v40H72V80ZM72,176V136H184v40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="32" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="32" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="184" x2="192" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="32" x2="64" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="32" x2="192" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="72" x2="192" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="184" x2="192" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `puzzle_piece` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.puzzle_piece />
  <Heroicons.puzzle_piece class="w-4 h-4" />
  <Heroicons.puzzle_piece solid />
  <Heroicons.puzzle_piece mini />
  <Heroicons.puzzle_piece outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def puzzle_piece(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" opacity="0.2"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.8,224H208a16,16,0,0,0,16-16V170.3a7.9,7.9,0,0,0-3.6-6.6,7.7,7.7,0,0,0-7.5-.7,24.3,24.3,0,0,1-8.9,1.7c-13.2,0-24-11.1-24-24.7s10.8-24.7,24-24.7a24.3,24.3,0,0,1,8.9,1.7,7.7,7.7,0,0,0,7.5-.7,7.9,7.9,0,0,0,3.6-6.6V72a16,16,0,0,0-16-16H171.8c.1-1.3.2-2.7.2-4a36,36,0,0,0-72,0c0,1.3.1,2.7.2,4H64A16,16,0,0,0,48,72v32.2l-4-.2a36,36,0,0,0,0,72l4-.2V208a16,16,0,0,0,16,16h42.2"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M64,216a8,8,0,0,1-8-8V165.3a27.6,27.6,0,0,1-14.1,2.6A28,28,0,1,1,56,114.7V72a8,8,0,0,1,8-8h46.7a27.6,27.6,0,0,1-2.6-14.1A28,28,0,1,1,161.3,64H208a8,8,0,0,1,8,8v42.7a27.6,27.6,0,0,0-14.1-2.6A28,28,0,1,0,216,165.3V208a8,8,0,0,1-8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_in_cardinal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_in_cardinal />
  <Heroicons.arrows_in_cardinal class="w-4 h-4" />
  <Heroicons.arrows_in_cardinal solid />
  <Heroicons.arrows_in_cardinal mini />
  <Heroicons.arrows_in_cardinal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_in_cardinal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 188.3 128 160 99.7 188.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="232" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="99.7 67.7 128 96 156.3 67.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="67.7 156.3 96 128 67.7 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="188.3 99.7 160 128 188.3 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 188.3 128 160 99.7 188.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="232" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="99.7 67.7 128 96 156.3 67.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="24" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="67.7 156.3 96 128 67.7 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="188.3 99.7 160 128 188.3 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 188.3 128 160 99.7 188.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="232" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="99.7 67.7 128 96 156.3 67.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="67.7 156.3 96 128 67.7 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="188.3 99.7 160 128 188.3 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.9,182.6a8,8,0,0,1-5.6,13.7H136V232a8,8,0,0,1-16,0V196.3H99.7a8,8,0,0,1-5.6-13.7l28.2-28.3a8.1,8.1,0,0,1,11.4,0Zm-39.6-80.9a8.2,8.2,0,0,0,11.4,0l28.2-28.3a8,8,0,0,0-5.6-13.7H136V24a8,8,0,0,0-16,0V59.7H99.7a8,8,0,0,0-5.6,13.7Zm-20.6,20.6L73.4,94.1a8,8,0,0,0-13.7,5.6V120H24a8,8,0,0,0,0,16H59.7v20.3a8.2,8.2,0,0,0,5,7.4,7.7,7.7,0,0,0,3,.6,8,8,0,0,0,5.7-2.4l28.3-28.2A8.1,8.1,0,0,0,101.7,122.3ZM232,120H196.3V99.7a8,8,0,0,0-13.7-5.6l-28.3,28.2a8.1,8.1,0,0,0,0,11.4l28.3,28.2a8,8,0,0,0,5.7,2.4,7.7,7.7,0,0,0,3-.6,8.2,8.2,0,0,0,5-7.4V136H232a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 188.3 128 160 99.7 188.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="232" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="99.7 67.7 128 96 156.3 67.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="24" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="67.7 156.3 96 128 67.7 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="188.3 99.7 160 128 188.3 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="156.3 188.3 128 160 99.7 188.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="232" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="99.7 67.7 128 96 156.3 67.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="24" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="67.7 156.3 96 128 67.7 99.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="128" x2="96" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="188.3 99.7 160 128 188.3 156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_right />
  <Heroicons.arrow_circle_right class="w-4 h-4" />
  <Heroicons.arrow_circle_right solid />
  <Heroicons.arrow_circle_right mini />
  <Heroicons.arrow_circle_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="134.1 161.9 168 128 134.1 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="134.1 161.9 168 128 134.1 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="134.1 161.9 168 128 134.1 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm47.4,107.1a8.7,8.7,0,0,1-1.8,2.6l-33.9,33.9a7.6,7.6,0,0,1-5.6,2.3,7.8,7.8,0,0,1-5.7-2.3,8,8,0,0,1,0-11.3L148.7,136H88a8,8,0,0,1,0-16h60.7L128.4,99.7a8,8,0,0,1,11.3-11.3l33.9,33.9a8.7,8.7,0,0,1,1.8,2.6A8.3,8.3,0,0,1,175.4,131.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="134.1 161.9 168 128 134.1 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="134.1 161.9 168 128 134.1 94.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_four />
  <Heroicons.text_h_four class="w-4 h-4" />
  <Heroicons.text_h_four solid />
  <Heroicons.text_h_four mini />
  <Heroicons.text_h_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="212 100 188 168 236 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="136" x2="236" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="212 100 188 168 236 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="236" y1="136" x2="236" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="212 100 188 168 236 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="136" x2="236" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0Zm84,72a8,8,0,0,0-8,8v24H199.3l20.2-57.3a8,8,0,0,0-15-5.4l-24,68a7.9,7.9,0,0,0,1,7.3A8,8,0,0,0,188,176h40v24a8,8,0,0,0,16,0V136A8,8,0,0,0,236,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="212 100 188 168 236 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="236" y1="136" x2="236" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="212 100 188 168 236 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="236" y1="136" x2="236" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_right />
  <Heroicons.arrow_elbow_right class="w-4 h-4" />
  <Heroicons.arrow_elbow_right solid />
  <Heroicons.arrow_elbow_right mini />
  <Heroicons.arrow_elbow_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 232 80 232 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="24 96 120 192 232 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 232 80 232 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="24 96 120 192 232 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 232 80 232 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="24 96 120 192 232 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,80v72a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L196,127.3l-70.3,70.4a8.2,8.2,0,0,1-11.4,0l-96-96A8.1,8.1,0,0,1,29.7,90.3L120,180.7,184.7,116,154.3,85.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,160,72h72A8,8,0,0,1,240,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 232 80 232 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="24 96 120 192 232 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 80 232 80 232 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="24 96 120 192 232 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection />
  <Heroicons.selection class="w-4 h-4" />
  <Heroicons.selection solid />
  <Heroicons.selection mini />
  <Heroicons.selection outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,40a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,40Zm-8,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104Zm0,72a8,8,0,0,0-8,8v24H184a8,8,0,0,0,0,16h24a16,16,0,0,0,16-16V184A8,8,0,0,0,216,176ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM72,32H48A16,16,0,0,0,32,48V72a8,8,0,0,0,16,0V48H72a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,216h24a8,8,0,0,0,8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,40H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `toilet_paper` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.toilet_paper />
  <Heroicons.toilet_paper class="w-4 h-4" />
  <Heroicons.toilet_paper solid />
  <Heroicons.toilet_paper mini />
  <Heroicons.toilet_paper outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def toilet_paper(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="120" r="12"/><ellipse cx="64" cy="120" rx="40" ry="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,120v88a8,8,0,0,0,8,8H224a8,8,0,0,0,8-8V120c0-44.2-17.9-80-40-80H64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="120" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="120" x2="176" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="120" x2="232" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="120" r="16"/><ellipse cx="64" cy="120" rx="40" ry="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,120v88a8,8,0,0,0,8,8H224a8,8,0,0,0,8-8V120c0-44.2-17.9-80-40-80H64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="120" x2="124" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="120" x2="172" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="120" x2="232" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="64" cy="120" rx="40" ry="80" opacity="0.2"/><circle cx="64" cy="120" r="12"/><ellipse cx="64" cy="120" rx="40" ry="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,120v88a8,8,0,0,0,8,8H224a8,8,0,0,0,8-8V120c0-44.2-17.9-80-40-80H64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="120" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="120" x2="176" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="120" x2="232" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,120a8,8,0,0,1-8,8H160a8,8,0,0,1,0-16h16A8,8,0,0,1,184,120Zm56,0v88a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V186.3C87.4,200.4,76.2,208,64,208c-13.9,0-26.5-9.9-35.4-27.9C20.5,163.9,16,142.6,16,120s4.5-43.9,12.6-60.1C37.5,41.9,50.1,32,64,32H192c13.9,0,26.5,9.9,35.4,27.9C235.5,76.1,240,97.4,240,120ZM76,120a12,12,0,1,0-12,12A12,12,0,0,0,76,120Zm148,8H208a8,8,0,0,1,0-16h15.8c-2-38.1-17.6-64-31.8-64H92.1a65,65,0,0,1,7.3,11.9c7.2,14.2,11.5,32.5,12.4,52.1H128a8,8,0,0,1,0,16H112v80H224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="120" r="10"/><ellipse cx="64" cy="120" rx="40" ry="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,120v88a8,8,0,0,0,8,8H224a8,8,0,0,0,8-8V120c0-44.2-17.9-80-40-80H64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="120" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="120" x2="176" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="120" x2="232" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="120" r="8"/><ellipse cx="64" cy="120" rx="40" ry="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,120v88a8,8,0,0,0,8,8H224a8,8,0,0,0,8-8V120c0-44.2-17.9-80-40-80H64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="120" x2="128" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="120" x2="176" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="120" x2="232" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `train` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.train />
  <Heroicons.train class="w-4 h-4" />
  <Heroicons.train solid />
  <Heroicons.train mini />
  <Heroicons.train outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def train(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44" y1="72" x2="212" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="172" r="12"/><circle cx="172" cy="172" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="72" x2="212" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="72" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="88" cy="168" r="16"/><circle cx="168" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="72" width="168" height="56" opacity="0.2"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44" y1="72" x2="212" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="72" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="84" cy="172" r="12"/><circle cx="172" cy="172" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,24H68A32.1,32.1,0,0,0,36,56V184a32.1,32.1,0,0,0,32,32H80L65.6,235.2a8,8,0,0,0,1.6,11.2A7.7,7.7,0,0,0,72,248a8,8,0,0,0,6.4-3.2L100,216h56l21.6,28.8A8,8,0,0,0,184,248a7.7,7.7,0,0,0,4.8-1.6,8,8,0,0,0,1.6-11.2L176,216h12a32.1,32.1,0,0,0,32-32V56A32.1,32.1,0,0,0,188,24ZM84,184a12,12,0,1,1,12-12A12,12,0,0,1,84,184Zm36-64H52V80h68Zm52,64a12,12,0,1,1,12-12A12,12,0,0,1,172,184Zm32-64H136V80h68Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="44" y1="72" x2="212" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="72" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="172" cy="172" r="10"/><circle cx="84" cy="172" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="44" y1="72" x2="212" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="44" y="32" width="168" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="72" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="84" cy="172" r="8"/><circle cx="172" cy="172" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `warning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.warning />
  <Heroicons.warning class="w-4 h-4" />
  <Heroicons.warning solid />
  <Heroicons.warning mini />
  <Heroicons.warning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def warning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="176" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" opacity="0.2"/><line x1="128" y1="112" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="180" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.7,188,148.8,36a24,24,0,0,0-41.6,0h0L19.3,188A23.9,23.9,0,0,0,40,224H216a23.9,23.9,0,0,0,20.7-36ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="180" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="104" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="180" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hands_clapping` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hands_clapping />
  <Heroicons.hands_clapping class="w-4 h-4" />
  <Heroicons.hands_clapping solid />
  <Heroicons.hands_clapping mini />
  <Heroicons.hands_clapping outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hands_clapping(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M51.8,121.9a18,18,0,1,0-31.2,18l37,64.1a72,72,0,0,0,124.7-72l-17-29.5a18,18,0,0,0-31.1,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M107,145.5,69,79.7a18,18,0,1,0-31.2,18l38,65.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M150.2,148.3l-42-72.8A18,18,0,1,0,77,93.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M99,67.7,88.7,49.8a18,18,0,1,0-31.2,18l2.4,4.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,191.5a72.1,72.1,0,0,0,14.1-89.4l-17-29.4a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.2,94.7l-28.3-49a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176.8" y1="11.3" x2="172.7" y2="26.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="207.1" y1="25.4" x2="197.9" y2="38.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.6" y1="48.9" x2="217.5" y2="58.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,114.4l-26-45a20,20,0,0,1,34.6-20l40,69.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M85.4,148.3l-42-72.8A20,20,0,0,1,78,55.5l42,72.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168.6,132.5l-18-31.2a20,20,0,0,1,34.7-20l20,34.7A80,80,0,0,1,66.7,196l-42-72.8a20,20,0,0,1,34.7-20l22,38.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="12" x2="156" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="204" y1="24.9" x2="196" y2="38.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="239.1" y1="60" x2="225.3" y2="68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77,93.5,69,79.7a17.6,17.6,0,0,0-9.1-7.8h0l-2.4-4.1a18,18,0,1,1,31.2-18L99,67.7h0A18,18,0,0,0,77,93.5" opacity="0.2"/><path d="M156.2,94.7a18,18,0,0,0-22,25.8l-26-45A17.9,17.9,0,0,0,99,67.7h0l-2.3-4a18,18,0,1,1,31.2-18l28.3,49Z" opacity="0.2"/><path d="M153.9,90.7a18,18,0,1,1,31.2-18l17,29.4A72.1,72.1,0,0,1,188,191.5h0a71.5,71.5,0,0,0-5.7-59.5l-17-29.5a18.2,18.2,0,0,0-9.1-7.8h0Z" opacity="0.2"/><path d="M51.8,121.9a18,18,0,1,0-31.2,18l37,64.1a72,72,0,0,0,124.7-72l-17-29.5a18,18,0,0,0-31.1,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M107,145.5,69,79.7a18,18,0,1,0-31.2,18l38,65.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M150.2,148.3l-42-72.8A18,18,0,1,0,77,93.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M99,67.7,88.7,49.8a18,18,0,1,0-31.2,18l2.4,4.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,191.5a72.1,72.1,0,0,0,14.1-89.4l-17-29.4a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.2,94.7l-28.3-49a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176.8" y1="11.3" x2="172.7" y2="26.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="207.1" y1="25.4" x2="197.9" y2="38.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.6" y1="48.9" x2="217.5" y2="58.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.5,100.1l-17-29.4a21.9,21.9,0,0,0-30-8.1A21.5,21.5,0,0,0,148.9,74L131.3,43.7a21.9,21.9,0,0,0-30-8.1A21.5,21.5,0,0,0,91.7,47a22.1,22.1,0,0,0-29.6-7.3A21.9,21.9,0,0,0,51.9,53.1a20.9,20.9,0,0,0-.4,9.6,26.5,26.5,0,0,0-11.1,3.4,26.1,26.1,0,0,0-9.5,35.6l2,3.4a24.3,24.3,0,0,0-9.7,3.3,26,26,0,0,0-9.5,35.5l37,64.1a80,80,0,0,0,146.6-19.3l.3-1.3A76.5,76.5,0,0,0,205.5,100.1Zm-23.7,84.5A63.3,63.3,0,0,1,152,223.4,64,64,0,0,1,64.6,200l-37-64.1a10,10,0,0,1,11.2-14.7,10.3,10.3,0,0,1,6.1,4.7h0l24,41.6a8.2,8.2,0,0,0,6.9,4,8,8,0,0,0,6.9-12l-38-65.8a10,10,0,0,1,17.4-10l38,65.8a8,8,0,1,0,13.8-8l-30-52h0a10.1,10.1,0,0,1,3.7-13.7,10,10,0,0,1,13.6,3.7l42,72.8a8.2,8.2,0,0,0,7,4,8.6,8.6,0,0,0,4-1.1,8,8,0,0,0,2.9-10.9l-16-27.8h0a9.9,9.9,0,0,1-1-7.5,9.6,9.6,0,0,1,4.7-6.1,9.4,9.4,0,0,1,7.5-1,9.8,9.8,0,0,1,6.1,4.6l17,29.5A63.5,63.5,0,0,1,181.8,184.6ZM165,24.7l4.1-15.5a8,8,0,1,1,15.5,4.1l-4.2,15.5a7.9,7.9,0,0,1-7.7,5.9l-2.1-.2A8,8,0,0,1,165,24.7Zm26.3,9.2,9.2-13.1a8.1,8.1,0,0,1,11.2-2A8,8,0,0,1,213.6,30l-9.2,13.1A7.9,7.9,0,0,1,193.3,45,8,8,0,0,1,191.3,33.9Zm43.9,21.6-13.1,9.2a8.6,8.6,0,0,1-4.6,1.4,8,8,0,0,1-4.6-14.5L226,42.4a8,8,0,0,1,11.2,1.9A8.1,8.1,0,0,1,235.2,55.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M51.8,121.9a18,18,0,1,0-31.2,18l37,64.1a72,72,0,0,0,124.7-72l-17-29.5a18,18,0,0,0-31.1,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M107,145.5,69,79.7a18,18,0,1,0-31.2,18l38,65.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M150.2,148.3l-42-72.8A18,18,0,1,0,77,93.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M99,67.7,88.7,49.8a18,18,0,1,0-31.2,18l2.4,4.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,191.5a72.1,72.1,0,0,0,14.1-89.4l-17-29.4a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M156.2,94.7l-28.3-49a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176.8" y1="11.3" x2="172.7" y2="26.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="207.1" y1="25.4" x2="197.9" y2="38.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="230.6" y1="48.9" x2="217.5" y2="58.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M51.8,121.9a18,18,0,1,0-31.2,18l37,64.1a72,72,0,0,0,124.7-72l-17-29.5a18,18,0,0,0-31.1,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M107,145.5,69,79.7a18,18,0,1,0-31.2,18l38,65.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M150.2,148.3l-42-72.8A18,18,0,1,0,77,93.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M99,67.7,88.7,49.8a18,18,0,1,0-31.2,18l2.4,4.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,191.5a72.1,72.1,0,0,0,14.1-89.4l-17-29.4a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M156.2,94.7l-28.3-49a18,18,0,1,0-31.2,18" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176.8" y1="11.3" x2="172.7" y2="26.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="207.1" y1="25.4" x2="197.9" y2="38.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="230.6" y1="48.9" x2="217.5" y2="58.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_left />
  <Heroicons.arrow_left class="w-4 h-4" />
  <Heroicons.arrow_left solid />
  <Heroicons.arrow_left mini />
  <Heroicons.arrow_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 56 40 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="112 56 40 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 56 40 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H120v64a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-72-72a8.1,8.1,0,0,1,0-11.4l72-72a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,120,56v64h96A8,8,0,0,1,224,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 56 40 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 56 40 128 112 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_inverse` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_inverse />
  <Heroicons.selection_inverse class="w-4 h-4" />
  <Heroicons.selection_inverse solid />
  <Heroicons.selection_inverse mini />
  <Heroicons.selection_inverse outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_inverse(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,216h24a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M42.3,42.3,213.7,213.7h0A8.4,8.4,0,0,0,216,208V48a8,8,0,0,0-8-8H48a8.4,8.4,0,0,0-5.7,2.3Z" opacity="0.2"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,216h24a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,216a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16h32A8,8,0,0,1,152,216ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM224,48a16,16,0,0,0-16-16H48a16.4,16.4,0,0,0-10.7,4.1l-.6.6-.6.6A16.4,16.4,0,0,0,32,48V72a8,8,0,0,0,16,0V59.3L196.7,208H184a8,8,0,0,0,0,16h24a16.4,16.4,0,0,0,10.7-4.1l.6-.6.6-.6A16.4,16.4,0,0,0,224,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,216h24a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,216h24a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `angular_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.angular_logo />
  <Heroicons.angular_logo class="w-4 h-4" />
  <Heroicons.angular_logo solid />
  <Heroicons.angular_logo mini />
  <Heroicons.angular_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def angular_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="164 160 128 88 92 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.7" y1="138.7" x2="153.3" y2="138.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="164 160 128 88 92 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100.7" y1="142.7" x2="155.3" y2="142.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" opacity="0.2"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="164 160 128 88 92 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.7" y1="138.7" x2="153.3" y2="138.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M227.1,64.6l-96-40a8.3,8.3,0,0,0-6.2,0l-96,40a8.1,8.1,0,0,0-4.8,8.5l16,120a8.1,8.1,0,0,0,4.3,6.1l80,40a8.5,8.5,0,0,0,7.2,0l80-40a8.1,8.1,0,0,0,4.3-6.1l16-120A8.1,8.1,0,0,0,227.1,64.6ZM167.6,167.2a9.4,9.4,0,0,1-3.6.8,8.1,8.1,0,0,1-7.2-4.4l-8.4-16.9H107.6l-8.4,16.9a8,8,0,0,1-14.4-7.2l36-72a8.1,8.1,0,0,1,14.4,0l36,72A8.2,8.2,0,0,1,167.6,167.2ZM128,105.9l12.4,24.8H115.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="164 160 128 88 92 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102.7" y1="138.7" x2="153.3" y2="138.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 232 208 192 224 72 128 32 32 72 48 192 128 232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="164 160 128 88 92 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102.7" y1="138.7" x2="153.3" y2="138.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gift` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gift />
  <Heroicons.gift class="w-4 h-4" />
  <Heroicons.gift solid />
  <Heroicons.gift mini />
  <Heroicons.gift outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gift(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="192" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M173.3,68.7C161.9,80,128,80,128,80s0-33.9,11.3-45.3a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.7,68.7C94.1,80,128,80,128,80s0-33.9-11.3-45.3a24,24,0,0,0-34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="192" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="80" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M173.3,68.7C161.9,80,128,80,128,80s0-33.9,11.3-45.3a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M82.7,68.7C94.1,80,128,80,128,80s0-33.9-11.3-45.3a24,24,0,0,0-34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="192" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M173.3,68.7C161.9,80,128,80,128,80s0-33.9,11.3-45.3a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M82.7,68.7C94.1,80,128,80,128,80s0-33.9-11.3-45.3a24,24,0,0,0-34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H181a32,32,0,0,0-47.3-42.9,29.2,29.2,0,0,0-5.7,8.2,29.2,29.2,0,0,0-5.7-8.2A32,32,0,0,0,75,72H40A16,16,0,0,0,24,88v32a16,16,0,0,0,16,16v64a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V136a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72ZM145,40.4A16,16,0,1,1,167.6,63c-4.9,5-19.2,7.7-31.3,8.7C137.3,59.6,140,45.3,145,40.4Zm-56.6,0a16.1,16.1,0,0,1,22.6,0c5,4.9,7.7,19.2,8.7,31.3-12.1-1-26.4-3.7-31.3-8.7A16.1,16.1,0,0,1,88.4,40.4ZM216,120H136v72a8,8,0,0,1-16,0V120H40V88h80v32h16V88h80v32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="192" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="80" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M173.3,68.7C161.9,80,128,80,128,80s0-33.9,11.3-45.3a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M82.7,68.7C94.1,80,128,80,128,80s0-33.9-11.3-45.3a24,24,0,0,0-34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="192" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,128v72a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="80" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M173.3,68.7C161.9,80,128,80,128,80s0-33.9,11.3-45.3a24,24,0,0,1,34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M82.7,68.7C94.1,80,128,80,128,80s0-33.9-11.3-45.3a24,24,0,0,0-34,34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `star_half` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.star_half />
  <Heroicons.star_half class="w-4 h-4" />
  <Heroicons.star_half solid />
  <Heroicons.star_half mini />
  <Heroicons.star_half outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def star_half(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="189.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220.2,116.6l8.7-7.3c5.9-4.9,2.9-14.8-4.8-15.3l-11.5-.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.1,168.9l-3.3-13.1a8.7,8.7,0,0,1,2.9-8.8l10-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M178.2,91l-13.1-.8a8.3,8.3,0,0,1-7.3-5.4L152.7,72,135.8,29.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7a8.2,8.2,0,0,1,8.8,0l11.5,7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M173,216.5l9.8,6.2c6.5,4.1,14.5-2,12.6-9.5l-2.8-10.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="189.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M220.2,116.6l8.7-7.3c5.9-4.9,2.9-14.8-4.8-15.3l-11.5-.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M173,216.5l9.8,6.2c6.5,4.1,14.5-2,12.6-9.5l-2.8-10.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M182,160.5l-1.2-4.7a8.7,8.7,0,0,1,2.9-8.8l3.4-2.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M169.6,90.5l-4.5-.3a8.3,8.3,0,0,1-7.3-5.4L152.7,72,135.8,29.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7a8.2,8.2,0,0,1,8.8,0l4.3,2.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,189.4a8.7,8.7,0,0,0-4.4,1.3L76.7,220.4c-7.7,4.9-17.3-2.4-15-11.4l13.5-53.2a8.7,8.7,0,0,0-2.9-8.8L27.1,109.3c-5.9-4.9-2.9-14.8,4.8-15.3l59-3.8a8.3,8.3,0,0,0,7.3-5.4l22-55.4A8.3,8.3,0,0,1,128,24h0Z" opacity="0.2"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="24" x2="128" y2="189.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.2,97.4A16.4,16.4,0,0,0,224.6,86l-59-3.8a.5.5,0,0,1-.4-.3l-22-55.5a16.3,16.3,0,0,0-30.4,0l-22,55.5a.5.5,0,0,1-.4.3L31.4,86A16.4,16.4,0,0,0,16.8,97.4,16.8,16.8,0,0,0,22,115.5l45.2,37.6a.8.8,0,0,1,.2.8L53.9,207a18.6,18.6,0,0,0,7,19.6,18,18,0,0,0,20.1.6l46.9-29.7h.2l50.5,31.9a16.1,16.1,0,0,0,8.7,2.6,16.8,16.8,0,0,0,9.5-3.1,16.6,16.6,0,0,0,6.3-17.7l-14.5-57.3a.8.8,0,0,1,.2-.8L234,115.5A16.8,16.8,0,0,0,239.2,97.4Zm-15.4,5.8-45.3,37.6a16.8,16.8,0,0,0-5.4,17l14.5,57.3c.1.4.1.5,0,.6a.7.7,0,0,1-.3.3h-.2L136.7,184a16,16,0,0,0-8.7-2.5V32c.1,0,.2,0,.3.3l22.1,55.5a16.4,16.4,0,0,0,14.1,10.4l59.1,3.8c.1,0,.2,0,.3.4S223.9,103.1,223.8,103.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="189.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M220.2,116.6l8.7-7.3c5.9-4.9,2.9-14.8-4.8-15.3l-11.5-.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184.1,168.9l-3.3-13.1a8.7,8.7,0,0,1,2.9-8.8l10-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M178.2,91l-13.1-.8a8.3,8.3,0,0,1-7.3-5.4L152.7,72,135.8,29.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7a8.2,8.2,0,0,1,8.8,0l11.5,7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M173,216.5l9.8,6.2c6.5,4.1,14.5-2,12.6-9.5l-2.8-10.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="189.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M220.2,116.6l8.7-7.3c5.9-4.9,2.9-14.8-4.8-15.3l-11.5-.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184.1,168.9l-3.3-13.1a8.7,8.7,0,0,1,2.9-8.8l10-8.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M178.2,91l-13.1-.8a8.3,8.3,0,0,1-7.3-5.4L152.7,72,135.8,29.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7a8.2,8.2,0,0,1,8.8,0l11.5,7.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M173,216.5l9.8,6.2c6.5,4.1,14.5-2,12.6-9.5l-2.8-10.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_one` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_one />
  <Heroicons.number_square_one class="w-4 h-4" />
  <Heroicons.number_square_one solid />
  <Heroicons.number_square_one mini />
  <Heroicons.number_square_one outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_one(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM140,176a8,8,0,0,1-16,0V99l-11.6,7.6a7.8,7.8,0,0,1-11-2.2,8,8,0,0,1,2.2-11.1l24-16A8,8,0,0,1,140,84Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 100 132 84 132 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_three` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_three />
  <Heroicons.number_circle_three class="w-4 h-4" />
  <Heroicons.number_circle_three solid />
  <Heroicons.number_circle_three mini />
  <Heroicons.number_circle_three outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_three(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm21.5,153.5a36.2,36.2,0,0,1-51,0,8.1,8.1,0,0,1,11.4-11.4A19.9,19.9,0,1,0,124,132a8.1,8.1,0,0,1-7.1-4.3,8,8,0,0,1,.5-8.3L136.6,92H104a8,8,0,0,1,0-16h48a8.1,8.1,0,0,1,7.1,4.3,8,8,0,0,1-.5,8.3l-21.1,30a37.9,37.9,0,0,1,12,7.9,36.2,36.2,0,0,1,0,51Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,84h48l-28,40a28,28,0,1,1-19.8,47.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `placeholder` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.placeholder />
  <Heroicons.placeholder class="w-4 h-4" />
  <Heroicons.placeholder solid />
  <Heroicons.placeholder mini />
  <Heroicons.placeholder outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def placeholder(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM187.3,187.3a7.7,7.7,0,0,1-5.6,2.4,8,8,0,0,1-5.7-2.4L68.7,80A8,8,0,1,1,80,68.7L187.3,176A8,8,0,0,1,187.3,187.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="42.3" y1="42.3" x2="213.7" y2="213.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `house_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.house_simple />
  <Heroicons.house_simple class="w-4 h-4" />
  <Heroicons.house_simple solid />
  <Heroicons.house_simple mini />
  <Heroicons.house_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def house_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" opacity="0.2"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M218.8,103.7h0L138.8,31a16,16,0,0,0-21.6,0l-80,72.7A16,16,0,0,0,32,115.5V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V115.5A16,16,0,0,0,218.8,103.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.4,109.6l-80-72.7a8,8,0,0,0-10.8,0l-80,72.7a8.3,8.3,0,0,0-2.6,5.9V208a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V115.5A8.3,8.3,0,0,0,213.4,109.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_in_line_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_in_line_vertical />
  <Heroicons.arrows_in_line_vertical class="w-4 h-4" />
  <Heroicons.arrows_in_line_vertical solid />
  <Heroicons.arrows_in_line_vertical mini />
  <Heroicons.arrows_in_line_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_in_line_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="16" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 64 128 96 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="240" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 192 128 160 160 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="12" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 56 128 88 96 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="244" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="96 200 128 168 160 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="16" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 64 128 96 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="240" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 192 128 160 160 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM122.3,101.7a8.2,8.2,0,0,0,11.4,0l32-32a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,160,56H136V16a8,8,0,0,0-16,0V56H96a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8Zm11.4,52.6a8.1,8.1,0,0,0-11.4,0l-32,32a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,96,200h24v40a8,8,0,0,0,16,0V200h24a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="16" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 64 128 96 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="240" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="96 192 128 160 160 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="16" x2="128" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 64 128 96 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="240" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="96 192 128 160 160 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pen_nib_straight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pen_nib_straight />
  <Heroicons.pen_nib_straight class="w-4 h-4" />
  <Heroicons.pen_nib_straight solid />
  <Heroicons.pen_nib_straight mini />
  <Heroicons.pen_nib_straight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pen_nib_straight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="152" x2="128" y2="248" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,72V32a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,72,44.6,127.4a8.2,8.2,0,0,0,.7,8.3L128,248l82.7-112.3a8.2,8.2,0,0,0,.7-8.3L184,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="156" x2="128" y2="244" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="132" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,72V32a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="72 72 42.5 131.8 128 244 213.5 131.8 184 72 72 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M211.4,127.4,184,72H72L44.6,127.4a8.2,8.2,0,0,0,.7,8.3L128,248l82.7-112.3A8.2,8.2,0,0,0,211.4,127.4ZM128,152a20,20,0,1,1,20-20A20.1,20.1,0,0,1,128,152Z" opacity="0.2"/><line x1="128" y1="152" x2="128" y2="248" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,72V32a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,72,44.6,127.4a8.2,8.2,0,0,0,.7,8.3L128,248l82.7-112.3a8.2,8.2,0,0,0,.7-8.3L184,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="132" r="16"/><path d="M218.6,123.9,192,70.1V32a16,16,0,0,0-16-16H80A16,16,0,0,0,64,32V70.1L37.4,123.9a16.1,16.1,0,0,0,1.5,16.6l73.9,100.3a4,4,0,0,0,7.2-2.4V163a32,32,0,1,1,16,0v75.4a4,4,0,0,0,7.2,2.4l73.9-100.3A16.1,16.1,0,0,0,218.6,123.9ZM176,64H80V32h96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="152" x2="128" y2="248" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,72V32a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,72,44.6,127.4a8.2,8.2,0,0,0,.7,8.3L128,248l82.7-112.3a8.2,8.2,0,0,0,.7-8.3L184,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="152" x2="128" y2="248" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="132" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,72V32a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,72,44.6,127.4a8.2,8.2,0,0,0,.7,8.3L128,248l82.7-112.3a8.2,8.2,0,0,0,.7-8.3L184,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_slash />
  <Heroicons.wifi_slash class="w-4 h-4" />
  <Heroicons.wifi_slash solid />
  <Heroicons.wifi_slash mini />
  <Heroicons.wifi_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M107.1,57.5A143.8,143.8,0,0,1,128,56,145.6,145.6,0,0,1,230.9,98.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M25.1,98.2A145.7,145.7,0,0,1,72.4,66.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.1,107A97.5,97.5,0,0,1,197,132.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59,132.1A98.7,98.7,0,0,1,108,106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.9,166.1a50.9,50.9,0,0,1,67.6-2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M25,98.2A147.2,147.2,0,0,1,72.4,66.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59,132.1A98.3,98.3,0,0,1,108,106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92.9,166.1a50.9,50.9,0,0,1,67.6-2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M117,56.4c3.6-.3,7.3-.4,11-.4A145.6,145.6,0,0,1,230.9,98.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M167.8,112.3A99.2,99.2,0,0,1,197,132.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M166.6,170.5,134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6a8.1,8.1,0,0,1,1.2-11.7A177.8,177.8,0,0,1,60.1,53.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94.2,43.2A179.3,179.3,0,0,1,235.8,75.9,8,8,0,0,1,237,87.5l-49.5,58.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.9,34.6A8,8,0,0,0,42,45.4l4.7,5.1A182.8,182.8,0,0,0,15.3,69.6,15.6,15.6,0,0,0,9.1,80.5a16.3,16.3,0,0,0,3.8,12.3L115.8,214a15.9,15.9,0,0,0,24.3.1l26.7-31.5,35.3,38.8A8.2,8.2,0,0,0,208,224a7.8,7.8,0,0,0,5.4-2.1,8,8,0,0,0,.6-11.3Z"/><path d="M246.9,80.5a15.6,15.6,0,0,0-6.2-10.9A188,188,0,0,0,92.6,35.3a8.3,8.3,0,0,0-6.1,5.4,8.2,8.2,0,0,0,1.7,7.9l93.4,102.7a8.3,8.3,0,0,0,5.9,2.6h.2a8.3,8.3,0,0,0,5.9-2.8l49.6-58.4A16.4,16.4,0,0,0,246.9,80.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M107.1,57.5A143.8,143.8,0,0,1,128,56,145.6,145.6,0,0,1,230.9,98.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M25.1,98.2A145.7,145.7,0,0,1,72.4,66.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152.1,107A97.5,97.5,0,0,1,197,132.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59,132.1A98.3,98.3,0,0,1,108,106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.9,166.1a50.9,50.9,0,0,1,67.6-2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M107.1,57.5A143.8,143.8,0,0,1,128,56,145.6,145.6,0,0,1,230.9,98.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M25.1,98.2A145.7,145.7,0,0,1,72.4,66.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152.1,107A97.5,97.5,0,0,1,197,132.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59,132.1A98.3,98.3,0,0,1,108,106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.9,166.1a50.9,50.9,0,0,1,67.6-2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clipboard` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clipboard />
  <Heroicons.clipboard class="w-4 h-4" />
  <Heroicons.clipboard solid />
  <Heroicons.clipboard mini />
  <Heroicons.clipboard outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clipboard(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40a40,40,0,0,1,8,24v8H88V64a40,40,0,0,1,8-24H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8Z" opacity="0.2"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,32H163.7a47.8,47.8,0,0,0-71.4,0H56A16,16,0,0,0,40,48V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm-72,0a32.1,32.1,0,0,1,32,32H96A32.1,32.1,0,0,1,128,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_left_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_left_up />
  <Heroicons.arrow_elbow_left_up class="w-4 h-4" />
  <Heroicons.arrow_elbow_left_up solid />
  <Heroicons.arrow_elbow_left_up mini />
  <Heroicons.arrow_elbow_left_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_left_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 80 48 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 192 80 192 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 80 48 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 192 80 192 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 80 48 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 192 80 192 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,192a8,8,0,0,1-8,8H80a8,8,0,0,1-8-8V104H32a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,128,104H88v80H224A8,8,0,0,1,232,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 80 48 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 192 80 192 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 96 80 48 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 192 80 192 80 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `headset` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.headset />
  <Heroicons.headset class="w-4 h-4" />
  <Heroicons.headset solid />
  <Heroicons.headset mini />
  <Heroicons.headset outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def headset(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V128a96,96,0,0,0-96.8-96A96,96,0,0,0,32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M225.5,184v24a32,32,0,0,1-32,32H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V128a96,96,0,0,0-96.8-96A96,96,0,0,0,32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M225.5,184v24a32,32,0,0,1-32,32H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16Z" opacity="0.2"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16Z" opacity="0.2"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V128a96,96,0,0,0-96.8-96A96,96,0,0,0,32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M225.5,184v24a32,32,0,0,1-32,32H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M233.5,128v80a40.1,40.1,0,0,1-40,40H136a8,8,0,0,1,0-16h57.5a24.1,24.1,0,0,0,24-24v-1.4a23.6,23.6,0,0,1-8,1.4h-16a24,24,0,0,1-24-24V144a24,24,0,0,1,24-24h23.6a88,88,0,0,0-88.3-80h-.1a87.8,87.8,0,0,0-88.3,80H64a24.1,24.1,0,0,1,24,24v40a24.1,24.1,0,0,1-24,24H48a24.1,24.1,0,0,1-24-24V128A104,104,0,0,1,128.7,24h.8a104.1,104.1,0,0,1,104,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V128a96,96,0,0,0-96.8-96A96,96,0,0,0,32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M225.5,184v24a32,32,0,0,1-32,32H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.5,128h-32a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V128a96,96,0,0,0-96.8-96A96,96,0,0,0,32,128v56a16,16,0,0,0,16,16H64a16,16,0,0,0,16-16V144a16,16,0,0,0-16-16H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M225.5,184v24a32,32,0,0,1-32,32H136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gitlab_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gitlab_logo />
  <Heroicons.gitlab_logo class="w-4 h-4" />
  <Heroicons.gitlab_logo solid />
  <Heroicons.gitlab_logo mini />
  <Heroicons.gitlab_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gitlab_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128.7 230.2 173 112 219.2 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="36.8 112 83 112 83 112 127.3 230.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128.7" y1="230.2" x2="173" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="83 112 83 112 127.3 230.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M127.3,230.2,83,112h90L128.7,230.2h0a3.3,3.3,0,0,1-1.4,0Z" opacity="0.2"/><path d="M219.2,112l-16-59.9a4,4,0,0,0-7.6-.4L173,112Z" opacity="0.2"/><path d="M36.8,112l16-59.9a4,4,0,0,1,7.6-.4L83,112H36.8Z" opacity="0.2"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128.7 230.2 173 112 219.2 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="36.8 112 83 112 83 112 127.3 230.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M238.3,152.5,211,50a12,12,0,0,0-22.9-1.1L167.5,104h-79L67.9,48.9A12,12,0,0,0,45,50L17.7,152.5a16.1,16.1,0,0,0,6.4,17.3l94.8,65.6a15.5,15.5,0,0,0,7.1,2.7h4a15.5,15.5,0,0,0,7.1-2.7l94.8-65.6A16.1,16.1,0,0,0,238.3,152.5ZM33.2,156.6,42.9,120H77.5l34,90.9Zm111.3,54.3,34-90.9h34.6l9.7,36.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128.7 230.2 173 112 219.2 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="36.8 112 83 112 83 112 127.3 230.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83,112h90l22.6-60.3a4,4,0,0,1,7.6.4l27.4,102.5a8.2,8.2,0,0,1-3.2,8.6l-94.8,65.6a8.1,8.1,0,0,1-9.2,0L28.6,163.2a8.2,8.2,0,0,1-3.2-8.6L52.8,52.1a4,4,0,0,1,7.6-.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128.7 230.2 173 112 219.2 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="36.8 112 83 112 83 112 127.3 230.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_lock` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_lock />
  <Heroicons.folder_simple_lock class="w-4 h-4" />
  <Heroicons.folder_simple_lock solid />
  <Heroicons.folder_simple_lock mini />
  <Heroicons.folder_simple_lock outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_lock(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,164V148a20,20,0,0,1,40,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="152" y="164" width="72" height="44" opacity="0.2"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,88v16a8,8,0,0,1-16,0V88H130.7a15.6,15.6,0,0,1-9.6-3.2L93.3,64H40V200h72a8,8,0,0,1,0,16H40a16,16,0,0,1-16-16V64A16,16,0,0,1,40,48H93.3a15.6,15.6,0,0,1,9.6,3.2L130.7,72H216A16,16,0,0,1,232,88Zm0,76v44a8,8,0,0,1-8,8H152a8,8,0,0,1-8-8V164a8,8,0,0,1,8-8h8v-4a28,28,0,0,1,56,0v4h8A8,8,0,0,1,232,164Zm-32-12a12,12,0,0,0-24,0v4h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="152" y="164" width="72" height="44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,164V152a20,20,0,0,1,40,0v12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `envelope_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.envelope_open />
  <Heroicons.envelope_open class="w-4 h-4" />
  <Heroicons.envelope_open solid />
  <Heroicons.envelope_open mini />
  <Heroicons.envelope_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def envelope_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.5" y1="152" x2="34.5" y2="205.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="221.5" y1="205.7" x2="145.5" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,96V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V96l96-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="110.5" y1="152" x2="34.5" y2="205.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="221.5" y1="205.7" x2="145.5" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="224 96 145.5 152 110.5 152 32 96 128 32 224 96" opacity="0.2"/><path d="M32,96V200a8,8,0,0,0,8,8H216a8,8,0,0,0,8-8V96L128,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="110.5" y1="152" x2="34.5" y2="205.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="221.5" y1="205.7" x2="145.5" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M228.4,89.3l-96-64a8.2,8.2,0,0,0-8.8,0l-96,64A7.9,7.9,0,0,0,24,96V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V96A7.9,7.9,0,0,0,228.4,89.3ZM96.7,152,40,192V111.5Zm16.4,8h29.8l56.6,40H56.5Zm46.2-8L216,111.5V192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,96V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V96l96-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="110.5" y1="152" x2="34.5" y2="205.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="221.5" y1="205.7" x2="145.5" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,96V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V96l96-64Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="110.5" y1="152" x2="34.5" y2="205.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="221.5" y1="205.7" x2="145.5" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 96 145.5 152 110.5 152 32 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_eight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_eight />
  <Heroicons.number_eight class="w-4 h-4" />
  <Heroicons.number_eight solid />
  <Heroicons.number_eight mini />
  <Heroicons.number_eight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_eight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178.8,71.7a46.3,46.3,0,0,1-14.9,33.7,53.3,53.3,0,0,1-71.8,0,45.6,45.6,0,0,1,0-67.4,53,53,0,0,1,71.8,0A46,46,0,0,1,178.8,71.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,175.7a54.4,54.4,0,0,1-17.6,39.8,62.7,62.7,0,0,1-84.8,0,53.9,53.9,0,0,1,0-79.7,62.7,62.7,0,0,1,84.8,0A54.4,54.4,0,0,1,188,175.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178.8,71.7a46.3,46.3,0,0,1-14.9,33.7,53.3,53.3,0,0,1-71.8,0,45.6,45.6,0,0,1,0-67.4,53,53,0,0,1,71.8,0A46,46,0,0,1,178.8,71.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M188,175.7a54.4,54.4,0,0,1-17.6,39.8,62.7,62.7,0,0,1-84.8,0,53.9,53.9,0,0,1,0-79.7,62.7,62.7,0,0,1,84.8,0A54.4,54.4,0,0,1,188,175.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178.8,71.7a46.3,46.3,0,0,1-14.9,33.7,53.3,53.3,0,0,1-71.8,0,45.6,45.6,0,0,1,0-67.4,53,53,0,0,1,71.8,0A46,46,0,0,1,178.8,71.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,175.7a54.4,54.4,0,0,1-17.6,39.8,62.7,62.7,0,0,1-84.8,0,53.9,53.9,0,0,1,0-79.7,62.7,62.7,0,0,1,84.8,0A54.4,54.4,0,0,1,188,175.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M175.9,130a68.8,68.8,0,0,0-16.4-11.4,59.4,59.4,0,0,0,9.9-7.4,53.6,53.6,0,0,0,0-79.1,61.3,61.3,0,0,0-82.8,0,53.6,53.6,0,0,0,0,79.1,59.4,59.4,0,0,0,9.9,7.4A68.8,68.8,0,0,0,80.1,130a61.9,61.9,0,0,0,0,91.3,70.7,70.7,0,0,0,95.8,0,61.9,61.9,0,0,0,0-91.3ZM97.6,99.5a37.5,37.5,0,0,1,0-55.7,45.1,45.1,0,0,1,60.8,0,37.5,37.5,0,0,1,0,55.7,45.1,45.1,0,0,1-60.8,0ZM165,209.7a55,55,0,0,1-74,0,46,46,0,0,1,0-68,54.7,54.7,0,0,1,74,0,46,46,0,0,1,0,68Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178.8,71.7a46.3,46.3,0,0,1-14.9,33.7,53.3,53.3,0,0,1-71.8,0,45.6,45.6,0,0,1,0-67.4,53,53,0,0,1,71.8,0A46,46,0,0,1,178.8,71.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,175.7a54.4,54.4,0,0,1-17.6,39.8,62.7,62.7,0,0,1-84.8,0,53.9,53.9,0,0,1,0-79.7,62.7,62.7,0,0,1,84.8,0A54.4,54.4,0,0,1,188,175.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M178.8,71.7a46.3,46.3,0,0,1-14.9,33.7,53.3,53.3,0,0,1-71.8,0,45.6,45.6,0,0,1,0-67.4,53,53,0,0,1,71.8,0A46,46,0,0,1,178.8,71.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,175.7a54.4,54.4,0,0,1-17.6,39.8,62.7,62.7,0,0,1-84.8,0,53.9,53.9,0,0,1,0-79.7,62.7,62.7,0,0,1,84.8,0A54.4,54.4,0,0,1,188,175.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_simple_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_simple_low />
  <Heroicons.hourglass_simple_low class="w-4 h-4" />
  <Heroicons.hourglass_simple_low solid />
  <Heroicons.hourglass_simple_low mini />
  <Heroicons.hourglass_simple_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_simple_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.7,202.3A8,8,0,0,0,59.3,216H196.7a8,8,0,0,0,5.6-13.7L176,176H80Z" opacity="0.2"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,128,208,59.3A16,16,0,0,0,196.7,32H59.3A16,16,0,0,0,48,59.3L116.7,128,48,196.7A16,16,0,0,0,59.3,224H196.7A16,16,0,0,0,208,196.7Zm-80-80H196.7L128,116.7ZM128,139.3,156.7,168H99.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="176" x2="80" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `github_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.github_logo />
  <Heroicons.github_logo class="w-4 h-4" />
  <Heroicons.github_logo solid />
  <Heroicons.github_logo mini />
  <Heroicons.github_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def github_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M84,240a23.9,23.9,0,0,0,24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,240a23.9,23.9,0,0,1-24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,168h16a23.9,23.9,0,0,1,24,24v8a23.9,23.9,0,0,0,24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168H88a23.9,23.9,0,0,0-24,24v8a23.9,23.9,0,0,1-24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M84,240a23.9,23.9,0,0,0,24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M172,240a23.9,23.9,0,0,1-24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,168h16a23.9,23.9,0,0,1,24,24v8a23.9,23.9,0,0,0,24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,168H88a23.9,23.9,0,0,0-24,24v8a23.9,23.9,0,0,1-24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" opacity="0.2"/><path d="M84,240a23.9,23.9,0,0,0,24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,240a23.9,23.9,0,0,1-24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,168h16a23.9,23.9,0,0,1,24,24v8a23.9,23.9,0,0,0,24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168H88a23.9,23.9,0,0,0-24,24v8a23.9,23.9,0,0,1-24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,224a8,8,0,0,1-8,8,32.1,32.1,0,0,1-32-32v-8a16,16,0,0,0-16-16H156v40a16,16,0,0,0,16,16,8,8,0,0,1,0,16,32.1,32.1,0,0,1-32-32V176H116v40a32.1,32.1,0,0,1-32,32,8,8,0,0,1,0-16,16,16,0,0,0,16-16V176H88a16,16,0,0,0-16,16v8a32.1,32.1,0,0,1-32,32,8,8,0,0,1,0-16,16,16,0,0,0,16-16v-8a32.1,32.1,0,0,1,14.8-27A55.8,55.8,0,0,1,48,120v-8a58,58,0,0,1,7.7-28.3A59.9,59.9,0,0,1,61.1,36,7.8,7.8,0,0,1,68,32a59.7,59.7,0,0,1,48,24h24a59.7,59.7,0,0,1,48-24,7.8,7.8,0,0,1,6.9,4,59.9,59.9,0,0,1,5.4,47.7A58,58,0,0,1,208,112v8a55.8,55.8,0,0,1-22.8,45A32.1,32.1,0,0,1,200,192v8a16,16,0,0,0,16,16A8,8,0,0,1,224,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M84,240a23.9,23.9,0,0,0,24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M172,240a23.9,23.9,0,0,1-24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,168h16a23.9,23.9,0,0,1,24,24v8a23.9,23.9,0,0,0,24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,168H88a23.9,23.9,0,0,0-24,24v8a23.9,23.9,0,0,1-24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M84,240a23.9,23.9,0,0,0,24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M172,240a23.9,23.9,0,0,1-24-24V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,168h16a23.9,23.9,0,0,1,24,24v8a23.9,23.9,0,0,0,24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,168H88a23.9,23.9,0,0,0-24,24v8a23.9,23.9,0,0,1-24,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M111.8,64A52,52,0,0,0,68,40a52,52,0,0,0-3.5,44.7A49.3,49.3,0,0,0,56,112v8a48,48,0,0,0,48,48h48a48,48,0,0,0,48-48v-8a49.3,49.3,0,0,0-8.5-27.3A52,52,0,0,0,188,40a52,52,0,0,0-43.8,24Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fire` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fire />
  <Heroicons.fire class="w-4 h-4" />
  <Heroicons.fire solid />
  <Heroicons.fire mini />
  <Heroicons.fire outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fire(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.4,148A52.2,52.2,0,0,1,136,191.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M171.8,144A44.1,44.1,0,0,1,136,183.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" opacity="0.2"/><path d="M179.4,148A52.2,52.2,0,0,1,136,191.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M197.1,66.6c-13-20.8-29.9-38.7-44.6-53.4a8,8,0,0,0-7-2.2,7.9,7.9,0,0,0-5.9,4.4L108.7,80.2,76.5,58.7a8.1,8.1,0,0,0-6-1.2,8,8,0,0,0-5.1,3.4C45.9,90.3,36,116.9,36,140a92,92,0,0,0,184,0C220,115.1,212.5,91.1,197.1,66.6Zm-9.8,82.6a59.6,59.6,0,0,1-50.1,50.1H136a8,8,0,0,1-1.2-15.9,44.4,44.4,0,0,0,36.7-36.7,8,8,0,1,1,15.8,2.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.4,148A52.2,52.2,0,0,1,136,191.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.4,148A52.2,52.2,0,0,1,136,191.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,65.4C56.6,88.6,44,115.2,44,140a84,84,0,0,0,168,0c0-52-36-92-65.2-121.1h0L112,92,72,65.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `twitch_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.twitch_logo />
  <Heroicons.twitch_logo class="w-4 h-4" />
  <Heroicons.twitch_logo solid />
  <Heroicons.twitch_logo mini />
  <Heroicons.twitch_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def twitch_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="88" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="88" x2="120" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="168" y1="88" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="120" y1="88" x2="120" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" opacity="0.2"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="88" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="88" x2="120" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V192a16,16,0,0,0,16,16H64v32a7.9,7.9,0,0,0,4.6,7.2,6.8,6.8,0,0,0,3.4.8,7.5,7.5,0,0,0,5.1-1.9L122.9,208h42.2a15.8,15.8,0,0,0,10.2-3.7l42.9-35.8a15.7,15.7,0,0,0,5.8-12.2V48A16,16,0,0,0,208,32ZM128,136a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="88" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="120" y1="88" x2="120" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.1,200H122.9a7.8,7.8,0,0,0-5.1,1.9L72,240V200H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.3a8.1,8.1,0,0,1-2.9,6.1l-42.9,35.7A7.8,7.8,0,0,1,165.1,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="88" x2="168" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="120" y1="88" x2="120" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_left_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_left_up />
  <Heroicons.arrow_bend_left_up class="w-4 h-4" />
  <Heroicons.arrow_bend_left_up solid />
  <Heroicons.arrow_bend_left_up mini />
  <Heroicons.arrow_bend_left_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_left_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 80 104 32 56 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,224a96,96,0,0,1-96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 80 104 32 56 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,224a96,96,0,0,1-96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 80 104 32 56 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,224a96,96,0,0,1-96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,224a8,8,0,0,1-8,8A104.2,104.2,0,0,1,96,128V88H56a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,152,88H112v40a88.1,88.1,0,0,0,88,88A8,8,0,0,1,208,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 80 104 32 56 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,224a96,96,0,0,1-96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 80 104 32 56 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,224a96,96,0,0,1-96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `spinner_gap` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.spinner_gap />
  <Heroicons.spinner_gap class="w-4 h-4" />
  <Heroicons.spinner_gap solid />
  <Heroicons.spinner_gap mini />
  <Heroicons.spinner_gap outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def spinner_gap(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.1,47.6a8,8,0,0,0-11.3,11.3l22.6,22.6a8,8,0,0,0,5.7,2.4,7.7,7.7,0,0,0,5.6-2.4,7.9,7.9,0,0,0,0-11.3ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.1,167.6,54.5,190.2a7.9,7.9,0,0,0,0,11.3,7.7,7.7,0,0,0,5.6,2.4,8,8,0,0,0,5.7-2.4l22.6-22.6a8,8,0,0,0-11.3-11.3ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.8,54.5A8,8,0,0,0,54.5,65.8L77.1,88.4a8.1,8.1,0,0,0,11.3,0,8,8,0,0,0,0-11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="195.9" x2="173.3" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="224" x2="128" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.1" y1="195.9" x2="82.7" y2="173.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="128" x2="64" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="60.1" y1="60.1" x2="82.7" y2="82.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_dotted` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_dotted />
  <Heroicons.folder_dotted class="w-4 h-4" />
  <Heroicons.folder_dotted solid />
  <Heroicons.folder_dotted mini />
  <Heroicons.folder_dotted outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_dotted(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M98.4,46.7,128,80H32V52a8,8,0,0,1,8-8H92.4A8,8,0,0,1,98.4,46.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" opacity="0.2"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,208a8,8,0,0,1-8,8H39.4A15.4,15.4,0,0,1,24,200.6V192a8,8,0,0,1,16,0v8H88A8,8,0,0,1,96,208Zm64-8H128a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm64-56a8,8,0,0,0-8,8v48H200a8,8,0,0,0,0,16h16.9A15.2,15.2,0,0,0,232,200.9V152A8,8,0,0,0,224,144Zm-8-72H168a8,8,0,0,0,0,16h48v24a8,8,0,0,0,16,0V88A16,16,0,0,0,216,72ZM32,88h96a8,8,0,0,0,7.4-4.9,8.4,8.4,0,0,0-1.7-8.8L104,44.7A15.9,15.9,0,0,0,92.7,40H40A16,16,0,0,0,24,56V80A8,8,0,0,0,32,88Zm0,72a8,8,0,0,0,8-8V120a8,8,0,0,0-16,0v32A8,8,0,0,0,32,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,208H39.4a7.4,7.4,0,0,1-7.4-7.4V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,152v48.9a7.1,7.1,0,0,1-7.1,7.1H200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,80h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="120" x2="32" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wheelchair` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wheelchair />
  <Heroicons.wheelchair class="w-4 h-4" />
  <Heroicons.wheelchair solid />
  <Heroicons.wheelchair mini />
  <Heroicons.wheelchair outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wheelchair(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="95.9" cy="40" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="95.9 60 95.9 132 183.9 132 215.9 196 239.9 188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M167.8,164a64,64,0,1,1-63.9-68h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="95.9" cy="40" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="95.9 60 95.9 136 183.9 136 215.9 200 239.9 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M163.2,184.1A64,64,0,1,1,103.9,96h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="95.9" cy="40" r="20" opacity="0.2"/><circle cx="95.9" cy="40" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="95.9 60 95.9 132 183.9 132 215.9 196 239.9 188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M167.8,164a64,64,0,1,1-63.9-68h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M247.5,185.5a8,8,0,0,0-10.1-5.1l-17.5,5.8L191,128.4a7.9,7.9,0,0,0-7.1-4.4h-80V104h56a8,8,0,0,0,0-16h-56V62.6a24,24,0,1,0-16,0V89.8a72,72,0,1,0,87.8,74.7,8,8,0,1,0-15.9-1,56,56,0,1,1-71.9-57.2V132a8,8,0,0,0,8,8h83l29.8,59.6a8,8,0,0,0,7.2,4.4,7.3,7.3,0,0,0,2.5-.4l24-8A8,8,0,0,0,247.5,185.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="95.9" cy="40" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="95.9 60 95.9 132 183.9 132 215.9 196 239.9 188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M167.8,164a64,64,0,1,1-63.9-68h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="95.9" cy="40" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="95.9 60 95.9 132 183.9 132 215.9 196 239.9 188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M167.8,164a64,64,0,1,1-63.9-68h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `factory` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.factory />
  <Heroicons.factory class="w-4 h-4" />
  <Heroicons.factory solid />
  <Heroicons.factory mini />
  <Heroicons.factory outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def factory(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="108" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 216 216 136 168 136 104 88 104 136 40 88 40 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,136,201,30.9a8,8,0,0,0-7.9-6.9H174.9a8,8,0,0,0-7.9,6.9l-13.5,94.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="108" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="216 216 216 136 168 136 104 88 104 136 40 88 40 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,136,201,30.9a8,8,0,0,0-7.9-6.9H174.9a8,8,0,0,0-7.9,6.9l-13.5,94.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 216 216 136 168 136 104 88 104 136 40 88 40 216 216 216" opacity="0.2"/><line x1="80" y1="176" x2="108" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 216 216 136 168 136 104 88 104 136 40 88 40 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,136,201,30.9a8,8,0,0,0-7.9-6.9H174.9a8,8,0,0,0-7.9,6.9l-13.5,94.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,208H224V136h0v-.5a.8.8,0,0,0-.1-.4h0l-15-105.2A16,16,0,0,0,193.1,16H174.9a16,16,0,0,0-15.8,13.7l-11.6,81L108.8,81.6A8,8,0,0,0,96,88v32L44.8,81.6A8,8,0,0,0,32,88V208H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM100,184H72a8,8,0,0,1,0-16h28a8,8,0,0,1,0,16Zm84,0H156a8,8,0,0,1,0-16h28a8,8,0,0,1,0,16Zm-13.3-56-8.6-6.4L174.9,32h18.2l13.7,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="108" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="148" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216 216 216 136 168 136 104 88 104 136 40 88 40 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,136,201,30.9a8,8,0,0,0-7.9-6.9H174.9a8,8,0,0,0-7.9,6.9l-13.5,94.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="176" x2="108" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="148" y1="176" x2="176" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216 216 216 136 168 136 104 88 104 136 40 88 40 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,136,201,30.9a8,8,0,0,0-7.9-6.9H174.9a8,8,0,0,0-7.9,6.9l-13.5,94.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_full` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_full />
  <Heroicons.battery_full class="w-4 h-4" />
  <Heroicons.battery_full solid />
  <Heroicons.battery_full mini />
  <Heroicons.battery_full outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_full(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.2" y1="168" x2="179.2" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="164" x2="64" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="164" x2="100" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="164" x2="136" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="164" x2="172" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="179.2" y1="168" x2="179.2" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8Z"/><rect x="56" y="80" width="136" height="96" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="179.2" y1="168" x2="179.2" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="179.2" y1="168" x2="179.2" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `student` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.student />
  <Heroicons.student class="w-4 h-4" />
  <Heroicons.student solid />
  <Heroicons.student mini />
  <Heroicons.student outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def student(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="64" x2="32" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M54.2,216a88.1,88.1,0,0,1,147.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="224 64 128 96 32 64 128 32 224 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.3,82.2a56,56,0,1,1-82.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="64" x2="32" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M54.2,216a88.1,88.1,0,0,1,147.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="224 64 128 96 32 64 128 32 224 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M169.3,82.2a56,56,0,1,1-82.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="224 64 128 96 32 64 128 32 224 64" opacity="0.2"/><line x1="32" y1="64" x2="32" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M54.2,216a88.1,88.1,0,0,1,147.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="224 64 128 96 32 64 128 32 224 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.3,82.2a56,56,0,1,1-82.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M226.5,56.4l-96-32a8.5,8.5,0,0,0-5,0l-95.9,32h-.2l-1,.5h-.1l-1,.6c0,.1-.1.1-.2.2l-.8.7h0l-.7.8c0,.1-.1.1-.1.2l-.6.9c0,.1,0,.1-.1.2l-.4.9h0l-.3,1.1v.3A3.7,3.7,0,0,0,24,64v80a8,8,0,0,0,16,0V75.1L73.6,86.3A63.2,63.2,0,0,0,64,120a64,64,0,0,0,30,54.2,96.1,96.1,0,0,0-46.5,37.4,8.1,8.1,0,0,0,2.4,11.1,7.9,7.9,0,0,0,11-2.3,80,80,0,0,1,134.2,0,8,8,0,0,0,6.7,3.6,7.5,7.5,0,0,0,4.3-1.3,8.1,8.1,0,0,0,2.4-11.1A96.1,96.1,0,0,0,162,174.2,64,64,0,0,0,192,120a63.2,63.2,0,0,0-9.6-33.7l44.1-14.7a8,8,0,0,0,0-15.2ZM128,168a48,48,0,0,1-48-48,48.6,48.6,0,0,1,9.3-28.5l36.2,12.1a8,8,0,0,0,5,0l36.2-12.1A48.6,48.6,0,0,1,176,120,48,48,0,0,1,128,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="64" x2="32" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M54.2,216a88.1,88.1,0,0,1,147.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="224 64 128 96 32 64 128 32 224 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M169.3,82.2a56,56,0,1,1-82.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="32" y1="64" x2="32" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M54.2,216a88.1,88.1,0,0,1,147.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="224 64 128 96 32 64 128 32 224 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M169.3,82.2a56,56,0,1,1-82.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `crown_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.crown_simple />
  <Heroicons.crown_simple class="w-4 h-4" />
  <Heroicons.crown_simple solid />
  <Heroicons.crown_simple mini />
  <Heroicons.crown_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def crown_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" opacity="0.2"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M238.7,73.5A15.9,15.9,0,0,0,222,71.2L171.4,93.7,142,40.7a16.1,16.1,0,0,0-28,0l-29.4,53L34,71.2A16,16,0,0,0,11.9,89.5L37.3,197.8a15.9,15.9,0,0,0,7.4,10.1,16.2,16.2,0,0,0,8.3,2.3,15.2,15.2,0,0,0,4.2-.6,265.5,265.5,0,0,1,141.5,0,16.5,16.5,0,0,0,12.5-1.7,15.6,15.6,0,0,0,7.4-10.1L244.1,89.5A16,16,0,0,0,238.7,73.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_audio` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_audio />
  <Heroicons.file_audio class="w-4 h-4" />
  <Heroicons.file_audio solid />
  <Heroicons.file_audio mini />
  <Heroicons.file_audio outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_audio(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="48 204 48 172 72 172 96 152 96 224 72 204 48 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,163a32,32,0,0,1,0,50" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,224h20a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="48 204 48 164 72 164 96 144 96 224 72 204 48 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M136,163a32,32,0,0,1,0,50" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="48 204 48 172 72 172 96 152 96 224 72 204 48 204" opacity="0.2"/><polygon points="48 204 48 172 72 172 96 152 96 224 72 204 48 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,163a32,32,0,0,1,0,50" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,16,0V40h88V88a8,8,0,0,0,8,8h48V216H168a8,8,0,0,0,0,16h32a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM160,80V51.3L188.7,80Zm-56,72v72a7.9,7.9,0,0,1-4.6,7.2,6.8,6.8,0,0,1-3.4.8,7.5,7.5,0,0,1-5.1-1.9L69.1,212H48a8,8,0,0,1-8-8V172a8,8,0,0,1,8-8H69.1l21.8-18.1a7.8,7.8,0,0,1,8.5-1.1A7.9,7.9,0,0,1,104,152Zm44,36a39.8,39.8,0,0,1-15,31.2,7.9,7.9,0,0,1-5,1.8,7.8,7.8,0,0,1-6.2-3,8.1,8.1,0,0,1,1.2-11.3,23.9,23.9,0,0,0,0-37.4,8,8,0,0,1,10-12.5A39.8,39.8,0,0,1,148,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="48 204 48 172 72 172 96 152 96 224 72 204 48 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,163a32,32,0,0,1,0,50" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,224h32a8,8,0,0,0,8-8V88L152,32H56a8,8,0,0,0-8,8v88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="48 204 48 172 72 172 96 152 96 224 72 204 48 204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,163a32,32,0,0,1,0,50" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `note_blank` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.note_blank />
  <Heroicons.note_blank class="w-4 h-4" />
  <Heroicons.note_blank solid />
  <Heroicons.note_blank mini />
  <Heroicons.note_blank outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def note_blank(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="215.3 156 156 156 156 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 160 160 160 160 216 216 160" opacity="0.2"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H156.7a15.9,15.9,0,0,0,11.3-4.7L219.3,168a15.9,15.9,0,0,0,4.7-11.3V48A16,16,0,0,0,208,32ZM160,204.7V160h44.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `books` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.books />
  <Heroicons.books class="w-4 h-4" />
  <Heroicons.books solid />
  <Heroicons.books mini />
  <Heroicons.books outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def books(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="80" x2="88" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="176" x2="136" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="158" y="38.6" width="48" height="176" rx="8" transform="matrix(0.97, -0.26, 0.26, 0.97, -26.56, 51.42)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="171.2" y1="179.2" x2="217.6" y2="166.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="146.4" y1="86.4" x2="192.8" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="80" x2="88" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="88" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="176" x2="136" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="158" y="38.6" width="48" height="176" rx="8" transform="translate(-26.6 51.4) rotate(-15)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="171.2" y1="179.2" x2="217.6" y2="166.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="146.4" y1="86.4" x2="192.8" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,80H88V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><path d="M88,176h48V48a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8Z" opacity="0.2"/><path d="M171.2,179.2l46.4-12.5,8.3,30.9a8,8,0,0,1-5.7,9.8l-30.9,8.3a8,8,0,0,1-9.8-5.6Z" opacity="0.2"/><path d="M146.4,86.4,192.8,74l-8.3-30.9a8.1,8.1,0,0,0-9.8-5.7l-30.9,8.3a8.1,8.1,0,0,0-5.7,9.8Z" opacity="0.2"/><rect x="40" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="80" x2="88" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="88" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="176" x2="136" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="158" y="38.6" width="48" height="176" rx="8" transform="translate(-26.6 51.4) rotate(-15)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="171.2" y1="179.2" x2="217.6" y2="166.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="146.4" y1="86.4" x2="192.8" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M233.6,195.6,192.2,41a16,16,0,0,0-19.6-11.3L141.7,38l-1,.3A16,16,0,0,0,128,32H96a15.8,15.8,0,0,0-8,2.2A15.8,15.8,0,0,0,80,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H80a15.8,15.8,0,0,0,8-2.2,15.8,15.8,0,0,0,8,2.2h32a16,16,0,0,0,16-16V108.4l27.8,103.7A16,16,0,0,0,187.3,224a19.9,19.9,0,0,0,4.1-.5l30.9-8.3A16,16,0,0,0,233.6,195.6ZM176.7,45.2,183,68.3l-30.9,8.3-6.3-23.1ZM128,48V168H96V48ZM80,48V72H48V48Zm48,160H96V184h32v24Zm90.2-8.3L187.3,208,181,184.8l31-8.3,6.2,23.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="80" x2="88" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="88" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="176" x2="136" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="158" y="38.6" width="48" height="176" rx="8" transform="matrix(0.97, -0.26, 0.26, 0.97, -26.56, 51.42)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="171.2" y1="179.2" x2="217.6" y2="166.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="146.4" y1="86.4" x2="192.8" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="80" x2="88" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="88" y="40" width="48" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="176" x2="136" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="158" y="38.6" width="48" height="176" rx="8" transform="translate(-26.6 51.4) rotate(-15)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="171.2" y1="179.2" x2="217.6" y2="166.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="146.4" y1="86.4" x2="192.8" y2="74" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_plus />
  <Heroicons.folder_simple_plus class="w-4 h-4" />
  <Heroicons.folder_simple_plus solid />
  <Heroicons.folder_simple_plus mini />
  <Heroicons.folder_simple_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" opacity="0.2"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72Zm-64,80H136v16a8,8,0,0,1-16,0V152H104a8,8,0,0,1,0-16h16V120a8,8,0,0,1,16,0v16h16a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="120" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_disconnect` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_disconnect />
  <Heroicons.phone_disconnect class="w-4 h-4" />
  <Heroicons.phone_disconnect solid />
  <Heroicons.phone_disconnect mini />
  <Heroicons.phone_disconnect outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_disconnect(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="200" x2="216" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="200" x2="216" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" opacity="0.2"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="200" x2="216" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.8,90.2C173.7,34,82.3,34,26.2,90.2a56.1,56.1,0,0,0-4.7,73.9,16.2,16.2,0,0,0,12.6,6.1,17.1,17.1,0,0,0,5.9-1.1l47.4-19a16,16,0,0,0,9.7-11.7l5.9-29.5a76.3,76.3,0,0,1,49.7-.1h0l6.2,29.7a15.9,15.9,0,0,0,9.7,11.6l47.4,19a16.1,16.1,0,0,0,18.5-5A56.1,56.1,0,0,0,229.8,90.2Z"/><path d="M216,192H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="200" x2="216" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,101.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,161.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,101.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="200" x2="216" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ny_times_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ny_times_logo />
  <Heroicons.ny_times_logo class="w-4 h-4" />
  <Heroicons.ny_times_logo solid />
  <Heroicons.ny_times_logo mini />
  <Heroicons.ny_times_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ny_times_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="171.9" cy="148" r="12"/><path d="M205.6,163.4A80,80,0,1,1,127.9,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M67.2,91.9A28,28,0,0,1,70,36L186,92a28,28,0,0,0,0-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48.6 154.3 127.9 112 127.9 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95.9" y1="129.1" x2="95.9" y2="217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="168" cy="148" r="16"/><path d="M205.6,163.4A80,80,0,1,1,127.9,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M67.2,91.9A28,28,0,0,1,70,36L186,92a28,28,0,0,0,0-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="48.6 154.3 127.9 112 127.9 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="91.9" y1="131.2" x2="91.9" y2="215.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M95.9,217.3a79.7,79.7,0,0,0,32,6.7V112l-32,17.1h0v88.2Z" opacity="0.2"/><circle cx="171.9" cy="148" r="12"/><path d="M205.6,163.4A80,80,0,1,1,127.9,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M67.2,91.9A28,28,0,0,1,70,36L186,92a28,28,0,0,0,0-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48.6 154.3 127.9 112 127.9 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95.9" y1="129.1" x2="95.9" y2="217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M183.9,148a12,12,0,1,1-12-12A12,12,0,0,1,183.9,148Zm29.4,17.3A87.7,87.7,0,0,1,127.9,232a86.7,86.7,0,0,1-34.6-7.1l-1.2-.5a88.4,88.4,0,0,1-51.5-69.3h0a99.9,99.9,0,0,1-.7-11A87.3,87.3,0,0,1,54,96.3,36,36,0,0,1,70,28a8.5,8.5,0,0,1,3.5.8L187.7,83.9A20,20,0,0,0,186,44a8,8,0,0,1,0-16,36,36,0,0,1,0,72,8.5,8.5,0,0,1-3.5-.8L126.3,72A72.1,72.1,0,0,0,56,141.3L92.1,122h0l32.1-17.1a8,8,0,0,1,11.7,7.1V215.5a71.7,71.7,0,0,0,61.9-54.1,8,8,0,0,1,15.5,3.9Zm-93.4-40-16,8.6v78a71.5,71.5,0,0,0,16,3.6ZM64.4,83.2a87.4,87.4,0,0,1,37.1-23.1l-33.2-16a20,20,0,0,0-3.9,39.1ZM87.9,203.8V142.4L57.4,158.7A72.1,72.1,0,0,0,87.9,203.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="172" cy="148" r="10"/><path d="M205.6,163.4A80,80,0,1,1,127.9,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M67.2,91.9A28,28,0,0,1,70,36L186,92a28,28,0,0,0,0-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48.6 154.3 127.9 112 127.9 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="95.9" y1="129.1" x2="95.9" y2="217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="172" cy="148" r="8"/><path d="M205.6,163.4A80,80,0,1,1,127.9,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M67.2,91.9A28,28,0,0,1,70,36L186,92a28,28,0,0,0,0-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48.6 154.3 127.9 112 127.9 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="95.9" y1="129.1" x2="95.9" y2="217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eyeglasses` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eyeglasses />
  <Heroicons.eyeglasses class="w-4 h-4" />
  <Heroicons.eyeglasses solid />
  <Heroicons.eyeglasses mini />
  <Heroicons.eyeglasses outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eyeglasses(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="160" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,164V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,48a23.9,23.9,0,0,1,24,24v92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="160" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,164V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,48a23.9,23.9,0,0,1,24,24v92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="164" r="36" opacity="0.2"/><circle cx="188" cy="164" r="36" opacity="0.2"/><circle cx="68" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="160" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,164V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,48a23.9,23.9,0,0,1,24,24v92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,72v92a44,44,0,0,1-87.8,4H111.8A44,44,0,0,1,24,164V72A32.1,32.1,0,0,1,56,40a8,8,0,0,1,0,16A16,16,0,0,0,40,72v58.1A43.9,43.9,0,0,1,110.3,152h35.4A43.9,43.9,0,0,1,216,130.1V72a16,16,0,0,0-16-16,8,8,0,0,1,0-16A32.1,32.1,0,0,1,232,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="160" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,164V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,48a23.9,23.9,0,0,1,24,24v92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="164" r="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="160" x2="152" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,164V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,48a23.9,23.9,0,0,1,24,24v92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_slash />
  <Heroicons.phone_slash class="w-4 h-4" />
  <Heroicons.phone_slash solid />
  <Heroicons.phone_slash mini />
  <Heroicons.phone_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M115,113.7a83.3,83.3,0,0,0-14.7,3.7,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,52-32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.5,72.2a136.1,136.1,0,0,1,103.7,39.6,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-4-1.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M115,113.7a83.3,83.3,0,0,0-14.7,3.7,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,52-32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M131.2,72a136,136,0,0,1,93,39.8,48,48,0,0,1,4,63.3,5.8,5.8,0,0,1-1.8,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.4,117.3a83.9,83.9,0,0,0-55.1.1,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,192.4,0,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-47.3-18.9a8.2,8.2,0,0,1-4.9-5.8l-6.2-29.7A7.9,7.9,0,0,0,155.4,117.3Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M115,113.7a83.3,83.3,0,0,0-14.7,3.7,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,52-32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120.5,72.2a136.1,136.1,0,0,1,103.7,39.6,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-4-1.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,108.3h-.1L89.8,74h-.1L53.9,34.6A8,8,0,0,0,42.1,45.4L70,76.1a143.9,143.9,0,0,0-43.8,30.1,56.1,56.1,0,0,0-4.7,73.9,16.2,16.2,0,0,0,12.6,6.1,17.1,17.1,0,0,0,5.9-1.1l47.4-19a16,16,0,0,0,9.7-11.7l5.9-29.5a72.1,72.1,0,0,1,9.1-2.5l90,99A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3Z"/><path d="M229.8,106.2a144.4,144.4,0,0,0-109.7-42,8,8,0,0,0-5.5,13.4L209,181.4a7.2,7.2,0,0,0,2.9,2l4.1,1.7a17.1,17.1,0,0,0,5.9,1.1,16.2,16.2,0,0,0,12.6-6.1A56.1,56.1,0,0,0,229.8,106.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M115,113.7a83.3,83.3,0,0,0-14.7,3.7,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,52-32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120.5,72.2a136.1,136.1,0,0,1,103.7,39.6,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-4-1.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M115,113.7a83.3,83.3,0,0,0-14.7,3.7,8,8,0,0,0-5.2,5.9l-5.8,29.5a8.2,8.2,0,0,1-4.9,5.9L37.1,177.6a7.9,7.9,0,0,1-9.3-2.5,48,48,0,0,1,4-63.3,136.1,136.1,0,0,1,52-32.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120.5,72.2a136.1,136.1,0,0,1,103.7,39.6,48,48,0,0,1,4,63.3,7.9,7.9,0,0,1-9.3,2.5l-4-1.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_warning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_warning />
  <Heroicons.battery_warning class="w-4 h-4" />
  <Heroicons.battery_warning solid />
  <Heroicons.battery_warning mini />
  <Heroicons.battery_warning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_warning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="124" y1="88" x2="124" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="164" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="92" x2="116" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="116" cy="160" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="124" y1="88" x2="124" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="164" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,96v64a8,8,0,0,1-16,0V96a8,8,0,0,1,16,0ZM224,72V184a24.1,24.1,0,0,1-24,24H48a24.1,24.1,0,0,1-24-24V72A24.1,24.1,0,0,1,48,48H200A24.1,24.1,0,0,1,224,72ZM116,128a8,8,0,0,0,16,0V88a8,8,0,0,0-16,0Zm20,36a12,12,0,1,0-12,12A12,12,0,0,0,136,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="124" y1="88" x2="124" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="124" cy="164" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="124" y1="88" x2="124" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="124" cy="164" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_six />
  <Heroicons.number_square_six class="w-4 h-4" />
  <Heroicons.number_square_six solid />
  <Heroicons.number_square_six mini />
  <Heroicons.number_square_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="103.8" y1="134" x2="136" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="103.8" y1="134" x2="136" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="103.8" y1="134" x2="136" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,148a20,20,0,1,1-20-20A20.1,20.1,0,0,1,148,148ZM224,48V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H208A16,16,0,0,1,224,48ZM164,148a36,36,0,0,0-36-36h-1.8l16.7-27.9a8,8,0,1,0-13.8-8.2l-32.2,54-.2.3A36,36,0,1,0,164,148Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="103.8" y1="134" x2="136" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="103.8" y1="134" x2="136" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `crown` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.crown />
  <Heroicons.crown class="w-4 h-4" />
  <Heroicons.crown solid />
  <Heroicons.crown mini />
  <Heroicons.crown outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def crown(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,161.7a297.7,297.7,0,0,1,64,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,153.6a325.9,325.9,0,0,1,64,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" opacity="0.2"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,161.7a297.7,297.7,0,0,1,64,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M238.7,73.5A15.9,15.9,0,0,0,222,71.2L171.4,93.7,142,40.7a16.1,16.1,0,0,0-28,0l-29.4,53L34,71.2A16,16,0,0,0,11.9,89.5L37.3,197.8a15.9,15.9,0,0,0,7.4,10.1,16.2,16.2,0,0,0,8.3,2.3,15.2,15.2,0,0,0,4.2-.6,265.5,265.5,0,0,1,141.5,0,16.5,16.5,0,0,0,12.5-1.7,15.6,15.6,0,0,0,7.4-10.1L244.1,89.5A16,16,0,0,0,238.7,73.5Zm-70.7,89a8.1,8.1,0,0,1-8,7.2h-.8a309.8,309.8,0,0,0-62.4,0,8,8,0,0,1-8.8-7.1,8.1,8.1,0,0,1,7.2-8.8,312.7,312.7,0,0,1,65.6,0A8.1,8.1,0,0,1,168,162.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,161.7a297.7,297.7,0,0,1,64,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M45.1,196a8.1,8.1,0,0,0,10,5.9,273,273,0,0,1,145.7,0,8.1,8.1,0,0,0,10-5.9L236.3,87.7a8,8,0,0,0-11-9.2L174.7,101a8.1,8.1,0,0,1-10.3-3.4L135,44.6a8,8,0,0,0-14,0l-29.4,53A8.1,8.1,0,0,1,81.3,101L30.7,78.5a8,8,0,0,0-11,9.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,161.7a297.7,297.7,0,0,1,64,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_right />
  <Heroicons.arrow_square_right class="w-4 h-4" />
  <Heroicons.arrow_square_right solid />
  <Heroicons.arrow_square_right mini />
  <Heroicons.arrow_square_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="134.1 94.1 168 128 134.1 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="134.1 94.1 168 128 134.1 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="134.1 94.1 168 128 134.1 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,224H208a16,16,0,0,0,16-16V48a16,16,0,0,0-16-16H48A16,16,0,0,0,32,48V208A16,16,0,0,0,48,224Zm80.4-56.4a8,8,0,0,1,0-11.3L148.7,136H88a8,8,0,0,1,0-16h60.7L128.4,99.7a8,8,0,0,1,11.3-11.3l33.9,33.9a8.7,8.7,0,0,1,1.8,2.6,8.5,8.5,0,0,1,.6,3.1,7.7,7.7,0,0,1-.6,3,8,8,0,0,1-1.8,2.7l-33.9,33.9A8,8,0,0,1,128.4,167.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="134.1 94.1 168 128 134.1 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="134.1 94.1 168 128 134.1 161.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="128" x2="168" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_search` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_search />
  <Heroicons.file_search class="w-4 h-4" />
  <Heroicons.file_search solid />
  <Heroicons.file_search mini />
  <Heroicons.file_search outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_search(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="143.8" y1="167.8" x2="159.8" y2="183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="124" cy="148" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="141" y1="165" x2="159.8" y2="183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="143.8" y1="167.8" x2="159.8" y2="183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.6,82.3l-55.9-56-.3-.2-.3-.3-.3-.2-.3-.2c-.1-.1-.2-.1-.2-.2l-.5-.3h-.2l-.5-.3H155l-.7-.3H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A7.8,7.8,0,0,0,213.6,82.3ZM165.4,189.5a8,8,0,0,1-5.6,2.3,8.3,8.3,0,0,1-5.7-2.3l-10.9-11A36.8,36.8,0,0,1,124,184a36,36,0,1,1,36-36,35.8,35.8,0,0,1-5.5,19.2l10.9,10.9A8,8,0,0,1,165.4,189.5ZM152,88V43.3L196.7,88Z"/><path d="M124,128a19.9,19.9,0,0,0-14.1,5.9,19.8,19.8,0,0,0,0,28.2,19.9,19.9,0,0,0,28.2,0,19.8,19.8,0,0,0,0-28.2A19.9,19.9,0,0,0,124,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="143.8" y1="167.8" x2="159.8" y2="183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="124" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="143.8" y1="167.8" x2="159.8" y2="183.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="124" cy="148" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `figma_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.figma_logo />
  <Heroicons.figma_logo class="w-4 h-4" />
  <Heroicons.figma_logo solid />
  <Heroicons.figma_logo mini />
  <Heroicons.figma_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def figma_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="162" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,162V94H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,94V26h34a34,34,0,0,1,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,162v34a34,34,0,1,1-34-34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="162" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,162V94H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,94V26h34a34,34,0,0,1,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,162v34a34,34,0,1,1-34-34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="162" cy="128" r="34" opacity="0.2"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" opacity="0.2"/><path d="M128,162v34a34,34,0,1,1-34-34Z" opacity="0.2"/><circle cx="162" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,162V94H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,94V26h34a34,34,0,0,1,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,162v34a34,34,0,1,1-34-34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M186.6,94A42,42,0,0,0,162,18H94A42,42,0,0,0,69.4,94a41.9,41.9,0,0,0,0,68A42,42,0,1,0,136,196V160.9A42,42,0,1,0,186.6,94ZM188,60a26.1,26.1,0,0,1-26,26H136V34h26A26.1,26.1,0,0,1,188,60Zm-26,94a26,26,0,0,1,0-52h0a26,26,0,0,1,0,52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="162" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,162V94H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,94V26h34a34,34,0,0,1,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,162v34a34,34,0,1,1-34-34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="162" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,94V26H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,162V94H94a34,34,0,0,0,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,94V26h34a34,34,0,0,1,0,68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,162v34a34,34,0,1,1-34-34Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_empty` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_empty />
  <Heroicons.battery_empty class="w-4 h-4" />
  <Heroicons.battery_empty solid />
  <Heroicons.battery_empty mini />
  <Heroicons.battery_empty outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_empty(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flag_checkered` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flag_checkered />
  <Heroicons.flag_checkered class="w-4 h-4" />
  <Heroicons.flag_checkered solid />
  <Heroicons.flag_checkered mini />
  <Heroicons.flag_checkered outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flag_checkered(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,106.1c-64,48-112-48-176,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="37.4" x2="100" y2="157.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="58.6" x2="156" y2="178.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,106.1c-64,48-112-48-176,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="37.4" x2="100" y2="157.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="58.6" x2="156" y2="178.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,106.1c21.4-16,41-16,60-10.6V37.4C81,32,61.4,32,40,48Z"/><path d="M156,58.6C175,64,194.6,64,216,48v58.1c-21.4,16.1-41,16-60,10.7Z"/><path d="M156,116.8c-18.9-5.4-37.1-15.9-56-21.3v61.9c18.9,5.3,37.1,15.9,56,21.2Z"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,106.1c-64,48-112-48-176,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="37.4" x2="100" y2="157.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="58.6" x2="156" y2="178.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.6,40.8a8.2,8.2,0,0,0-8.4.8c-28.3,21.2-52.3,11-80-.9s-60.3-25.9-96,.9A8,8,0,0,0,32,48h0V216a8,8,0,0,0,16,0V172.1c26.9-18.1,50.1-8.2,76.8,3.3,16.3,6.9,33.8,14.4,52.6,14.4,13.8,0,28.3-4,43.4-15.4A8.1,8.1,0,0,0,224,168V48A8.2,8.2,0,0,0,219.6,40.8ZM156,170.3V116.8c-18.9-5.4-37.1-15.9-56-21.3v53.6c-16.3-4.2-33.6-4.8-52,4.5V100.8c18.3-10.6,35.4-10,52-5.3V45.7a243.3,243.3,0,0,1,24.8,9.7c10,4.2,20.4,8.7,31.2,11.5v49.9c16.6,4.7,33.7,5.3,52-5.3v52.4C189.7,176.2,173.1,175.6,156,170.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,106.1c-64,48-112-48-176,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="37.4" x2="100" y2="157.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="58.6" x2="156" y2="178.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,106.1c-64,48-112-48-176,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="37.4" x2="100" y2="157.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="58.6" x2="156" y2="178.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_seven` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_seven />
  <Heroicons.number_circle_seven class="w-4 h-4" />
  <Heroicons.number_circle_seven solid />
  <Heroicons.number_circle_seven mini />
  <Heroicons.number_circle_seven outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_seven(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm31.6,62.5-32,96A7.9,7.9,0,0,1,120,188a7.3,7.3,0,0,1-2.5-.4,8,8,0,0,1-5.1-10.1L140.9,92H104a8,8,0,0,1,0-16h48a7.9,7.9,0,0,1,6.5,3.3A8.1,8.1,0,0,1,159.6,86.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plugs` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plugs />
  <Heroicons.plugs class="w-4 h-4" />
  <Heroicons.plugs solid />
  <Heroicons.plugs mini />
  <Heroicons.plugs outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plugs(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="200" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="24" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="120" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="120" y2="168" fill="#231f20"/><line x1="112" y1="112" x2="88" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="112" x2="88" y2="136" fill="#231f20"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="68" x2="188" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="116" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="200" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="24" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="140" y1="148" x2="120" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="140" y1="148" x2="120" y2="168" fill="#231f20"/><line x1="108" y1="116" x2="88" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="116" x2="88" y2="136" fill="#231f20"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="116" y1="68" x2="188" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="116" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31Z" opacity="0.2"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76Z" opacity="0.2"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="200" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="24" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="120" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="120" y2="168" fill="#231f20"/><line x1="112" y1="112" x2="88" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="112" x2="88" y2="136" fill="#231f20"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="116" y1="68" x2="188" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="116" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,29.7,211.3,56l5.4,5.4a31.9,31.9,0,0,1,0,45.2L191.3,132l2.4,2.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-8-8h0l-56-56h0l-8-8a8.1,8.1,0,0,1,11.4-11.4l2.3,2.4,25.4-25.4a31.9,31.9,0,0,1,45.2,0l5.4,5.4,26.3-26.4a8.1,8.1,0,0,1,11.4,11.4ZM138.3,138.3,120,156.7,99.3,136l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L88,124.7l-6.3-6.4h0l-8-8a8.1,8.1,0,0,0-11.4,11.4l2.4,2.3L39.3,149.4a31.9,31.9,0,0,0,0,45.2l5.4,5.4L18.3,226.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L56,211.3l5.4,5.4a31.9,31.9,0,0,0,45.2,0L132,191.3l2.3,2.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4l-8-8h0l-6.4-6.3,18.4-18.3a8.1,8.1,0,0,0-11.4-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="200" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="24" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="144" x2="120" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="144" x2="120" y2="168" fill="#231f20"/><line x1="112" y1="112" x2="88" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="112" x2="88" y2="136" fill="#231f20"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="116" y1="68" x2="188" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68" y1="116" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,180l-31,31a24,24,0,0,1-34,0L45,189a24,24,0,0,1,0-34l31-31" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="200" x2="24" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="24" x2="200" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="144" x2="120" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="144" x2="120" y2="168" fill="#231f20"/><line x1="112" y1="112" x2="88" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="112" x2="88" y2="136" fill="#231f20"/><path d="M180,132l31-31a24,24,0,0,0,0-34L189,45a24,24,0,0,0-34,0L124,76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="116" y1="68" x2="188" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68" y1="116" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_nine` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_nine />
  <Heroicons.dots_nine class="w-4 h-4" />
  <Heroicons.dots_nine solid />
  <Heroicons.dots_nine mini />
  <Heroicons.dots_nine outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_nine(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="60" r="12"/><circle cx="128" cy="60" r="12"/><circle cx="196" cy="60" r="12"/><circle cx="60" cy="128" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="196" cy="128" r="12"/><circle cx="60" cy="196" r="12"/><circle cx="128" cy="196" r="12"/><circle cx="196" cy="196" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="60" r="16"/><circle cx="128" cy="60" r="16"/><circle cx="196" cy="60" r="16"/><circle cx="60" cy="128" r="16"/><circle cx="128" cy="128" r="16"/><circle cx="196" cy="128" r="16"/><circle cx="60" cy="196" r="16"/><circle cx="128" cy="196" r="16"/><circle cx="196" cy="196" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="60" r="12"/><circle cx="128" cy="60" r="12"/><circle cx="196" cy="60" r="12"/><circle cx="60" cy="128" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="196" cy="128" r="12"/><circle cx="60" cy="196" r="12"/><circle cx="128" cy="196" r="12"/><circle cx="196" cy="196" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M60,48A12,12,0,1,0,72,60,12,12,0,0,0,60,48Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,128,48Zm68,24a12,12,0,1,0-12-12A12,12,0,0,0,196,72ZM60,184a12,12,0,1,0,12,12A12,12,0,0,0,60,184Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,128,184Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,196,184ZM60,116a12,12,0,1,0,12,12A12,12,0,0,0,60,116Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,128,116Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,196,116Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="60" r="10"/><circle cx="128" cy="60" r="10"/><circle cx="196" cy="60" r="10"/><circle cx="60" cy="128" r="10"/><circle cx="128" cy="128" r="10"/><circle cx="196" cy="128" r="10"/><circle cx="60" cy="196" r="10"/><circle cx="128" cy="196" r="10"/><circle cx="196" cy="196" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="60" r="8"/><circle cx="128" cy="60" r="8"/><circle cx="196" cy="60" r="8"/><circle cx="60" cy="128" r="8"/><circle cx="128" cy="128" r="8"/><circle cx="196" cy="128" r="8"/><circle cx="60" cy="196" r="8"/><circle cx="128" cy="196" r="8"/><circle cx="196" cy="196" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `test_tube` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.test_tube />
  <Heroicons.test_tube class="w-4 h-4" />
  <Heroicons.test_tube solid />
  <Heroicons.test_tube mini />
  <Heroicons.test_tube outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def test_tube(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,100,94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52L172,32l60,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68,136s20-16,52,0,52,0,52,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,100,94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52L172,32l60,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,136s20-16,52,0,52,0,52,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M68,136s20-16,52,0,52,0,52,0L94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52Z" opacity="0.2"/><path d="M208,100,94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52L172,32l60,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68,136s20-16,52,0,52,0,52,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,86.3l-60-60a8.1,8.1,0,0,0-11.4,0L62.4,130.3h0l-26.1,26a44.8,44.8,0,0,0,63.4,63.4l77.9-78h0L212.3,107l22.2-7.4a8.2,8.2,0,0,0,5.3-5.8A8.3,8.3,0,0,0,237.7,86.3Zm-32.2,6.1a9.4,9.4,0,0,0-3.2,1.9l-35.6,35.6c-2.1,1.6-17.9,11.6-43.1-1.1-11-5.5-20.8-7.6-29.2-7.9L172,43.3l45.2,45.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,100,94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52L172,32l60,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M68,136s20-16,52,0,52,0,52,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,100,94,214a36.7,36.7,0,0,1-52,0h0a36.7,36.7,0,0,1,0-52L172,32l60,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M68,136s20-16,52,0,52,0,52,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `codepen_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.codepen_logo />
  <Heroicons.codepen_logo class="w-4 h-4" />
  <Heroicons.codepen_logo solid />
  <Heroicons.codepen_logo mini />
  <Heroicons.codepen_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def codepen_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,101,128,160,24,101,124.1,44.2a8.3,8.3,0,0,1,7.8,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="101" x2="232" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="101" x2="24" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="222.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="43.2" x2="128" y2="106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,101,128,160,24,101,124.1,44.2a8.3,8.3,0,0,1,7.8,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="101" x2="232" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="101" x2="24" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="160" x2="128" y2="222.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="43.2" x2="128" y2="106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" opacity="0.2"/><path d="M232,101,128,160,24,101,124.1,44.2a8.3,8.3,0,0,1,7.8,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="101" x2="232" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="101" x2="24" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="160" x2="128" y2="222.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="43.2" x2="128" y2="106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,101v64a8,8,0,0,1-4.1,7L142,225.3a4,4,0,0,1-6-3.5V164.7L191.8,133,224,151.3V114.7L191.8,133l-16.2-9.2L215.8,101,136,55.7v45.6l39.6,22.5-47.6,27-47.6-27L120,101.3V55.7L40.2,101l40.2,22.8L64.2,133,32,114.7v36.6L64.2,133,120,164.7v57.1a4,4,0,0,1-6,3.5L20.1,172a8,8,0,0,1-4.1-7V101a8,8,0,0,1,4.1-7l100-56.7a15.9,15.9,0,0,1,15.8,0L235.9,94A8,8,0,0,1,240,101Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,101,128,160,24,101,124.1,44.2a8.3,8.3,0,0,1,7.8,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="101" x2="232" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="101" x2="24" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="160" x2="128" y2="222.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="43.2" x2="128" y2="106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,101,128,160,24,101,124.1,44.2a8.3,8.3,0,0,1,7.8,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M232,165,131.9,221.8a8.3,8.3,0,0,1-7.8,0L24,165l104-59Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="101" x2="232" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="101" x2="24" y2="165" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="160" x2="128" y2="222.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="43.2" x2="128" y2="106" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chart_line_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chart_line_up />
  <Heroicons.chart_line_up class="w-4 h-4" />
  <Heroicons.chart_line_up solid />
  <Heroicons.chart_line_up mini />
  <Heroicons.chart_line_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chart_line_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 64 128 144 96 112 32 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 104 208 64 168 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 64 128 144 96 112 32 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 104 208 64 168 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 64 128 144 96 112 32 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 104 208 64 168 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,208a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V48a8,8,0,0,1,16,0V156.7l50.3-50.4a8.1,8.1,0,0,1,11.4,0L128,132.7,176.7,84,162.3,69.7a8.4,8.4,0,0,1-1.7-8.8A8.1,8.1,0,0,1,168,56h40a8,8,0,0,1,8,8v40a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L188,95.3l-54.3,54.4a8.1,8.1,0,0,1-11.4,0L96,123.3l-56,56V200H224A8,8,0,0,1,232,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 64 128 144 96 112 32 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 104 208 64 168 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="224 208 32 208 32 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 64 128 144 96 112 32 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 104 208 64 168 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `perspective` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.perspective />
  <Heroicons.perspective class="w-4 h-4" />
  <Heroicons.perspective solid />
  <Heroicons.perspective mini />
  <Heroicons.perspective outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def perspective(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" opacity="0.2"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,120v16H16a8,8,0,0,1,0-16Zm0,57.3a16,16,0,0,0,13.1,15.8l160,29.1h0l2.9.2a16.5,16.5,0,0,0,10.3-3.7,16.1,16.1,0,0,0,5.7-12.3V136H32ZM240,120H224v16h16a8,8,0,0,0,0-16ZM224,49.6a16.1,16.1,0,0,0-5.7-12.3,16.6,16.6,0,0,0-13.2-3.5L45.1,62.9A16,16,0,0,0,32,78.7V120H224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,214.3l-160-29.1a8,8,0,0,1-6.6-7.9V78.7a8,8,0,0,1,6.6-7.9l160-29.1a8,8,0,0,1,9.4,7.9V206.4A8,8,0,0,1,206.6,214.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="128" x2="240" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_aa` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_aa />
  <Heroicons.text_aa class="w-4 h-4" />
  <Heroicons.text_aa solid />
  <Heroicons.text_aa mini />
  <Heroicons.text_aa outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_aa(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 192 80 56 8 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="208" cy="166.9" rx="32" ry="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,112.4a34.1,34.1,0,0,1,24-9.5c17.7,0,32,12.5,32,28V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.8" y1="152" x2="29.2" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="140 192 76 56 12 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="121.2" y1="152" x2="30.8" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="204" cy="167" rx="32" ry="27" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,109a35.1,35.1,0,0,1,20-6.1c17.7,0,32,12.5,32,28V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 192 80 56 8 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="208" cy="166.9" rx="32" ry="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,112.4a34.1,34.1,0,0,1,24-9.5c17.7,0,32,12.5,32,28V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.8" y1="152" x2="29.2" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M137.9,148.2h0L87.1,52.3a8,8,0,0,0-14.2,0L22.1,148.2h0L.9,188.3a8.1,8.1,0,0,0,3.4,10.8,8.1,8.1,0,0,0,10.8-3.4L34,160h92l18.9,35.7A7.9,7.9,0,0,0,152,200a8,8,0,0,0,7.1-11.7ZM42.5,144,80,73.1,117.5,144ZM208,94.9a42,42,0,0,0-29.6,11.8,8,8,0,1,0,11.2,11.4,26,26,0,0,1,18.4-7.2c13.2,0,24,9,24,20v7.2a43,43,0,0,0-24-7.2c-22.1,0-40,16.1-40,36s17.9,36,40,36a42.9,42.9,0,0,0,24.7-7.7A7.9,7.9,0,0,0,240,200a8,8,0,0,0,8-8V130.9C248,111,230.1,94.9,208,94.9Zm0,92c-13.2,0-24-9-24-20s10.8-20,24-20,24,9,24,20S221.2,186.9,208,186.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 192 80 56 8 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="208" cy="166.9" rx="32" ry="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,112.4a34.1,34.1,0,0,1,24-9.5c17.7,0,32,12.5,32,28V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="130.8" y1="152" x2="29.2" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="152 192 80 56 8 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="208" cy="166.9" rx="32" ry="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,112.4a34.1,34.1,0,0,1,24-9.5c17.7,0,32,12.5,32,28V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="130.8" y1="152" x2="29.2" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `push_pin` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.push_pin />
  <Heroicons.push_pin class="w-4 h-4" />
  <Heroicons.push_pin solid />
  <Heroicons.push_pin mini />
  <Heroicons.push_pin outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def push_pin(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" opacity="0.2"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,107.3l-58.5,58.5c4.5,12.7,6.4,33.9-13.2,60a16.3,16.3,0,0,1-11.7,6.4h-1.1a16.1,16.1,0,0,1-11.3-4.7L88,179.3,53.7,213.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L76.7,168,28.3,119.6a15.9,15.9,0,0,1,1.3-23.8C55,75.3,79.3,79.4,90,82.7L148.7,24h0a16.1,16.1,0,0,1,22.6,0L232,84.7a15.9,15.9,0,0,1,0,22.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tabs` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tabs />
  <Heroicons.tabs class="w-4 h-4" />
  <Heroicons.tabs solid />
  <Heroicons.tabs mini />
  <Heroicons.tabs outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tabs(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M8,168,30.3,93.7A8,8,0,0,1,38,88h84a8,8,0,0,1,7.7,5.7L152,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,88h10a8,8,0,0,1,7.7,5.7L200,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,88h10a8,8,0,0,1,7.7,5.7L248,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="168" x2="248" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M12,168,34.3,93.7A8,8,0,0,1,42,88h60a8,8,0,0,1,7.7,5.7L132,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M148,88h10a8,8,0,0,1,7.7,5.7L188,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M204,88h10a8,8,0,0,1,7.7,5.7L244,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="12" y1="168" x2="244" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M8,168,30.3,93.7A8,8,0,0,1,38,88h84a8,8,0,0,1,7.7,5.7L152,168Z" opacity="0.2"/><path d="M8,168,30.3,93.7A8,8,0,0,1,38,88h84a8,8,0,0,1,7.7,5.7L152,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,88h10a8,8,0,0,1,7.7,5.7L200,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,88h10a8,8,0,0,1,7.7,5.7L248,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="8" y1="168" x2="248" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,168a8,8,0,0,1-8,8H8a8,8,0,0,1-8-8,8.5,8.5,0,0,1,.3-2.3H.4L22.6,91.4A16,16,0,0,1,38,80h84a16,16,0,0,1,15.4,11.4L158,160h31.2L170,96H160a8,8,0,0,1,0-16h10a16,16,0,0,1,15.4,11.4L206,160h31.2L218,96H208a8,8,0,0,1,0-16h10a16,16,0,0,1,15.4,11.4l22.2,74.2h.1A8.5,8.5,0,0,1,256,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M8,168,30.3,93.7A8,8,0,0,1,38,88h84a8,8,0,0,1,7.7,5.7L152,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,88h10a8,8,0,0,1,7.7,5.7L200,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,88h10a8,8,0,0,1,7.7,5.7L248,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="8" y1="168" x2="248" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M8,168,30.3,93.7A8,8,0,0,1,38,88h84a8,8,0,0,1,7.7,5.7L152,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,88h10a8,8,0,0,1,7.7,5.7L200,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,88h10a8,8,0,0,1,7.7,5.7L248,168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="8" y1="168" x2="248" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eye_closed` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eye_closed />
  <Heroicons.eye_closed class="w-4 h-4" />
  <Heroicons.eye_closed solid />
  <Heroicons.eye_closed mini />
  <Heroicons.eye_closed outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eye_closed(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="201.1" y1="127.3" x2="224" y2="166.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="154.2" y1="149.3" x2="161.3" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="101.7" y1="149.2" x2="94.6" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="54.8" y1="127.3" x2="31.9" y2="167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,104.9C48.8,125.7,79.6,152,128,152s79.2-26.3,96-47.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="201.1" y1="127.3" x2="224" y2="166.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="154.2" y1="149.3" x2="161.3" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="101.7" y1="149.2" x2="94.6" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="54.8" y1="127.3" x2="31.9" y2="167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,104.9C48.8,125.7,79.6,152,128,152s79.2-26.3,96-47.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="201.1" y1="127.3" x2="224" y2="166.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="154.2" y1="149.3" x2="161.3" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="101.7" y1="149.2" x2="94.6" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="54.8" y1="127.3" x2="31.9" y2="167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,104.9C48.8,125.7,79.6,152,128,152s79.2-26.3,96-47.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M211.5,129.2a145.8,145.8,0,0,0,18.7-19.3A7.9,7.9,0,0,0,229,98.7a7.9,7.9,0,0,0-11.2,1.1,128.7,128.7,0,0,1-21.3,21h-.2c-16.5,12.8-39,23.1-68.3,23.1a109.7,109.7,0,0,1-68.4-23.1h-.1a128.7,128.7,0,0,1-21.3-21A7.9,7.9,0,0,0,27,98.7a7.9,7.9,0,0,0-1.2,11.2,145.8,145.8,0,0,0,18.7,19.3L25,163a8,8,0,0,0,6.9,12,8.2,8.2,0,0,0,6.9-4l18.5-32.1a122.1,122.1,0,0,0,35.3,16.3l-5.9,33a8.1,8.1,0,0,0,6.5,9.3h1.4a8,8,0,0,0,7.9-6.6l5.7-32.4A139.8,139.8,0,0,0,128,160a137.3,137.3,0,0,0,19.7-1.4l5.7,32.4a8,8,0,0,0,7.9,6.6h1.4a8.1,8.1,0,0,0,6.5-9.3l-5.8-32.9A122.9,122.9,0,0,0,198.6,139L217,170.8a8,8,0,0,0,7,4,7.6,7.6,0,0,0,4-1.1,8,8,0,0,0,2.9-10.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="201.1" y1="127.3" x2="224" y2="166.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="154.2" y1="149.3" x2="161.3" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="101.7" y1="149.2" x2="94.6" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="54.8" y1="127.3" x2="31.9" y2="167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,104.9C48.8,125.7,79.6,152,128,152s79.2-26.3,96-47.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="201.1" y1="127.3" x2="224" y2="166.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="154.2" y1="149.3" x2="161.3" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="101.7" y1="149.2" x2="94.6" y2="189.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="54.8" y1="127.3" x2="31.9" y2="167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,104.9C48.8,125.7,79.6,152,128,152s79.2-26.3,96-47.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `intersect` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.intersect />
  <Heroicons.intersect class="w-4 h-4" />
  <Heroicons.intersect solid />
  <Heroicons.intersect mini />
  <Heroicons.intersect outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def intersect(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="160" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="122.5" y1="98.5" x2="157.5" y2="133.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="98.5" y1="122.5" x2="133.5" y2="157.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="160" cy="160" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="109.1" y1="109.1" x2="146.9" y2="146.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,160c0,2.5.5,4.8.7,7.3,2.5.2,4.8.7,7.3.7a72,72,0,0,0,72-72c0-2.5-.5-4.8-.7-7.3-2.5-.2-4.8-.7-7.3-.7A72,72,0,0,0,88,160Z" opacity="0.2"/><circle cx="96" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="160" cy="160" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M174.6,81.4a80,80,0,1,0-93.2,93.2,80,80,0,1,0,93.2-93.2ZM32,96A64,64,0,0,1,158,80.1,79.9,79.9,0,0,0,80.1,158,64.2,64.2,0,0,1,32,96ZM160,224a64.2,64.2,0,0,1-62-48.1A79.9,79.9,0,0,0,175.9,98,64,64,0,0,1,160,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="160" cy="160" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="122.5" y1="98.5" x2="157.5" y2="133.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="98.5" y1="122.5" x2="133.5" y2="157.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="96" cy="96" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="160" cy="160" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="122.5" y1="98.5" x2="157.5" y2="133.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="98.5" y1="122.5" x2="133.5" y2="157.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ear` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ear />
  <Heroicons.ear class="w-4 h-4" />
  <Heroicons.ear solid />
  <Heroicons.ear mini />
  <Heroicons.ear outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ear(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,152a20,20,0,0,1-40,0c0-24,28-24,28-48a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M178.3,160a20,20,0,0,1-38.3-8c0-24,28-24,28-48a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0C208,144,209,169,161.9,216Z" opacity="0.2"/><path d="M180,152a20,20,0,0,1-40,0c0-24,28-24,28-48a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,152a28,28,0,0,1-56,0c0-15.7,9.3-23.7,16.8-30.1S160,111.9,160,104a32,32,0,0,0-64,0,8,8,0,0,1-16,0,48,48,0,0,1,96,0c0,15.7-9.3,23.7-16.8,30.1S148,144.1,148,152a12,12,0,0,0,24,0,8,8,0,0,1,16,0ZM128,16a88.1,88.1,0,0,0-88,88c0,33.5,12.5,45.5,22.5,55.2,7.8,7.5,13.5,13,13.5,28.8a52,52,0,0,0,92.1,33.1,8.1,8.1,0,0,0-1.1-11.3,7.9,7.9,0,0,0-11.2,1.1A36,36,0,0,1,92,188c0-22.6-9.8-32-18.4-40.4S56,130.7,56,104a72,72,0,0,1,144,0,8,8,0,0,0,16,0A88.1,88.1,0,0,0,128,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,152a20,20,0,0,1-40,0c0-24,28-24,28-48a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,152a20,20,0,0,1-40,0c0-24,28-24,28-48a40,40,0,0,0-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M161.9,216A44,44,0,0,1,84,188c0-41.5-36-28-36-84a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `download_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.download_simple />
  <Heroicons.download_simple class="w-4 h-4" />
  <Heroicons.download_simple solid />
  <Heroicons.download_simple mini />
  <Heroicons.download_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def download_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 110 128 152 170 110" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 110 128 152 170 110" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="40" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 110 128 152 170 110" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="40" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80.3,115.7a8.2,8.2,0,0,1-1.7-8.7,8,8,0,0,1,7.4-5h34V40a8,8,0,0,1,16,0v62h34a8,8,0,0,1,7.4,5,8.2,8.2,0,0,1-1.7,8.7l-42,42a8.2,8.2,0,0,1-11.4,0ZM216,144a8,8,0,0,0-8,8v56H48V152a8,8,0,0,0-16,0v56a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V152A8,8,0,0,0,216,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 110 128 152 170 110" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="40" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 110 128 152 170 110" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="40" x2="128" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bandaids` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bandaids />
  <Heroicons.bandaids class="w-4 h-4" />
  <Heroicons.bandaids solid />
  <Heroicons.bandaids mini />
  <Heroicons.bandaids outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bandaids(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M49.4,94.6A32,32,0,0,1,94.6,49.4l112,112a32,32,0,0,1-45.2,45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.4,49.4a32,32,0,0,1,45.2,45.2l-112,112a32,32,0,0,1-45.2-45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" opacity="0.5"/><circle cx="128" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M49.4,94.6A32,32,0,0,1,94.6,49.4l112,112a32,32,0,0,1-45.2,45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M161.4,49.4a32,32,0,0,1,45.2,45.2l-112,112a32,32,0,0,1-45.2-45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M206.6,94.6a32,32,0,0,0-45.2-45.2L128,82.7,173.3,128Z" opacity="0.2"/><path d="M49.4,161.4a32,32,0,0,0,45.2,45.2L128,173.3,82.7,128Z" opacity="0.2"/><path d="M94.6,49.4A32,32,0,0,0,49.4,94.6L82.7,128,128,82.7Z" opacity="0.2"/><path d="M173.3,128,128,173.3l33.4,33.3a32,32,0,0,0,45.2-45.2Z" opacity="0.2"/><path d="M49.4,94.6A32,32,0,0,1,94.6,49.4l112,112a32,32,0,0,1-45.2,45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M161.4,49.4a32,32,0,0,1,45.2,45.2l-112,112a32,32,0,0,1-45.2-45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" opacity="0.5"/><circle cx="128" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="12"/><path d="M184.6,128l27.7-27.7a40,40,0,0,0-56.6-56.6L128,71.4,100.3,43.7a40,40,0,0,0-56.6,56.6L71.4,128,43.7,155.7a40,40,0,0,0,56.6,56.6L128,184.6l27.7,27.7a40,40,0,0,0,56.6-56.6ZM128,94.1,161.9,128,128,161.9,94.1,128ZM167,55a24,24,0,0,1,34,34l-27.7,27.7-34-34ZM89,201a24,24,0,0,1-34-34l27.7-27.7,34,34Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M49.4,94.6A32,32,0,0,1,94.6,49.4l112,112a32,32,0,0,1-45.2,45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M161.4,49.4a32,32,0,0,1,45.2,45.2l-112,112a32,32,0,0,1-45.2-45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12" opacity="0.5"/><circle cx="128" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.4,49.4a32,32,0,0,1,45.2,45.2l-112,112a32,32,0,0,1-45.2-45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M49.4,94.6A32,32,0,0,1,94.6,49.4l112,112a32,32,0,0,1-45.2,45.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8" opacity="0.5"/><circle cx="128" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_lines_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_lines_left />
  <Heroicons.arrow_fat_lines_left class="w-4 h-4" />
  <Heroicons.arrow_fat_lines_left solid />
  <Heroicons.arrow_fat_lines_left mini />
  <Heroicons.arrow_fat_lines_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_lines_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 152 176 152 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="176" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 140 176 140 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="212" y1="176" x2="212" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="176" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 152 176 152 80 120 80 120 32" opacity="0.2"/><polygon points="120 32 24 128 120 224 120 176 152 176 152 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="184" y1="176" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.3,229.7l-96-96a8.1,8.1,0,0,1,0-11.4l96-96a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,128,32V72h24a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8H128v40a8,8,0,0,1-4.9,7.4A8.4,8.4,0,0,1,114.3,229.7ZM216,184a8,8,0,0,0,8-8V80a8,8,0,0,0-16,0v96A8,8,0,0,0,216,184Zm-32,0a8,8,0,0,0,8-8V80a8,8,0,0,0-16,0v96A8,8,0,0,0,184,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 152 176 152 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="184" y1="176" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 24 128 120 224 120 176 152 176 152 80 120 80 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="176" x2="216" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="184" y1="176" x2="184" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_down_right />
  <Heroicons.arrow_line_down_right class="w-4 h-4" />
  <Heroicons.arrow_line_down_right solid />
  <Heroicons.arrow_line_down_right mini />
  <Heroicons.arrow_line_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 100 192 200 92 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 100 192 200 92 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 100 192 200 92 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,100V200a8,8,0,0,1-8,8H92a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8L130.7,150,74.3,93.7A8.1,8.1,0,0,1,85.7,82.3L142,138.7l44.3-44.4a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,200,100Zm16-68H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 100 192 200 92 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="88" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 100 192 200 92 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="40" x2="216" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shuffle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shuffle />
  <Heroicons.shuffle class="w-4 h-4" />
  <Heroicons.shuffle solid />
  <Heroicons.shuffle mini />
  <Heroicons.shuffle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shuffle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H55.1a64,64,0,0,1,52,26.8l41.8,58.4a64,64,0,0,0,52,26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.7,100.5l1.2-1.7a64,64,0,0,1,52-26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184H55.1a64,64,0,0,0,52-26.8l1.2-1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H55.1a64,64,0,0,1,52,26.8l41.8,58.4a64,64,0,0,0,52,26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152.8,93.9A63.7,63.7,0,0,1,200.9,72H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,184H55.1a63.7,63.7,0,0,0,48.1-21.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H55.1a64,64,0,0,1,52,26.8l41.8,58.4a64,64,0,0,0,52,26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.7,100.5l1.2-1.7a64,64,0,0,1,52-26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184H55.1a64,64,0,0,0,52-26.8l1.2-1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,178.3a8.1,8.1,0,0,1,0,11.4l-24,24A8.3,8.3,0,0,1,208,216a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,200,208V192a72.2,72.2,0,0,1-57.7-30.2l-41.7-58.3A56.1,56.1,0,0,0,55.1,80H32a8,8,0,0,1,0-16H55.1a72.2,72.2,0,0,1,58.6,30.2l41.7,58.3A55.9,55.9,0,0,0,200,176V160a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7ZM143,107a8,8,0,0,0,11.2-1.9l1.2-1.6A55.9,55.9,0,0,1,200,80V96a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l24-24a8.1,8.1,0,0,0,0-11.4l-24-24a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,200,48V64a72.2,72.2,0,0,0-57.7,30.2l-1.1,1.6A8,8,0,0,0,143,107Zm-30,42a8,8,0,0,0-11.2,1.9l-1.2,1.6A56.1,56.1,0,0,1,55.1,176H32a8,8,0,0,0,0,16H55.1a72.2,72.2,0,0,0,58.6-30.2l1.1-1.6A8,8,0,0,0,113,149Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H55.1a64,64,0,0,1,52,26.8l41.8,58.4a64,64,0,0,0,52,26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M147.7,100.5l1.2-1.7a64,64,0,0,1,52-26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,184H55.1a64,64,0,0,0,52-26.8l1.2-1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H55.1a64,64,0,0,1,52,26.8l41.8,58.4a64,64,0,0,0,52,26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M147.7,100.5l1.2-1.7a64,64,0,0,1,52-26.8H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,184H55.1a64,64,0,0,0,52-26.8l1.2-1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `piano_keys` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.piano_keys />
  <Heroicons.piano_keys class="w-4 h-4" />
  <Heroicons.piano_keys solid />
  <Heroicons.piano_keys mini />
  <Heroicons.piano_keys outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def piano_keys(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="216" x2="92" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="216" x2="164" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184 40 184 144 144 144 144 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 40 112 144 72 144 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="216" x2="100" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="216" x2="156" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 40 176 144 128 144 128 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 40 128 144 80 144 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="92" y1="216" x2="92" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="216" x2="164" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="184 40 184 144 144 144 144 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 40 112 144 72 144 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="40" width="40" height="104" opacity="0.2"/><rect x="72" y="40" width="40" height="104" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM108,152a8,8,0,0,0,8-8V48h24v96a8,8,0,0,0,8,8h8v56H100V152ZM48,48H68v96a8,8,0,0,0,8,8h8v56H48ZM208,208H172V152h8a8,8,0,0,0,8-8V48h20V208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="92" y1="216" x2="92" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164" y1="216" x2="164" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="184 40 184 144 144 144 144 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="112 40 112 144 72 144 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="92" y1="216" x2="92" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164" y1="216" x2="164" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="184 40 184 144 144 144 144 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="112 40 112 144 72 144 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `password` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.password />
  <Heroicons.password class="w-4 h-4" />
  <Heroicons.password solid />
  <Heroicons.password mini />
  <Heroicons.password outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def password(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="73.6" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="85.2" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="122.8" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="134.4" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="96" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.2" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="218.8" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.4" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="36" y1="56" x2="36" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="96" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="73.6" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="85.2" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="122.8" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="134.4" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="96" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="169.6" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="181.2" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="218.8" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="230.4" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="96" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="73.6" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="85.2" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="122.8" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="134.4" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="96" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="181.2" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="218.8" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="230.4" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,56V200a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0Zm84,54.5L112,117V96a8,8,0,0,0-16,0v21l-20-6.5a7.8,7.8,0,0,0-10,5.1,7.9,7.9,0,0,0,5.1,10.1l20,6.5-12.4,17a8,8,0,0,0,1.8,11.2,8.1,8.1,0,0,0,11.2-1.8l12.3-17,12.3,17a8.1,8.1,0,0,0,11.2,1.8,8,8,0,0,0,1.8-11.2l-12.4-17,20-6.5a7.9,7.9,0,0,0,5.1-10.1A7.8,7.8,0,0,0,132,110.5Zm106,5.1a7.8,7.8,0,0,0-10-5.1L208,117V96a8,8,0,0,0-16,0v21l-20-6.5a7.8,7.8,0,0,0-10,5.1,7.9,7.9,0,0,0,5.1,10.1l20,6.5-12.4,17a8,8,0,0,0,1.8,11.2,8.1,8.1,0,0,0,11.2-1.8l12.3-17,12.3,17a8.1,8.1,0,0,0,11.2,1.8,8,8,0,0,0,1.8-11.2l-12.4-17,20-6.5A7.9,7.9,0,0,0,238,115.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="96" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="73.6" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="85.2" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="122.8" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="134.4" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="96" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="169.6" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="181.2" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="218.8" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="230.4" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="96" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="73.6" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="85.2" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="122.8" y1="153.9" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="134.4" y1="118.1" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="96" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="169.6" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="181.2" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="218.8" y1="153.9" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="230.4" y1="118.1" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_minus />
  <Heroicons.folder_simple_minus class="w-4 h-4" />
  <Heroicons.folder_simple_minus solid />
  <Heroicons.folder_simple_minus mini />
  <Heroicons.folder_simple_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" opacity="0.2"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72Zm-64,80H104a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,88V200.9a7.1,7.1,0,0,1-7.1,7.1H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216A8,8,0,0,1,224,88Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three_outline_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three_outline_vertical />
  <Heroicons.dots_three_outline_vertical class="w-4 h-4" />
  <Heroicons.dots_three_outline_vertical solid />
  <Heroicons.dots_three_outline_vertical mini />
  <Heroicons.dots_three_outline_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three_outline_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="48" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="208" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="48" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="208" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" opacity="0.1"/><circle cx="128" cy="48" r="24" opacity="0.1"/><circle cx="128" cy="208" r="24" opacity="0.1"/><circle cx="128" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="48" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="128" cy="208" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,128a28,28,0,1,1-28-28A28.1,28.1,0,0,1,156,128ZM128,76a28,28,0,1,0-28-28A28.1,28.1,0,0,0,128,76Zm0,104a28,28,0,1,0,28,28A28.1,28.1,0,0,0,128,180Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="208" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tray` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tray />
  <Heroicons.tray class="w-4 h-4" />
  <Heroicons.tray solid />
  <Heroicons.tray mini />
  <Heroicons.tray outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tray(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,156H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M76.7,160a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8V160Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V159.9h0V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V168H76.7L96,187.3a15.9,15.9,0,0,0,11.3,4.7h41.4a15.9,15.9,0,0,0,11.3-4.7L179.3,168H208v40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,160H76.7a7.9,7.9,0,0,1,5.6,2.3l19.4,19.4a7.9,7.9,0,0,0,5.6,2.3h41.4a7.9,7.9,0,0,0,5.6-2.3l19.4-19.4a7.9,7.9,0,0,1,5.6-2.3H216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cactus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cactus />
  <Heroicons.cactus class="w-4 h-4" />
  <Heroicons.cactus solid />
  <Heroicons.cactus mini />
  <Heroicons.cactus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cactus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44Z" opacity="0.2"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,216a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H88V140H84A68.1,68.1,0,0,1,16,72a28,28,0,0,1,56,0A12,12,0,0,0,84,84h4V56a40,40,0,0,1,80,0v68h4a12,12,0,0,0,12-12,28,28,0,0,1,56,0,68.1,68.1,0,0,1-68,68h-4v28h48A8,8,0,0,1,224,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,216V132H84A60,60,0,0,1,24,72h0A20.1,20.1,0,0,1,44,52h0A20.1,20.1,0,0,1,64,72h0A20.1,20.1,0,0,0,84,92H96V56a32,32,0,0,1,32-32h0a32,32,0,0,1,32,32v76h12a20.1,20.1,0,0,0,20-20h0a20.1,20.1,0,0,1,20-20h0a20.1,20.1,0,0,1,20,20h0a60,60,0,0,1-60,60H160v44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `repeat` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.repeat />
  <Heroicons.repeat class="w-4 h-4" />
  <Heroicons.repeat solid />
  <Heroicons.repeat mini />
  <Heroicons.repeat outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def repeat(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,128A72.1,72.1,0,0,1,96,56h96V40a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l24,24a8.1,8.1,0,0,1,0,11.4l-24,24A8.3,8.3,0,0,1,200,96a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,192,88V72H96a56,56,0,0,0-56,56,8,8,0,0,1-16,0Zm200-8a8,8,0,0,0-8,8,56,56,0,0,1-56,56H64V168a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-24,24a8.1,8.1,0,0,0,0,11.4l24,24A8.3,8.3,0,0,0,56,224a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,64,216V200h96a72.1,72.1,0,0,0,72-72A8,8,0,0,0,224,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="200 88 224 64 200 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,128A64.1,64.1,0,0,1,96,64H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 168 32 192 56 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,128a64.1,64.1,0,0,1-64,64H32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `star` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.star />
  <Heroicons.star class="w-4 h-4" />
  <Heroicons.star solid />
  <Heroicons.star mini />
  <Heroicons.star outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def star(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" opacity="0.2"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.2,97.4A16.4,16.4,0,0,0,224.6,86l-59.4-4.1-22-55.5A16.4,16.4,0,0,0,128,16h0a16.4,16.4,0,0,0-15.2,10.4L90.4,82.2,31.4,86A16.5,16.5,0,0,0,16.8,97.4,16.8,16.8,0,0,0,22,115.5l45.4,38.4L53.9,207a18.5,18.5,0,0,0,7,19.6,18,18,0,0,0,20.1.6l46.9-29.7h.2l50.5,31.9a16.1,16.1,0,0,0,8.7,2.6,16.5,16.5,0,0,0,15.8-20.8l-14.3-58.1L234,115.5A16.8,16.8,0,0,0,239.2,97.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.4,190.7l50.4,32c6.5,4.1,14.5-2,12.6-9.5l-14.6-57.4a8.7,8.7,0,0,1,2.9-8.8l45.2-37.7c5.9-4.9,2.9-14.8-4.8-15.3l-59-3.8a8.3,8.3,0,0,1-7.3-5.4l-22-55.4a8.3,8.3,0,0,0-15.6,0l-22,55.4a8.3,8.3,0,0,1-7.3,5.4L31.9,94c-7.7.5-10.7,10.4-4.8,15.3L72.3,147a8.7,8.7,0,0,1,2.9,8.8L61.7,209c-2.3,9,7.3,16.3,15,11.4l46.9-29.7A8.2,8.2,0,0,1,132.4,190.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `square_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.square_logo />
  <Heroicons.square_logo class="w-4 h-4" />
  <Heroicons.square_logo solid />
  <Heroicons.square_logo mini />
  <Heroicons.square_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def square_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="96" y="96" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="96" y="96" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="96" y="96" width="64" height="64" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="96" y="96" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208ZM168,96v64a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8h64A8,8,0,0,1,168,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="96" y="96" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="96" y="96" width="64" height="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hamburger` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hamburger />
  <Heroicons.hamburger class="w-4 h-4" />
  <Heroicons.hamburger solid />
  <Heroicons.hamburger mini />
  <Heroicons.hamburger outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hamburger(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48.8,96A8,8,0,0,1,41,86.3C47.4,55.5,83.9,32,128,32s80.6,23.5,87,54.3a8,8,0,0,1-7.8,9.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,168v16a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="28 176 68 160 108 176 148 160 188 176 228 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,112a80,80,0,0,1,160,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,160v24a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="28 168 68 152 108 168 148 152 188 168 228 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="112" x2="232" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48.8,96A8,8,0,0,1,41,86.3C47.4,55.5,83.9,32,128,32s80.6,23.5,87,54.3a8,8,0,0,1-7.8,9.7Z" opacity="0.2"/><path d="M68,160l40,16,40-16,40,16,20-8v16a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V168Z" opacity="0.2"/><path d="M48.8,96A8,8,0,0,1,41,86.3C47.4,55.5,83.9,32,128,32s80.6,23.5,87,54.3a8,8,0,0,1-7.8,9.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,168v16a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="28 176 68 160 108 176 148 160 188 176 228 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36.4,98.1a16.3,16.3,0,0,1-3.2-13.5C40.5,49.5,80.4,24,128,24s87.5,25.5,94.8,60.6A16,16,0,0,1,207.2,104H48.8A16.2,16.2,0,0,1,36.4,98.1ZM225,152.6l-20.1,8h0L188,167.4l-37-14.8a7.8,7.8,0,0,0-6,0l-37,14.8L71,152.6a7.8,7.8,0,0,0-6,0l-20.1,8h0l-19.9,8A8,8,0,0,0,28,184a8,8,0,0,0,3-.6l9-3.6V184a40,40,0,0,0,40,40h96a40,40,0,0,0,40-40V173.4l15-6a8,8,0,0,0-6-14.8Zm7-32.6H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48.8,96A8,8,0,0,1,41,86.3C47.4,55.5,83.9,32,128,32s80.6,23.5,87,54.3a8,8,0,0,1-7.8,9.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,168v16a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="28 176 68 160 108 176 148 160 188 176 228 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48.8,96A8,8,0,0,1,41,86.3C47.4,55.5,83.9,32,128,32s80.6,23.5,87,54.3a8,8,0,0,1-7.8,9.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,168v16a32,32,0,0,1-32,32H80a32,32,0,0,1-32-32V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="28 176 68 160 108 176 148 160 188 176 228 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_up_right />
  <Heroicons.arrow_elbow_up_right class="w-4 h-4" />
  <Heroicons.arrow_elbow_up_right solid />
  <Heroicons.arrow_elbow_up_right mini />
  <Heroicons.arrow_elbow_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 80 160 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 224 64 80 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 80 160 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 224 64 80 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 80 160 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 224 64 80 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,85.7l-48,48A8.3,8.3,0,0,1,160,136a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,152,128V88H72V224a8,8,0,0,1-16,0V80a8,8,0,0,1,8-8h88V32a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,213.7,85.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 80 160 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 224 64 80 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 80 160 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 224 64 80 208 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_horizontal />
  <Heroicons.arrows_horizontal class="w-4 h-4" />
  <Heroicons.arrows_horizontal solid />
  <Heroicons.arrows_horizontal mini />
  <Heroicons.arrows_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 96 24 128 56 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 96 232 128 200 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="60 96 28 128 60 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="196 96 228 128 196 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="28" y1="128" x2="228" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 96 24 128 56 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 96 232 128 200 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,133.7l-32,32A8.3,8.3,0,0,1,200,168a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,192,160V136H64v24a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-32-32a8.1,8.1,0,0,1,0-11.4l32-32a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,64,96v24H192V96a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l32,32A8.1,8.1,0,0,1,237.7,133.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 96 24 128 56 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="200 96 232 128 200 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 96 24 128 56 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="200 96 232 128 200 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="128" x2="232" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `heartbeat` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.heartbeat />
  <Heroicons.heartbeat class="w-4 h-4" />
  <Heroicons.heartbeat solid />
  <Heroicons.heartbeat mini />
  <Heroicons.heartbeat outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def heartbeat(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 128 72 128 88 104 120 152 136 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M28.1,96c-.1-1.3-.1-2.7-.1-4A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92c0,68-100,124-100,124s-39.9-22.4-69.3-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 128 72 128 88 104 120 152 136 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M28.1,88.2A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92c0,68-100,124-100,124s-33.7-18.9-62-48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z" opacity="0.2"/><polyline points="32 128 72 128 88 104 120 152 136 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M28.1,96c-.1-1.3-.1-2.7-.1-4A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92c0,68-100,124-100,124s-39.9-22.4-69.3-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236,92c0,30.6-17.7,62-52.6,93.4A314.3,314.3,0,0,1,131.9,223a8.1,8.1,0,0,1-7.8,0c-3.2-1.8-60.4-34.3-88.6-80.9a4,4,0,0,1,3.4-6.1H72a7.9,7.9,0,0,0,6.7-3.6l9.3-14,25.3,38a8.1,8.1,0,0,0,9.2,3.2,8.8,8.8,0,0,0,4.3-3.3L140.3,136h19.4a8.2,8.2,0,0,0,8.3-7.5,8,8,0,0,0-8-8.5H136a7.9,7.9,0,0,0-6.7,3.6l-9.3,14-25.3-38a8.1,8.1,0,0,0-9.2-3.2,8.8,8.8,0,0,0-4.3,3.3L67.7,120H27.8a4,4,0,0,1-3.8-2.8A86.2,86.2,0,0,1,20,92,60,60,0,0,1,128,56,60,60,0,0,1,236,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 128 72 128 88 104 120 152 136 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M28.1,96c-.1-1.3-.1-2.7-.1-4A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92c0,68-100,124-100,124s-39.9-22.4-69.3-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="32 128 72 128 88 104 120 152 136 128 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M28.1,96c-.1-1.3-.1-2.7-.1-4A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92c0,68-100,124-100,124s-39.9-22.4-69.3-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_right_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_right_down />
  <Heroicons.arrow_u_right_down class="w-4 h-4" />
  <Heroicons.arrow_u_right_down solid />
  <Heroicons.arrow_u_right_down mini />
  <Heroicons.arrow_u_right_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_right_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 176 168 224 216 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,176V88a56,56,0,0,1,56-56h0a56,56,0,0,1,56,56V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 176 168 224 216 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,176V88a56,56,0,0,1,56-56h0a56,56,0,0,1,56,56V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 176 168 224 216 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,176V88a56,56,0,0,1,56-56h0a56,56,0,0,1,56,56V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.7,181.7l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,120,168h40V88a48,48,0,0,0-96,0v88a8,8,0,0,1-16,0V88a64,64,0,0,1,128,0v80h40a8,8,0,0,1,7.4,4.9A8.4,8.4,0,0,1,221.7,181.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 176 168 224 216 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,176V88a56,56,0,0,1,56-56h0a56,56,0,0,1,56,56V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 176 168 224 216 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,176V88a56,56,0,0,1,56-56h0a56,56,0,0,1,56,56V224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_branch` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_branch />
  <Heroicons.git_branch class="w-4 h-4" />
  <Heroicons.git_branch solid />
  <Heroicons.git_branch mini />
  <Heroicons.git_branch outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_branch(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68,160v-8a23.9,23.9,0,0,1,24-24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M68,160v-8a23.9,23.9,0,0,1,24-24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="68" r="28" opacity="0.2"/><path d="M68,160v-8a23.9,23.9,0,0,1,24-24h72a24,24,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,68a36,36,0,1,0-44,35.1v.9a16,16,0,0,1-16,16H92a32.2,32.2,0,0,0-16,4.3V103.1a36,36,0,1,0-16,0v49.8a36,36,0,1,0,16,0V152a16,16,0,0,1,16-16h72a32.1,32.1,0,0,0,32-32v-.9A36.1,36.1,0,0,0,224,68ZM48,68A20,20,0,1,1,68,88,20.1,20.1,0,0,1,48,68ZM88,188a20,20,0,1,1-20-20A20.1,20.1,0,0,1,88,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M68,160v-8a23.9,23.9,0,0,1,24-24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M68,160v-8a23.9,23.9,0,0,1,24-24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `globe` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.globe />
  <Heroicons.globe class="w-4 h-4" />
  <Heroicons.globe solid />
  <Heroicons.globe mini />
  <Heroicons.globe outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def globe(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="37.5" y1="96" x2="218.5" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.5" y1="160" x2="218.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="37.5" y1="96" x2="218.5" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="37.5" y1="160" x2="218.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="37.5" y1="96" x2="218.5" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.5" y1="160" x2="218.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M225.9,163.2l.3-1a103.7,103.7,0,0,0,0-68.4l-.3-1A104.2,104.2,0,0,0,128,24h0A104.2,104.2,0,0,0,30.1,92.8l-.3,1a103.7,103.7,0,0,0,0,68.4l.3,1A104.4,104.4,0,0,0,128,232h0A104.2,104.2,0,0,0,225.9,163.2ZM128,45.6A108.6,108.6,0,0,1,153.5,88h-51A108.6,108.6,0,0,1,128,45.6ZM102.5,168h51A108.6,108.6,0,0,1,128,210.4,108.6,108.6,0,0,1,102.5,168Zm-4.2-16a126.4,126.4,0,0,1,0-48h59.4a126.4,126.4,0,0,1,0,48ZM174,104h38.7a88.9,88.9,0,0,1,0,48H174a145,145,0,0,0,0-48Zm32.4-16h-36a128.7,128.7,0,0,0-24.1-46.1A88.6,88.6,0,0,1,206.4,88ZM146.3,214.1A128.7,128.7,0,0,0,170.4,168h36A88.6,88.6,0,0,1,146.3,214.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="37.5" y1="96" x2="218.5" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="37.5" y1="160" x2="218.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="37.5" y1="96" x2="218.5" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="37.5" y1="160" x2="218.5" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="128" cy="128" rx="40" ry="93.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pinwheel` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pinwheel />
  <Heroicons.pinwheel class="w-4 h-4" />
  <Heroicons.pinwheel solid />
  <Heroicons.pinwheel mini />
  <Heroicons.pinwheel outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pinwheel(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.7,27.1a52,52,0,0,1,35.6,97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M145.3,212.9a52,52,0,0,1-35.6-97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164.5" y1="164.5" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.7,27.1a52,52,0,0,1,35.6,97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M145.3,212.9a52,52,0,0,1-35.6-97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164.5" y1="164.5" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" opacity="0.2"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" opacity="0.2"/><path d="M94.7,27.1a52,52,0,0,1,35.6,97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M145.3,212.9a52,52,0,0,1-35.6-97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164.5" y1="164.5" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.7,218.3l-48.4-48.4,3.3-1a59.6,59.6,0,0,0,33.9-31.1,60.4,60.4,0,0,0,2-45.9,8.4,8.4,0,0,0-4.2-4.5,7.6,7.6,0,0,0-6.1-.2l-44.4,16.1,1-2A60,60,0,0,0,91.9,19.5a8.4,8.4,0,0,0-4.5,4.2,7.6,7.6,0,0,0-.2,6.1l16.1,44.4-2-1a60,60,0,0,0-81.8,74.9,8.4,8.4,0,0,0,4.2,4.5,7.7,7.7,0,0,0,3.4.7,6.5,6.5,0,0,0,2.7-.5l44.4-16.1-1,2a60,60,0,0,0,54.3,85.4,61.2,61.2,0,0,0,20.6-3.6,8.4,8.4,0,0,0,4.5-4.2,7.6,7.6,0,0,0,.2-6.1l-16.1-44.4,2,1a59.6,59.6,0,0,0,22.4,5.6l57.2,57.3a8.2,8.2,0,0,0,11.4,0A8.1,8.1,0,0,0,229.7,218.3ZM131.1,36a44.2,44.2,0,0,1,3.7,77.9L105.2,32.5A43.8,43.8,0,0,1,131.1,36ZM108.9,204a44.2,44.2,0,0,1-3.7-77.9l29.6,81.4A43.8,43.8,0,0,1,108.9,204Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.7,27.1a52,52,0,0,1,35.6,97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M145.3,212.9a52,52,0,0,1-35.6-97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164.5" y1="164.5" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.7,27.1a52,52,0,0,1,35.6,97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M27.1,145.3a52,52,0,0,1,97.7-35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M145.3,212.9a52,52,0,0,1-35.6-97.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M212.9,94.7a52,52,0,0,1-97.7,35.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164.5" y1="164.5" x2="224" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `key` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.key />
  <Heroicons.key class="w-4 h-4" />
  <Heroicons.key solid />
  <Heroicons.key mini />
  <Heroicons.key outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def key(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="76" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" opacity="0.2"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,16A80.1,80.1,0,0,0,83.9,120.8L26.3,178.3A8.1,8.1,0,0,0,24,184v40a8,8,0,0,0,8,8H72a8,8,0,0,0,8-8V208H96a8,8,0,0,0,8-8V184h16a8.1,8.1,0,0,0,5.7-2.3l9.5-9.6A80,80,0,1,0,160,16Zm20,76a16,16,0,1,1,16-16A16,16,0,0,1,180,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="76" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.2,122.8A70.3,70.3,0,0,1,88,96a72,72,0,1,1,72,72,70.3,70.3,0,0,1-26.8-5.2h0L120,176H96v24H72v24H32V184l61.2-61.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="76" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eye_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eye_slash />
  <Heroicons.eye_slash class="w-4 h-4" />
  <Heroicons.eye_slash solid />
  <Heroicons.eye_slash mini />
  <Heroicons.eye_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eye_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M214.4,163.6C232.1,145.7,240,128,240,128S208,56,128,56c-3.8,0-7.4.2-11,.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Zm0,112a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M247.3,124.8c-.3-.8-8.8-19.6-27.6-38.5C194.6,61.3,162.9,48,128,48a132.4,132.4,0,0,0-22,1.8,8.1,8.1,0,0,0-4.6,13.3L202.7,174.5a8,8,0,0,0,5.9,2.6,8.6,8.6,0,0,0,5.4-2c22.8-20.5,32.9-42.9,33.3-43.8A8.2,8.2,0,0,0,247.3,124.8Z"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L61.3,66.5C25,88.8,9.4,123.2,8.7,124.8a8.2,8.2,0,0,0,0,6.5c.3.7,8.8,19.5,27.6,38.4C61.4,194.7,93.1,208,128,208a126.9,126.9,0,0,0,52.1-10.8l22,24.2A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3ZM128,164a36,36,0,0,1-29.5-56.6l47.2,51.9A35.4,35.4,0,0,1,128,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sun_horizon` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sun_horizon />
  <Heroicons.sun_horizon class="w-4 h-4" />
  <Heroicons.sun_horizon solid />
  <Heroicons.sun_horizon mini />
  <Heroicons.sun_horizon outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sun_horizon(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92.8" y1="59" x2="85.1" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="43" y1="108.8" x2="24.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213" y1="108.8" x2="231.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="163.2" y1="59" x2="170.9" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="160" x2="16" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="200" x2="48" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.2,160a60,60,0,1,1,115.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92.8" y1="59" x2="85.1" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="43" y1="108.8" x2="24.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="213" y1="108.8" x2="231.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="163.2" y1="59" x2="170.9" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="240" y1="160" x2="16" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="200" x2="48" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M77.4,160A53.2,53.2,0,0,1,76,148a52,52,0,0,1,104,0,53.2,53.2,0,0,1-1.4,12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.2,160a60,60,0,1,1,115.6,0Z" opacity="0.2"/><line x1="92.8" y1="59" x2="85.1" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="43" y1="108.8" x2="24.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213" y1="108.8" x2="231.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="163.2" y1="59" x2="170.9" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="160" x2="16" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="200" x2="48" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M70.2,160a60,60,0,1,1,115.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M77.7,43.6a8.1,8.1,0,0,1,4.4-10.5,7.9,7.9,0,0,1,10.4,4.4l7.7,18.4a8.1,8.1,0,0,1-4.3,10.5,8.5,8.5,0,0,1-3.1.6,8.2,8.2,0,0,1-7.4-4.9ZM21.5,108.5l18.4,7.7a8.5,8.5,0,0,0,3.1.6,8,8,0,0,0,3.1-15.4L27.6,93.7a8.1,8.1,0,0,0-10.5,4.4A7.9,7.9,0,0,0,21.5,108.5ZM213,116.8a8.5,8.5,0,0,0,3.1-.6l18.4-7.7a7.9,7.9,0,0,0,4.4-10.4,8.1,8.1,0,0,0-10.5-4.4l-18.5,7.7a8,8,0,0,0,3.1,15.4ZM160.1,66.4a8.5,8.5,0,0,0,3.1.6,8.2,8.2,0,0,0,7.4-4.9l7.7-18.5a8.1,8.1,0,0,0-4.4-10.5,7.9,7.9,0,0,0-10.4,4.4l-7.7,18.4A8.1,8.1,0,0,0,160.1,66.4ZM240,152H195.5a70.1,70.1,0,0,0,.5-8,68,68,0,0,0-136,0,70.1,70.1,0,0,0,.5,8H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-32,40H48a8,8,0,0,0,0,16H208a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92.8" y1="59" x2="85.1" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="43" y1="108.8" x2="24.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="213" y1="108.8" x2="231.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="163.2" y1="59" x2="170.9" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="240" y1="160" x2="16" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="200" x2="48" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M70.2,160a60,60,0,1,1,115.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="92.8" y1="59" x2="85.1" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="43" y1="108.8" x2="24.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="213" y1="108.8" x2="231.5" y2="101.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="163.2" y1="59" x2="170.9" y2="40.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="240" y1="160" x2="16" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="200" x2="48" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M70.2,160a60,60,0,1,1,115.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_charging_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_charging_vertical />
  <Heroicons.battery_charging_vertical class="w-4 h-4" />
  <Heroicons.battery_charging_vertical solid />
  <Heroicons.battery_charging_vertical mini />
  <Heroicons.battery_charging_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_charging_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 172 144 132 112 132 128 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="100" y1="12" x2="156" y2="12" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="56" y="48" width="144" height="180" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 178 144 138 112 138 128 98" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="56" y="40" width="144" height="184" rx="16" opacity="0.2"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 172 144 132 112 132 128 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,16h64a8,8,0,0,0,0-16H96a8,8,0,0,0,0,16Z"/><path d="M184,32H72A24.1,24.1,0,0,0,48,56V208a24.1,24.1,0,0,0,24,24H184a24.1,24.1,0,0,0,24-24V56A24.1,24.1,0,0,0,184,32ZM151.4,135l-16,40a7.9,7.9,0,0,1-7.4,5,8,8,0,0,1-3-.6,7.9,7.9,0,0,1-4.4-10.4l11.6-29H112a7.9,7.9,0,0,1-6.6-3.5,8,8,0,0,1-.8-7.5l16-40a8,8,0,1,1,14.8,6l-11.6,29H144a7.9,7.9,0,0,1,6.6,3.5A8,8,0,0,1,151.4,135Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 172 144 132 112 132 128 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="8" x2="160" y2="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="40" width="144" height="184" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 172 144 132 112 132 128 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `kanban` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.kanban />
  <Heroicons.kanban class="w-4 h-4" />
  <Heroicons.kanban solid />
  <Heroicons.kanban mini />
  <Heroicons.kanban outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def kanban(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,56H216V176a8,8,0,0,1-8,8H168a8,8,0,0,1-8-8V152H96v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="56" x2="96" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="56" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,56H216V176a8,8,0,0,1-8,8H168a8,8,0,0,1-8-8V152H96v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="120" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="56" x2="96" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="56" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="160" y="56" width="56" height="64" opacity="0.2"/><path d="M96,120H40v88a8,8,0,0,0,8,8H88a8,8,0,0,0,8-8Z" opacity="0.2"/><path d="M40,56H216V176a8,8,0,0,1-8,8H168a8,8,0,0,1-8-8V152H96v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="56" x2="96" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="56" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40a8,8,0,0,0-8,8V208a16,16,0,0,0,16,16H88a16,16,0,0,0,16-16V160h48v16a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V56A8,8,0,0,0,216,48ZM88,64v56H48V64Zm16,80V64h48v80Zm64,32V120h40v56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,56H216V176a8,8,0,0,1-8,8H168a8,8,0,0,1-8-8V152H96v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="120" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="56" x2="96" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="56" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,56H216V176a8,8,0,0,1-8,8H168a8,8,0,0,1-8-8V152H96v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="120" x2="40" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="56" x2="96" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="56" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_zero` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_zero />
  <Heroicons.number_square_zero class="w-4 h-4" />
  <Heroicons.number_square_zero solid />
  <Heroicons.number_square_zero mini />
  <Heroicons.number_square_zero outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_zero(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="24" ry="40"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM128,184c-27.6,0-40-28.1-40-56s12.4-56,40-56,40,28.1,40,56S155.6,184,128,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="32" ry="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user />
  <Heroicons.user class="w-4 h-4" />
  <Heroicons.user solid />
  <Heroicons.user mini />
  <Heroicons.user outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M31,216a112,112,0,0,1,194,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M31,216a112,112,0,0,1,194,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" opacity="0.2"/><circle cx="128" cy="96" r="64" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M31,216a112,112,0,0,1,194,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.9,212a120.7,120.7,0,0,0-67.1-54.2,72,72,0,1,0-73.6,0A120.7,120.7,0,0,0,24.1,212a7.7,7.7,0,0,0,0,8,7.8,7.8,0,0,0,6.9,4H225a7.8,7.8,0,0,0,6.9-4A7.7,7.7,0,0,0,231.9,212Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M31,216a112,112,0,0,1,194,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="96" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M31,216a112,112,0,0,1,194,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clipboard_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clipboard_text />
  <Heroicons.clipboard_text class="w-4 h-4" />
  <Heroicons.clipboard_text solid />
  <Heroicons.clipboard_text mini />
  <Heroicons.clipboard_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clipboard_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="152" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="160" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="156" x2="160" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="116" x2="160" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,40a40,40,0,0,1,8,24v8H88V64a40,40,0,0,1,8-24H56a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V48a8,8,0,0,0-8-8Z" opacity="0.2"/><line x1="96" y1="152" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="120" x2="160" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,32H163.7a47.8,47.8,0,0,0-71.4,0H56A16,16,0,0,0,40,48V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm-72,0a32.1,32.1,0,0,1,32,32H96A32.1,32.1,0,0,1,128,32Zm32,128H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="152" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="120" x2="160" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="152" x2="160" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="120" x2="160" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,40h40a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,72V64a40,40,0,0,1,80,0v8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pizza` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pizza />
  <Heroicons.pizza class="w-4 h-4" />
  <Heroicons.pizza solid />
  <Heroicons.pizza mini />
  <Heroicons.pizza outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pizza(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M23.4,75.7a7.9,7.9,0,0,1,2.2-10.8,175.8,175.8,0,0,1,204.8,0,7.9,7.9,0,0,1,2.2,10.8L134.7,229.4a7.9,7.9,0,0,1-13.4,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M36.7,96.6a144.1,144.1,0,0,1,182.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.3,182.9a28,28,0,1,1,28.8-45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.9,129.8A28,28,0,1,1,84,168H82.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M23.4,75.7a7.9,7.9,0,0,1,2.2-10.8,175.8,175.8,0,0,1,204.8,0,7.9,7.9,0,0,1,2.2,10.8L134.7,229.4a7.9,7.9,0,0,1-13.4,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M41.1,103.4a135.9,135.9,0,0,1,173.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M159.4,190.7a28,28,0,1,1,29.1-45.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.7,132.7A28,28,0,0,1,108,152a28.1,28.1,0,0,1-19.1,26.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,156a28,28,0,0,1,49.1-18.4l26.2-41a144.1,144.1,0,0,0-182.6,0l21.2,33.3A28,28,0,1,1,84,168H82.1l39.2,61.5a7.9,7.9,0,0,0,13.4,0l29.6-46.5A28,28,0,0,1,144,156Z" opacity="0.2"/><path d="M23.4,75.7a7.9,7.9,0,0,1,2.2-10.8,175.8,175.8,0,0,1,204.8,0,7.9,7.9,0,0,1,2.2,10.8L134.7,229.4a7.9,7.9,0,0,1-13.4,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M36.7,96.6a144.1,144.1,0,0,1,182.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M164.3,182.9a28,28,0,1,1,28.8-45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M57.9,129.8A28,28,0,1,1,84,168H82.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.3,80a16,16,0,0,0-4.2-21.6,183.9,183.9,0,0,0-214.2,0A16,16,0,0,0,16.7,80h0l97.8,153.7a16,16,0,0,0,27,0l58.4-91.8h.1ZM23.4,75.7ZM128,225.1l-32.5-51A36,36,0,0,0,84,104a35.6,35.6,0,0,0-26,11.1L47.4,98.5a135.8,135.8,0,0,1,161.2,0l-17.3,27.1a36,36,0,0,0-38.6,60.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M23.4,75.7a7.9,7.9,0,0,1,2.2-10.8,175.8,175.8,0,0,1,204.8,0,7.9,7.9,0,0,1,2.2,10.8L134.7,229.4a7.9,7.9,0,0,1-13.4,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M36.7,96.6a144.1,144.1,0,0,1,182.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M164.3,182.9a28,28,0,1,1,28.8-45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M57.9,129.8A28,28,0,1,1,84,168H82.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M23.4,75.7a7.9,7.9,0,0,1,2.2-10.8,175.8,175.8,0,0,1,204.8,0,7.9,7.9,0,0,1,2.2,10.8L134.7,229.4a7.9,7.9,0,0,1-13.4,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M36.7,96.6a144.1,144.1,0,0,1,182.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M164.3,182.9a28,28,0,1,1,28.8-45.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M57.9,129.8A28,28,0,1,1,84,168H82.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_gbp` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_gbp />
  <Heroicons.currency_gbp class="w-4 h-4" />
  <Heroicons.currency_gbp solid />
  <Heroicons.currency_gbp mini />
  <Heroicons.currency_gbp outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_gbp(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="132" x2="136" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,208H56a36,36,0,0,0,36-36V84a44,44,0,0,1,44-44,43.5,43.5,0,0,1,31.1,12.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="132" x2="136" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,208H56a36,36,0,0,0,36-36V84a44,44,0,0,1,44-44,43.5,43.5,0,0,1,31.1,12.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="132" x2="136" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,208H56a36,36,0,0,0,36-36V84a44,44,0,0,1,44-44,43.5,43.5,0,0,1,31.1,12.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,208a8,8,0,0,1-8,8H56a8,8,0,0,1,0-16,28.1,28.1,0,0,0,28-28V140H56a8,8,0,0,1,0-16H84V84a52,52,0,0,1,88.8-36.8,8,8,0,0,1,0,11.3,7.9,7.9,0,0,1-11.3,0A36.1,36.1,0,0,0,100,84v40h36a8,8,0,0,1,0,16H100v32a43.8,43.8,0,0,1-10.1,28H184A8,8,0,0,1,192,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="132" x2="136" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,208H56a36,36,0,0,0,36-36V84a44,44,0,0,1,44-44,43.5,43.5,0,0,1,31.1,12.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="56" y1="132" x2="136" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,208H56a36,36,0,0,0,36-36V84a44,44,0,0,1,44-44,43.5,43.5,0,0,1,31.1,12.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_incoming` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_incoming />
  <Heroicons.phone_incoming class="w-4 h-4" />
  <Heroicons.phone_incoming solid />
  <Heroicons.phone_incoming mini />
  <Heroicons.phone_incoming outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_incoming(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 56 160 96 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 56 160 96 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" opacity="0.2"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 56 160 96 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M222,158.4l-46.9-20a15.6,15.6,0,0,0-15.1,1.3l-25.1,16.7a76.5,76.5,0,0,1-35.2-35h0L116.3,96a15.9,15.9,0,0,0,1.4-15.1L97.6,34a16.3,16.3,0,0,0-16.7-9.6A56.2,56.2,0,0,0,32,80c0,79.4,64.6,144,144,144a56.2,56.2,0,0,0,55.6-48.9A16.3,16.3,0,0,0,222,158.4Z"/><path d="M152.1,97.1a.9.9,0,0,0,.1.5v.3a.8.8,0,0,1,.1.4l.2.4c0,.1.1.2.1.4l.2.3c0,.1.1.2.1.4l.2.3.3.3.2.3a.8.8,0,0,0,.2.4c.1.1.3.2.4.4a.3.3,0,0,1,.1.2h.2l.4.4.4.2.3.3.3.2.3.2h.4l.3.2h.4l.4.2H200a8,8,0,0,0,0-16H179.3l34.4-34.3a8.1,8.1,0,0,0-11.4-11.4L168,76.7V56a8,8,0,0,0-16,0V96.8A.4.4,0,0,1,152.1,97.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 56 160 96 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 56 160 96 200 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="96" x2="208" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gauge` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gauge />
  <Heroicons.gauge class="w-4 h-4" />
  <Heroicons.gauge solid />
  <Heroicons.gauge mini />
  <Heroicons.gauge outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gauge(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="56" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="27.5" y1="133.1" x2="58.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="228.5" y1="133.1" x2="197.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="103.4" y1="192" x2="171.8" y2="102.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="56" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="27.5" y1="133.1" x2="58.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="228.5" y1="133.1" x2="197.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="103.4" y1="192" x2="171.8" y2="102.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" opacity="0.2"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="56" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="27.5" y1="133.1" x2="58.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="228.5" y1="133.1" x2="197.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="103.4" y1="192" x2="171.8" y2="102.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,160v24a16,16,0,0,1-16,16H115.5a4,4,0,0,1-3.2-6.4L178,108a8.2,8.2,0,0,0-1.1-11.3A7.9,7.9,0,0,0,165.5,98L88.4,198.4a3.8,3.8,0,0,1-3.1,1.6H32a16,16,0,0,1-16-16V161.1a116.1,116.1,0,0,1,2.2-22.2L40.9,145l2.1.2a8,8,0,0,0,7.8-6.2,8.1,8.1,0,0,0-6-9.6l-22.4-6C37,82,74.9,51.5,120,48.3V71.7a8.2,8.2,0,0,0,7.5,8.3,8,8,0,0,0,8.5-8V48.3a111.5,111.5,0,0,1,71.1,32.4,112.7,112.7,0,0,1,26.8,42.6l-22.7,6.1a8.1,8.1,0,0,0-6,9.6,8,8,0,0,0,7.8,6.2l2.1-.2,22.9-6.2A114.5,114.5,0,0,1,240,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="56" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="27.5" y1="133.1" x2="58.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="228.5" y1="133.1" x2="197.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="103.4" y1="192" x2="171.8" y2="102.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,184V161.1C24,103.6,70.2,56.2,127.6,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="56" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="27.5" y1="133.1" x2="58.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="228.5" y1="133.1" x2="197.5" y2="141.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="103.4" y1="192" x2="171.8" y2="102.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_blank` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_blank />
  <Heroicons.smiley_blank class="w-4 h-4" />
  <Heroicons.smiley_blank solid />
  <Heroicons.smiley_blank mini />
  <Heroicons.smiley_blank outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_blank(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM92,120a12,12,0,1,1,12-12A12,12,0,0,1,92,120Zm72,0a12,12,0,1,1,12-12A12,12,0,0,1,164,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `link_simple_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.link_simple_horizontal />
  <Heroicons.link_simple_horizontal class="w-4 h-4" />
  <Heroicons.link_simple_horizontal solid />
  <Heroicons.link_simple_horizontal mini />
  <Heroicons.link_simple_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def link_simple_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,128a8,8,0,0,0,8,8h96a8,8,0,0,0,0-16H80A8,8,0,0,0,72,128Z"/><path d="M104,168H64a40,40,0,0,1,0-80h40a8,8,0,0,0,0-16H64a56,56,0,0,0,0,112h40a8,8,0,0,0,0-16Z"/><path d="M192,72H152a8,8,0,0,0,0,16h40a40,40,0,0,1,0,80H152a8,8,0,0,0,0,16h40a56,56,0,0,0,0-112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="80" y1="128" x2="176" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,176H64a48,48,0,0,1,0-96h40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,176h40a48,48,0,0,0,0-96H152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_slash />
  <Heroicons.cell_signal_slash class="w-4 h-4" />
  <Heroicons.cell_signal_slash solid />
  <Heroicons.cell_signal_slash mini />
  <Heroicons.cell_signal_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M135.4,88.6l50.9-50.9A8,8,0,0,1,200,43.3V159.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,216H27.3a8,8,0,0,1-5.6-13.7l91.1-91.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,216H27.3a8,8,0,0,1-5.6-13.7l91.1-91.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M141.1,82.9l45.2-45.2A8,8,0,0,1,200,43.3V147.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a7.9,7.9,0,0,1-5.6-13.6L186.3,37.7A8,8,0,0,1,200,43.3Z" opacity="0.2"/><path d="M135.4,88.6l50.9-50.9A8,8,0,0,1,200,43.3V159.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,216H27.3a8,8,0,0,1-5.6-13.7l91.1-91.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M129.5,94a8,8,0,0,1,.3-11.1L180.7,32A16,16,0,0,1,208,43.3V159.6a8,8,0,0,1-5.1,7.5,7.4,7.4,0,0,1-2.9.5,7.9,7.9,0,0,1-5.9-2.6Zm84.4,116.6-160-176a8,8,0,0,0-11.3-.5,7.9,7.9,0,0,0-.5,11.3L101.7,111,16,196.7A16,16,0,0,0,27.3,224H208a8.2,8.2,0,0,0,5.4-2.1A8,8,0,0,0,213.9,210.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M135.4,88.6l50.9-50.9A8,8,0,0,1,200,43.3V159.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,216H27.3a8,8,0,0,1-5.6-13.7l91.1-91.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M135.4,88.6l50.9-50.9A8,8,0,0,1,200,43.3V159.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,216H27.3a8,8,0,0,1-5.6-13.7l91.1-91.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `skip_back_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.skip_back_circle />
  <Heroicons.skip_back_circle class="w-4 h-4" />
  <Heroicons.skip_back_circle solid />
  <Heroicons.skip_back_circle mini />
  <Heroicons.skip_back_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def skip_back_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="108 128 156 96 156 160 108 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="96" x2="100" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="156 156 120 128 156 100 156 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32Zm28,128-48-32,48-32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="108 128 156 96 156 160 108 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="96" x2="100" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,136a8,8,0,0,1-4.2,7.1,8.5,8.5,0,0,1-3.8.9,8.7,8.7,0,0,1-4.4-1.3L108,137.6V160a8,8,0,0,1-16,0V96a8,8,0,0,1,16,0v22.4l43.6-29.1a8.3,8.3,0,0,1,8.2-.4A8,8,0,0,1,164,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="108 128 156 96 156 160 108 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="96" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="108 128 156 96 156 160 108 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="96" x2="100" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder />
  <Heroicons.folder class="w-4 h-4" />
  <Heroicons.folder solid />
  <Heroicons.folder mini />
  <Heroicons.folder outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M98.4,46.7,128,80H32V52a8,8,0,0,1,8-8H92.4A8,8,0,0,1,98.4,46.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M98.3,50.3,128,80H32V56a8,8,0,0,1,8-8H92.7A7.9,7.9,0,0,1,98.3,50.3Z" opacity="0.2"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H131.3L104,44.7A16.1,16.1,0,0,0,92.7,40H40A16,16,0,0,0,24,56V200.6A15.4,15.4,0,0,0,39.4,216H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72ZM40,56H92.7l16,16H40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_two` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_two />
  <Heroicons.text_h_two class="w-4 h-4" />
  <Heroicons.text_h_two solid />
  <Heroicons.text_h_two mini />
  <Heroicons.text_h_two outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_two(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M193.9,118.7A24,24,0,0,1,240,128a23.6,23.6,0,0,1-4.1,13.4h0L192,200h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M193.9,118.7A24,24,0,0,1,240,128a23.6,23.6,0,0,1-4.1,13.4h0L192,200h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M193.9,118.7A24,24,0,0,1,240,128a23.6,23.6,0,0,1-4.1,13.4h0L192,200h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0Zm88,136H208l34.3-45.8.2-.3A31.8,31.8,0,0,0,248,128a32,32,0,0,0-61.5-12.5,8,8,0,0,0,14.8,6.3A15.9,15.9,0,0,1,216,112a16,16,0,0,1,13.4,24.8l-43.7,58.3A7.5,7.5,0,0,0,184,200a8,8,0,0,0,5.5,7.6,7.3,7.3,0,0,0,2.5.4h48a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M193.9,118.7A24,24,0,0,1,240,128a23.6,23.6,0,0,1-4.1,13.4h0L192,200h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M193.9,118.7A24,24,0,0,1,240,128a23.6,23.6,0,0,1-4.1,13.4h0L192,200h48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `text_h_one` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.text_h_one />
  <Heroicons.text_h_one class="w-4 h-4" />
  <Heroicons.text_h_one solid />
  <Heroicons.text_h_one mini />
  <Heroicons.text_h_one outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def text_h_one(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="196 124 220 108 220 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="196 124 220 108 220 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="196 124 220 108 220 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,56V176a8,8,0,0,1-16,0V124H48v52a8,8,0,0,1-16,0V56a8,8,0,0,1,16,0v52h88V56a8,8,0,0,1,16,0Zm71.8,44.9a8.3,8.3,0,0,0-8.2.4l-24,16a8,8,0,0,0,8.8,13.4l11.6-7.8V200a8,8,0,0,0,16,0V108A8,8,0,0,0,223.8,100.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="196 124 220 108 220 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="56" x2="40" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="116" x2="40" y2="116" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="56" x2="144" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="196 124 220 108 220 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `option` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.option />
  <Heroicons.option class="w-4 h-4" />
  <Heroicons.option solid />
  <Heroicons.option mini />
  <Heroicons.option outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def option(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H95.1a7.9,7.9,0,0,1,7.1,4.4l51.6,103.2A7.9,7.9,0,0,0,161,184h63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="224" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H95.1a7.9,7.9,0,0,1,7.1,4.4l51.6,103.2A7.9,7.9,0,0,0,161,184h63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="72" x2="224" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H95.1a7.9,7.9,0,0,1,7.1,4.4l51.6,103.2A7.9,7.9,0,0,0,161,184h63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="224" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,184a8,8,0,0,1-8,8H161a16.2,16.2,0,0,1-14.4-8.8L95.1,80H32a8,8,0,0,1,0-16H95.1a16,16,0,0,1,14.3,8.8L161,176h63A8,8,0,0,1,232,184ZM152,80h72a8,8,0,0,0,0-16H152a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H95.1a7.9,7.9,0,0,1,7.1,4.4l51.6,103.2A7.9,7.9,0,0,0,161,184h63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="72" x2="224" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H95.1a7.9,7.9,0,0,1,7.1,4.4l51.6,103.2A7.9,7.9,0,0,0,161,184h63" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="72" x2="224" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `traffic_signal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.traffic_signal />
  <Heroicons.traffic_signal class="w-4 h-4" />
  <Heroicons.traffic_signal solid />
  <Heroicons.traffic_signal mini />
  <Heroicons.traffic_signal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def traffic_signal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="32" width="128" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="64" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="64" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="32" width="128" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="72" x2="64" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="152" x2="64" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="88" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="168" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,32H72a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V40A8,8,0,0,0,184,32ZM128,192a24,24,0,1,1,24-24A23.9,23.9,0,0,1,128,192Zm0-80a24,24,0,1,1,24-24A23.9,23.9,0,0,1,128,112Z" opacity="0.2"/><rect x="64" y="32" width="128" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="88" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="168" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="72" x2="64" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="64" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,144H200V80h16a8,8,0,0,0,0-16H200V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V64H40a8,8,0,0,0,0,16H56v64H40a8,8,0,0,0,0,16H56v56a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-88-28a28,28,0,1,1,28-28A28.1,28.1,0,0,1,128,116Zm0,24a28,28,0,1,1-28,28A28.1,28.1,0,0,1,128,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="32" width="128" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="88" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="168" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="72" x2="64" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="152" x2="64" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="32" width="128" height="192" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="88" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="168" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="72" x2="216" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="72" x2="64" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="152" x2="64" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_low />
  <Heroicons.wifi_low class="w-4 h-4" />
  <Heroicons.wifi_low solid />
  <Heroicons.wifi_low mini />
  <Heroicons.wifi_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M71.1,148.9a87.9,87.9,0,0,1,113.8,0l-50.9,60a7.9,7.9,0,0,1-12.1-.1Z" opacity="0.2"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71.1,148.9a87.9,87.9,0,0,1,113.8,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M246.8,80.5a15.7,15.7,0,0,0-6.2-11c-66.3-50-158.9-50-225.2,0h0a16.1,16.1,0,0,0-6.2,11,16.6,16.6,0,0,0,3.7,12.3L115.8,214a16.4,16.4,0,0,0,4,3.4,15.6,15.6,0,0,0,8.2,2.3h0a15.7,15.7,0,0,0,10.9-4.4,6.8,6.8,0,0,0,1.2-1.2l103-121.4A16,16,0,0,0,246.8,80.5Zm-15.9,1.9-47.1,55.5a95.9,95.9,0,0,0-111.6,0L25.1,82.4h0c60.6-45.7,145.3-45.7,205.8,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_left />
  <Heroicons.align_left class="w-4 h-4" />
  <Heroicons.align_left solid />
  <Heroicons.align_left mini />
  <Heroicons.align_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="56" width="112" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="80" y="56" width="104" height="52" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="80" y="148" width="144" height="52" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="72" y="56" width="112" height="56" rx="8" opacity="0.2"/><rect x="72" y="144" width="152" height="56" rx="8" opacity="0.2"/><rect x="72" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="56" width="112" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0Zm32,80h96a16,16,0,0,0,16-16V64a16,16,0,0,0-16-16H80A16,16,0,0,0,64,64v40A16,16,0,0,0,80,120Zm136,16H80a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V152A16,16,0,0,0,216,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="72" y="56" width="112" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="72" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="72" y="56" width="112" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="72" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_mobile_speaker` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_mobile_speaker />
  <Heroicons.device_mobile_speaker class="w-4 h-4" />
  <Heroicons.device_mobile_speaker solid />
  <Heroicons.device_mobile_speaker mini />
  <Heroicons.device_mobile_speaker outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_mobile_speaker(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="56" x2="160" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="64" x2="152" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" opacity="0.2"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="56" x2="160" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,16H80A24.1,24.1,0,0,0,56,40V216a24.1,24.1,0,0,0,24,24h96a24.1,24.1,0,0,0,24-24V40A24.1,24.1,0,0,0,176,16ZM160,64H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="56" x2="160" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="64" width="208" height="128" rx="16" transform="translate(256) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="56" x2="160" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bookmark` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bookmark />
  <Heroicons.bookmark class="w-4 h-4" />
  <Heroicons.bookmark solid />
  <Heroicons.bookmark mini />
  <Heroicons.bookmark outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bookmark(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 176 128 136 64 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 176 128 136 64 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="192 176 128 136 64 176 64 224 128 184 192 224 192 176" opacity="0.2"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 176 128 136 64 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,32H72A16,16,0,0,0,56,48V224a8.1,8.1,0,0,0,4.1,7,7.6,7.6,0,0,0,3.9,1,7.9,7.9,0,0,0,4.2-1.2L128,193.4l59.7,37.4a8.3,8.3,0,0,0,8.2.2,8.1,8.1,0,0,0,4.1-7V48A16,16,0,0,0,184,32ZM132.2,177.2A8.1,8.1,0,0,0,128,176a8.2,8.2,0,0,0-4.3,1.2L72,209.6V180.4l56-35,56,35v29.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 176 128 136 64 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,224l-64-40L64,224V48a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 176 128 136 64 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_star` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_star />
  <Heroicons.shield_star class="w-4 h-4" />
  <Heroicons.shield_star solid />
  <Heroicons.shield_star mini />
  <Heroicons.shield_star outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_star(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="151.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="166" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="92" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="90" y1="119.6" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104.5" y1="164.4" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="151.5" y1="164.4" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="166" y1="119.6" x2="128" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="151.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="166" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a14.3,14.3,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40Zm-39.5,91.2-27.6,9L158,163.7a7.9,7.9,0,0,1-1.8,11.1,7.6,7.6,0,0,1-4.7,1.6,8.2,8.2,0,0,1-6.5-3.3l-17-23.5-17,23.5a8.2,8.2,0,0,1-6.5,3.3,7.6,7.6,0,0,1-4.7-1.6A7.9,7.9,0,0,1,98,163.7l17.1-23.5-27.6-9a8,8,0,0,1-5.2-10A8.1,8.1,0,0,1,92.4,116l27.6,9V96a8,8,0,0,1,16,0v29l27.6-9a8.1,8.1,0,0,1,10.1,5.2A8,8,0,0,1,168.5,131.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="90" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="151.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="166" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="90" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="151.5" y1="168.4" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="166" y1="123.6" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `calendar_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.calendar_x />
  <Heroicons.calendar_x class="w-4 h-4" />
  <Heroicons.calendar_x solid />
  <Heroicons.calendar_x mini />
  <Heroicons.calendar_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def calendar_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="176" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="176" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="20" x2="176" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="20" x2="80" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,88H216V48a8,8,0,0,0-8-8H48a8,8,0,0,0-8,8Z" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="176" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM157.7,170.3a8.1,8.1,0,0,1,0,11.4A8.5,8.5,0,0,1,152,184a8.3,8.3,0,0,1-5.7-2.3L128,163.3l-18.3,18.4A8.5,8.5,0,0,1,104,184a8.3,8.3,0,0,1-5.7-2.3,8.1,8.1,0,0,1,0-11.4L116.7,152,98.3,133.7a8.1,8.1,0,0,1,11.4-11.4L128,140.7l18.3-18.4a8.1,8.1,0,0,1,11.4,11.4L139.3,152ZM208,80H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="176" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="104" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="176" x2="104" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paper_plane_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paper_plane_right />
  <Heroicons.paper_plane_right class="w-4 h-4" />
  <Heroicons.paper_plane_right solid />
  <Heroicons.paper_plane_right mini />
  <Heroicons.paper_plane_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paper_plane_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" opacity="0.2"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.4,114,54.9,19.7a16.3,16.3,0,0,0-18.2,1.2,15.9,15.9,0,0,0-5.1,17.9l28.1,78.5a4.1,4.1,0,0,0,3.8,2.7h72.2a8.2,8.2,0,0,1,8.3,7.5,8,8,0,0,1-8,8.5H63.5a4.1,4.1,0,0,0-3.8,2.7L31.6,217.2a16.1,16.1,0,0,0,15.1,21.4,16.5,16.5,0,0,0,7.8-2L223.4,142a16.1,16.1,0,0,0,0-28Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.5,121,50.6,26.4a8,8,0,0,0-11.4,9.7L71,125.3a7.2,7.2,0,0,1,0,5.4L39.2,219.9a8,8,0,0,0,11.4,9.7L219.5,135A8,8,0,0,0,219.5,121Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="128" x2="136" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_five` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_five />
  <Heroicons.number_circle_five class="w-4 h-4" />
  <Heroicons.number_circle_five solid />
  <Heroicons.number_circle_five mini />
  <Heroicons.number_circle_five outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_five(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M152,84H111.8L104,132.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,84H111.8L104,132.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M152,84H111.8L104,132.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm-4.1,92a36,36,0,1,1-25.5,61.5,8,8,0,1,1,11.2-11.4,20.1,20.1,0,0,0,14.3,5.9,19.9,19.9,0,0,0,14.2-5.9,19.8,19.8,0,0,0,0-28.2,19.9,19.9,0,0,0-14.2-5.9,20.1,20.1,0,0,0-14.3,5.9,8,8,0,0,1-13.5-7l7.8-48.2a8,8,0,0,1,7.9-6.7H152a8,8,0,0,1,0,16H118.6l-4.1,25.2A37.3,37.3,0,0,1,123.9,116Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,84H111.8L104,132.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,84H111.8L104,132.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `prohibit_inset` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.prohibit_inset />
  <Heroicons.prohibit_inset class="w-4 h-4" />
  <Heroicons.prohibit_inset solid />
  <Heroicons.prohibit_inset mini />
  <Heroicons.prohibit_inset outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def prohibit_inset(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="99.7" y1="99.7" x2="156.3" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="99.7" y1="99.7" x2="156.3" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="99.7" y1="99.7" x2="156.3" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm22.6,137.9L94.1,105.4a8,8,0,0,1,11.3-11.3l56.5,56.5a8,8,0,0,1-11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="99.7" y1="99.7" x2="156.3" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="99.7" y1="99.7" x2="156.3" y2="156.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_pull_request` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_pull_request />
  <Heroicons.git_pull_request class="w-4 h-4" />
  <Heroicons.git_pull_request solid />
  <Heroicons.git_pull_request mini />
  <Heroicons.git_pull_request outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_pull_request(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,160V119.9a48.2,48.2,0,0,0-14.1-34L136,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 88 136 48 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M188,160V119.9a48.2,48.2,0,0,0-14.1-34L136,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="136 88 136 48 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="68" r="28" opacity="0.2"/><circle cx="188" cy="188" r="28" opacity="0.2"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M188,160V119.9a48.2,48.2,0,0,0-14.1-34L136,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 88 136 48 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,68a36,36,0,1,0-44,35.1v49.8a36,36,0,1,0,16,0V103.1A36.1,36.1,0,0,0,104,68ZM88,188a20,20,0,1,1-20-20A20.1,20.1,0,0,1,88,188Zm136,0a36,36,0,1,1-44-35.1v-33a40,40,0,0,0-11.7-28.3L144,67.3V88a8,8,0,0,1-16,0V48a8,8,0,0,1,8-8h40a8,8,0,0,1,0,16H155.3l24.3,24.3A55.5,55.5,0,0,1,196,119.9v33A36.1,36.1,0,0,1,224,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M188,160V119.9a48.2,48.2,0,0,0-14.1-34L136,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="136 88 136 48 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68" y1="96" x2="68" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M188,160V119.9a48.2,48.2,0,0,0-14.1-34L136,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="136 88 136 48 176 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `radical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.radical />
  <Heroicons.radical class="w-4 h-4" />
  <Heroicons.radical solid />
  <Heroicons.radical mini />
  <Heroicons.radical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def radical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 96 232 72 120 72 72 200 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 96 232 72 120 72 72 200 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 96 232 72 120 72 72 200 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,208a8.1,8.1,0,0,1-7.5-5.2l-48-128a8,8,0,1,1,15-5.6L72,177.2l40.5-108A8.1,8.1,0,0,1,120,64H232a8,8,0,0,1,8,8V96a8,8,0,0,1-16,0V80H125.5l-46,122.8A8.1,8.1,0,0,1,72,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 96 232 72 120 72 72 200 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 96 232 72 120 72 72 200 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_circle_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_circle_plus />
  <Heroicons.user_circle_plus class="w-4 h-4" />
  <Heroicons.user_circle_plus solid />
  <Heroicons.user_circle_plus mini />
  <Heroicons.user_circle_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_circle_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M222.8,112.9A93.3,93.3,0,0,1,224,128a96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M222.8,112.9A93.3,93.3,0,0,1,224,128a96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32A96,96,0,0,0,63.8,199.4h0A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,64.2,39.4A96,96,0,0,0,128,32Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M222.8,112.9A93.3,93.3,0,0,1,224,128a96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,76a44,44,0,1,1-44,44A44,44,0,0,1,128,76Zm48-12h16V80a8,8,0,0,0,16,0V64h16a8,8,0,0,0,0-16H208V32a8,8,0,0,0-16,0V48H176a8,8,0,0,0,0,16Zm45.6,41a7.9,7.9,0,0,0-6.7,9.1A92,92,0,0,1,216,128a87.6,87.6,0,0,1-22.2,58.4,81.3,81.3,0,0,0-24.5-23,59.7,59.7,0,0,1-82.6,0,81.3,81.3,0,0,0-24.5,23A88,88,0,0,1,128,40a92,92,0,0,1,13.9,1.1,8,8,0,0,0,2.5-15.8A99.8,99.8,0,0,0,128,24,104,104,0,0,0,57.8,204.7l1.3,1.2a104,104,0,0,0,137.8,0l1.3-1.2A103.7,103.7,0,0,0,232,128a99.8,99.8,0,0,0-1.3-16.4A7.9,7.9,0,0,0,221.6,105Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M222.8,112.9A93.3,93.3,0,0,1,224,128a96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="56" x2="224" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="32" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M222.8,112.9A93.3,93.3,0,0,1,224,128a96,96,0,1,1-96-96,93.3,93.3,0,0,1,15.1,1.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `horse` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.horse />
  <Heroicons.horse class="w-4 h-4" />
  <Heroicons.horse solid />
  <Heroicons.horse mini />
  <Heroicons.horse outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def horse(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,120a48,48,0,0,1-48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,199.6A95.6,95.6,0,0,0,129.9,224c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0L92.8,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="100" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,120a48,48,0,0,1-48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,199.6A95.6,95.6,0,0,0,129.9,224c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0L92.8,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="104" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.8,217.3a95.2,95.2,0,0,0,37.1,6.7c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0Z" opacity="0.2"/><path d="M176,120a48,48,0,0,1-48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,199.6A95.6,95.6,0,0,0,129.9,224c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0L92.8,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="100" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M202.1,55A103.2,103.2,0,0,0,128,24h-8a8,8,0,0,0-8,8V59.5L11.8,121.2a8,8,0,0,0-3.6,5.2,7.8,7.8,0,0,0,1.3,6.3l13.8,19.1a31.6,31.6,0,0,0,31.3,12.8c13.7-2.3,38.6-4.2,61.6,6.2L90,207.4a91.1,91.1,0,0,1-20.7-13.8,8,8,0,0,0-11.3.6,8,8,0,0,0,.7,11.3A103.5,103.5,0,0,0,128,232h2.1a104,104,0,0,0,72-177ZM124,112a12,12,0,1,1,12-12A12,12,0,0,1,124,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,120a48,48,0,0,1-48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,199.6A95.6,95.6,0,0,0,129.9,224c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0L92.8,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="124" cy="100" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,120a48,48,0,0,1-48,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,199.6A95.6,95.6,0,0,0,129.9,224c51.5-1,93.4-43.1,94.1-94.6A96,96,0,0,0,128,32h-8V64L16,128l13.8,19.1a23.9,23.9,0,0,0,23.5,9.6c17.5-2.9,48.1-4.7,74.7,11.3h0L92.8,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="124" cy="100" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `archive` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.archive />
  <Heroicons.archive class="w-4 h-4" />
  <Heroicons.archive solid />
  <Heroicons.archive mini />
  <Heroicons.archive outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def archive(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="136" x2="152" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="136" x2="152" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96Z" opacity="0.2"/><rect x="24" y="56" width="208" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="136" x2="152" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48H32A16,16,0,0,0,16,64V88a16,16,0,0,0,16,16v88a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V104a16,16,0,0,0,16-16V64A16,16,0,0,0,224,48Zm-72,96H104a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm72-56H32V64H224V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="136" x2="152" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="56" width="208" height="40" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216,96v96a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="136" x2="152" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_fork` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_fork />
  <Heroicons.git_fork class="w-4 h-4" />
  <Heroicons.git_fork solid />
  <Heroicons.git_fork mini />
  <Heroicons.git_fork outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_fork(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68,96v8a23.9,23.9,0,0,0,24,24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,96v8a23.9,23.9,0,0,0,24,24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="188" cy="68" r="28" opacity="0.2"/><circle cx="68" cy="68" r="28" opacity="0.2"/><circle cx="128" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68,96v8a23.9,23.9,0,0,0,24,24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,68a36,36,0,1,0-44,35.1v.9a16,16,0,0,1-16,16H92a16,16,0,0,1-16-16v-.9a36,36,0,1,0-16,0v.9a32.1,32.1,0,0,0,32,32h28v16.9a36,36,0,1,0,16,0V136h28a32.1,32.1,0,0,0,32-32v-.9A36.1,36.1,0,0,0,224,68ZM148,188a20,20,0,1,1-20-20A20.1,20.1,0,0,1,148,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M68,96v8a23.9,23.9,0,0,0,24,24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M68,96v8a23.9,23.9,0,0,0,24,24h72a23.9,23.9,0,0,0,24-24V96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `triangle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.triangle />
  <Heroicons.triangle class="w-4 h-4" />
  <Heroicons.triangle solid />
  <Heroicons.triangle mini />
  <Heroicons.triangle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def triangle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" opacity="0.2"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.7,188,148.8,36a24,24,0,0,0-41.6,0h0L19.3,188A23.9,23.9,0,0,0,40,224H216a23.9,23.9,0,0,0,20.7-36Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M114.2,40l-88,152A16,16,0,0,0,40,216H216a16,16,0,0,0,13.8-24l-88-152A15.9,15.9,0,0,0,114.2,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `crosshair` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.crosshair />
  <Heroicons.crosshair class="w-4 h-4" />
  <Heroicons.crosshair solid />
  <Heroicons.crosshair mini />
  <Heroicons.crosshair outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def crosshair(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="20" x2="128" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="20" y1="128" x2="60" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="236" x2="128" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="128" x2="196" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="20" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="20" y1="128" x2="56" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="236" x2="128" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="236" y1="128" x2="200" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32" opacity="0.2"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="20" x2="128" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="20" y1="128" x2="60" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="236" x2="128" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="236" y1="128" x2="196" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236,120H223.7A96.2,96.2,0,0,0,136,32.3V20a8,8,0,0,0-16,0V32.3A96.2,96.2,0,0,0,32.3,120H20a8,8,0,0,0,0,16H32.3A96.2,96.2,0,0,0,120,223.7V236a8,8,0,0,0,16,0V223.7A96.2,96.2,0,0,0,223.7,136H236a8,8,0,0,0,0-16Zm-40,16h11.6A80.3,80.3,0,0,1,136,207.6V196a8,8,0,0,0-16,0v11.6A80.3,80.3,0,0,1,48.4,136H60a8,8,0,0,0,0-16H48.4A80.3,80.3,0,0,1,120,48.4V60a8,8,0,0,0,16,0V48.4A80.3,80.3,0,0,1,207.6,120H196a8,8,0,0,0,0,16Z"/><circle cx="128" cy="128" r="40"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="20" x2="128" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="20" y1="128" x2="60" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="236" x2="128" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="236" y1="128" x2="196" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="20" x2="128" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="20" y1="128" x2="60" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="236" x2="128" y2="196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="236" y1="128" x2="196" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bicycle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bicycle />
  <Heroicons.bicycle class="w-4 h-4" />
  <Heroicons.bicycle solid />
  <Heroicons.bicycle mini />
  <Heroicons.bicycle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bicycle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80a16,16,0,0,0-16-16H152l56,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="208" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="48" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 64 76 64 132 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="170.1 96 94.7 96 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80a16,16,0,0,0-16-16H148l56,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="204" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="166.7 96 102.7 96 52 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="52 64 84 64 128.3 140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="208" cy="160" r="40" opacity="0.2"/><circle cx="48" cy="160" r="40" opacity="0.2"/><path d="M208,80a16,16,0,0,0-16-16H152l56,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="208" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="48" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 64 76 64 132 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="170.1 96 94.7 96 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M256,160a48,48,0,1,1-78.7-36.8L201.1,164a8,8,0,1,0,13.8-8l-23.8-40.9A47,47,0,0,1,208,112,48,48,0,0,1,256,160ZM48,168a8.2,8.2,0,0,1-4.7-1.5,8,8,0,0,1-1.8-11.2l27.9-38.2A46.6,46.6,0,0,0,48,112a48.1,48.1,0,1,0,34.3,14.5L54.5,164.7A7.9,7.9,0,0,1,48,168ZM165.9,72H192a8,8,0,0,1,8,8,8,8,0,0,0,16,0,24.1,24.1,0,0,0-24-24H152a7.8,7.8,0,0,0-6.9,4,7.7,7.7,0,0,0,0,8l11.6,20H99.3L82.9,60A7.9,7.9,0,0,0,76,56H48a8,8,0,0,0,0,16H71.4L85.1,95.5,69.4,117.1a48.1,48.1,0,0,1,12.9,9.4l11.6-15.9L125.1,164a8,8,0,1,0,13.8-8l-30.3-52h57.5l11.2,19.2a46.5,46.5,0,0,1,13.8-8.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80a16,16,0,0,0-16-16H152l56,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="208" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="48" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="48 64 76 64 132 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="170.1 96 94.7 96 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80a16,16,0,0,0-16-16H152l56,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="208" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="48" cy="160" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="48 64 76 64 132 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="170.1 96 94.7 96 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_left />
  <Heroicons.arrow_line_left class="w-4 h-4" />
  <Heroicons.arrow_line_left solid />
  <Heroicons.arrow_line_left mini />
  <Heroicons.arrow_line_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 72 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="152 56 80 128 152 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 56 72 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,128a8,8,0,0,1-8,8H152v64a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-72-72a8.1,8.1,0,0,1,0-11.4l72-72a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,152,56v64h72A8,8,0,0,1,232,128ZM40,32a8,8,0,0,0-8,8V216a8,8,0,0,0,16,0V40A8,8,0,0,0,40,32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="144 56 72 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="224" y1="128" x2="72" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="144 56 72 128 144 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `radio_button` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.radio_button />
  <Heroicons.radio_button class="w-4 h-4" />
  <Heroicons.radio_button solid />
  <Heroicons.radio_button mini />
  <Heroicons.radio_button outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def radio_button(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="56" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a64,64,0,1,1-64-64A64.1,64.1,0,0,1,192,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `skip_forward_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.skip_forward_circle />
  <Heroicons.skip_forward_circle class="w-4 h-4" />
  <Heroicons.skip_forward_circle solid />
  <Heroicons.skip_forward_circle mini />
  <Heroicons.skip_forward_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def skip_forward_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="148 128 100 96 100 160 148 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="96" x2="156" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="100 156 136 128 100 100 100 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="100" x2="156" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32ZM100,160V96l48,32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="148 128 100 96 100 160 148 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="96" x2="156" y2="160" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,136a8,8,0,0,1-16,0V137.6l-43.6,29.1A8.7,8.7,0,0,1,100,168a8.5,8.5,0,0,1-3.8-.9A8,8,0,0,1,92,160V96a8,8,0,0,1,4.2-7.1,8.3,8.3,0,0,1,8.2.4L148,118.4V96a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="96" x2="156" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="148 128 100 96 100 160 148 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="96" x2="156" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="148 128 100 96 100 160 148 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `eyedropper` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.eyedropper />
  <Heroicons.eyedropper class="w-4 h-4" />
  <Heroicons.eyedropper solid />
  <Heroicons.eyedropper mini />
  <Heroicons.eyedropper outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def eyedropper(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M187.8,107.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-15,15a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l15-15a16.1,16.1,0,0,1,22.6,0l4.9,4.9,19.6-19.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" opacity="0.2"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,67.5a35.5,35.5,0,0,0-11.3-25.7c-14-13.2-36.7-12.7-50.6,1.2L140.2,64.9a24.1,24.1,0,0,0-33.2.8l-7,7a16.1,16.1,0,0,0,0,22.6l2.1,2.1L51.7,147.7a40.3,40.3,0,0,0-11,35.8l-9.8,22.4a13.6,13.6,0,0,0,2.9,15.2,15.8,15.8,0,0,0,11.3,4.7,16.3,16.3,0,0,0,6.4-1.3l21-9.2a40.3,40.3,0,0,0,35.8-11l50.3-50.4,2.1,2.1a15.9,15.9,0,0,0,22.6,0l7-7a24.1,24.1,0,0,0,.8-33.2l22.4-22.3A36.2,36.2,0,0,0,224,67.5ZM97,193a24.3,24.3,0,0,1-23.2,6.2,8,8,0,0,0-5.3.4L47,209l9.4-21.5a8,8,0,0,0,.4-5.3A24.3,24.3,0,0,1,63,159l50.4-50.3,33.9,33.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M179.8,115.8l4.9,4.9a16.1,16.1,0,0,1,0,22.6l-7,7a8,8,0,0,1-11.4,0L105.7,89.7a8,8,0,0,1,0-11.4l7-7a16.1,16.1,0,0,1,22.6,0l4.9,4.9,27.6-27.6c10.8-10.8,28.4-11.4,39.4-.9a28,28,0,0,1,.6,40.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M158.6,142.6l-56,56a31.7,31.7,0,0,1-30.9,8.3L48.3,217.1a8,8,0,0,1-8.8-1.6h0a5.7,5.7,0,0,1-1.2-6.4l10.8-24.8a31.7,31.7,0,0,1,8.3-30.9l56-56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_bottom` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_bottom />
  <Heroicons.align_bottom class="w-4 h-4" />
  <Heroicons.align_bottom solid />
  <Heroicons.align_bottom mini />
  <Heroicons.align_bottom outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_bottom(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(44 300) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="32" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="122" y="98" width="104" height="52" rx="8" transform="translate(50 298) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="56" y="32" width="52" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(44 300) rotate(-90)" opacity="0.2"/><rect x="56" y="32" width="56" height="152" rx="8" opacity="0.2"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(44 300) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="56" y="32" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,216a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,216Zm-72-24h40a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H152a16,16,0,0,0-16,16v96A16,16,0,0,0,152,192Zm-88,0h40a16,16,0,0,0,16-16V40a16,16,0,0,0-16-16H64A16,16,0,0,0,48,40V176A16,16,0,0,0,64,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(44 300) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="56" y="32" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="216" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="116" y="100" width="112" height="56" rx="8" transform="translate(44 300) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="56" y="32" width="56" height="152" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hard_drives` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hard_drives />
  <Heroicons.hard_drives class="w-4 h-4" />
  <Heroicons.hard_drives solid />
  <Heroicons.hard_drives mini />
  <Heroicons.hard_drives outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hard_drives(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="48" width="176" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="128" x2="40" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="88" r="16"/><circle cx="176" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="64" rx="8" opacity="0.2"/><rect x="40" y="48" width="176" height="64" rx="8" opacity="0.2"/><rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V56A16,16,0,0,0,208,40ZM180,92a12,12,0,1,1,12-12A12,12,0,0,1,180,92Z"/><path d="M208,136H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V152A16,16,0,0,0,208,136Zm-28,52a12,12,0,1,1,12-12A12,12,0,0,1,180,188Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="80" r="10"/><circle cx="180" cy="176" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="176" r="8"/><circle cx="180" cy="80" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brackets_round` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brackets_round />
  <Heroicons.brackets_round class="w-4 h-4" />
  <Heroicons.brackets_round solid />
  <Heroicons.brackets_round mini />
  <Heroicons.brackets_round outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brackets_round(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,40S32,64,32,128s40,88,40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40s40,24,40,88-40,88-40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,40S32,64,32,128s40,88,40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,40s40,24,40,88-40,88-40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,40S32,64,32,128s40,88,40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40s40,24,40,88-40,88-40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,128c0,58.3,34.7,80.3,36.2,81.2A8,8,0,0,1,72,224a8.7,8.7,0,0,1-4.1-1.1C66.1,221.8,24,195.8,24,128S66.1,34.2,67.9,33.1a8.1,8.1,0,0,1,11,2.8,8,8,0,0,1-2.8,10.9C74.5,47.8,40,69.8,40,128ZM188.1,33.1a8,8,0,0,0-8.3,13.7c1.5.9,36.2,22.9,36.2,81.2s-34.7,80.3-36.1,81.1A8,8,0,0,0,184,224a8.7,8.7,0,0,0,4.1-1.1c1.8-1.1,43.9-27.1,43.9-94.9S189.9,34.2,188.1,33.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,40S32,64,32,128s40,88,40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,40s40,24,40,88-40,88-40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,40S32,64,32,128s40,88,40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,40s40,24,40,88-40,88-40,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stamp` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stamp />
  <Heroicons.stamp class="w-4 h-4" />
  <Heroicons.stamp solid />
  <Heroicons.stamp mini />
  <Heroicons.stamp outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stamp(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="224" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="136" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="224" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="136" width="176" height="48" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136Z" opacity="0.2"/><line x1="40" y1="224" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="136" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,224a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,224Zm0-80v40a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V144a16,16,0,0,1,16-16h54.1L86.4,54.7A32,32,0,0,1,117.7,16h20.6a32,32,0,0,1,31.3,38.7L153.9,128H208A16,16,0,0,1,224,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="224" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="136" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="224" x2="216" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,136,94.2,53a24,24,0,0,1,23.5-29h20.6a24,24,0,0,1,23.5,29L144,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="136" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fast_forward_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fast_forward_circle />
  <Heroicons.fast_forward_circle class="w-4 h-4" />
  <Heroicons.fast_forward_circle solid />
  <Heroicons.fast_forward_circle mini />
  <Heroicons.fast_forward_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fast_forward_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="80 160 128 128 80 96 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="144 160 192 128 144 96 144 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="88 156 124 128 88 100 88 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="144 156 180 128 144 100 144 156" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32ZM80,160V96l48,32Zm64,0V96l48,32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="80 160 128 128 80 96 80 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="144 160 192 128 144 96 144 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm56.6,110.6-40,28A8.6,8.6,0,0,1,140,164a8,8,0,0,1-8-8V128a8.2,8.2,0,0,1-3.4,6.6l-40,28A8.6,8.6,0,0,1,84,164a8,8,0,0,1-8-8V100a8.1,8.1,0,0,1,4.3-7.1,8,8,0,0,1,8.3.5l40,28A8.2,8.2,0,0,1,132,128V100a8.1,8.1,0,0,1,4.3-7.1,8,8,0,0,1,8.3.5l40,28a8.1,8.1,0,0,1,0,13.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="84 160 132 128 84 96 84 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="140 160 188 128 140 96 140 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="84 160 132 128 84 96 84 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="140 160 188 128 140 96 140 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `translate` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.translate />
  <Heroicons.translate class="w-4 h-4" />
  <Heroicons.translate solid />
  <Heroicons.translate mini />
  <Heroicons.translate outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def translate(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 216 176 104 120 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="32" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="56" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,56a96,96,0,0,1-96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.5,88A96,96,0,0,0,152,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 216 176 104 120 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="32" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="56" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M120,56a96,96,0,0,1-96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64.7,96A96.1,96.1,0,0,0,152,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 216 176 104 120 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="32" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="56" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,56a96,96,0,0,1-96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M61.4,88A96.1,96.1,0,0,0,152,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239.1,212.4l-56-112A7.9,7.9,0,0,0,176,96a8,8,0,0,0-7.2,4.4l-21.7,43.4A87.4,87.4,0,0,1,100,126.9,104.1,104.1,0,0,0,127.7,64H152a8,8,0,0,0,0-16H96V32a8,8,0,0,0-16,0V48H24a8,8,0,0,0,0,16h87.6A87.5,87.5,0,0,1,88,116.3a87.1,87.1,0,0,1-19-31,8,8,0,0,0-10.2-4.8,7.9,7.9,0,0,0-4.9,10.2A103.8,103.8,0,0,0,76,126.9,87.1,87.1,0,0,1,24,144a8,8,0,0,0,0,16,103.8,103.8,0,0,0,64-22.1,103.6,103.6,0,0,0,51.4,21.3l-26.6,53.2a8,8,0,1,0,14.3,7.2L140.9,192H211l13.8,27.6A8,8,0,0,0,232,224a9.4,9.4,0,0,0,3.6-.8A8.1,8.1,0,0,0,239.1,212.4ZM148.9,176,176,121.9,203,176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 216 176 104 120 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="32" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="56" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120,56a96,96,0,0,1-96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M61.5,88A95.9,95.9,0,0,0,152,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 216 176 104 120 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="32" x2="88" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="56" x2="152" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120,56a96,96,0,0,1-96,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M61.5,88A96,96,0,0,0,152,152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_simple_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_simple_high />
  <Heroicons.speaker_simple_high class="w-4 h-4" />
  <Heroicons.speaker_simple_high solid />
  <Heroicons.speaker_simple_high mini />
  <Heroicons.speaker_simple_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_simple_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="228" y1="88" x2="228" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.2,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.2l69.9,54.3A7.9,7.9,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8Z"/><path d="M192,96a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V104A8,8,0,0,0,192,96Z"/><path d="M224,80a8,8,0,0,0-8,8v80a8,8,0,0,0,16,0V88A8,8,0,0,0,224,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="104" x2="192" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="88" x2="224" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_simple_none` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_simple_none />
  <Heroicons.speaker_simple_none class="w-4 h-4" />
  <Heroicons.speaker_simple_none solid />
  <Heroicons.speaker_simple_none mini />
  <Heroicons.speaker_simple_none outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_simple_none(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.2,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.2l69.9,54.3A7.9,7.9,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lifebuoy` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lifebuoy />
  <Heroicons.lifebuoy class="w-4 h-4" />
  <Heroicons.lifebuoy solid />
  <Heroicons.lifebuoy mini />
  <Heroicons.lifebuoy outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lifebuoy(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="99.7" y1="99.7" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156.3" y1="99.7" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156.3" y1="156.3" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="99.7" y1="156.3" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="99.7" y1="99.7" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156.3" y1="99.7" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156.3" y1="156.3" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="99.7" y1="156.3" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,60.1a96,96,0,0,1,0,135.8l-39.6-39.6a40.1,40.1,0,0,0,0-56.6Z" opacity="0.2"/><path d="M60.1,195.9a96,96,0,0,1,0-135.8L99.7,99.7a40.1,40.1,0,0,0,0,56.6Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="99.7" y1="99.7" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156.3" y1="99.7" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156.3" y1="156.3" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="99.7" y1="156.3" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M202.2,200.8a103.8,103.8,0,0,0,0-145.6,2.3,2.3,0,0,0-.7-.7,2.3,2.3,0,0,0-.7-.7,103.8,103.8,0,0,0-145.6,0,2.3,2.3,0,0,0-.7.7,2.3,2.3,0,0,0-.7.7,103.8,103.8,0,0,0,0,145.6l.7.7a2.3,2.3,0,0,0,.7.7,103.8,103.8,0,0,0,145.6,0,2.3,2.3,0,0,0,.7-.7A2.3,2.3,0,0,0,202.2,200.8ZM96,128a32,32,0,1,1,32,32A32.1,32.1,0,0,1,96,128Zm88.3-67.6L155.8,88.9a47.9,47.9,0,0,0-55.6,0L71.7,60.4a87.9,87.9,0,0,1,112.6,0ZM71.7,195.6l28.5-28.5a47.9,47.9,0,0,0,55.6,0l28.5,28.5a87.9,87.9,0,0,1-112.6,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="99.7" y1="99.7" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156.3" y1="99.7" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156.3" y1="156.3" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="99.7" y1="156.3" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="99.7" y1="99.7" x2="60.1" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156.3" y1="99.7" x2="195.9" y2="60.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156.3" y1="156.3" x2="195.9" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="99.7" y1="156.3" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `scan` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.scan />
  <Heroicons.scan class="w-4 h-4" />
  <Heroicons.scan solid />
  <Heroicons.scan mini />
  <Heroicons.scan outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def scan(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 40 216 40 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 216 40 216 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 176 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 80 40 40 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="80" width="96" height="96" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 40 216 40 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="80 216 40 216 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="216 176 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 80 40 40 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="84" y="84" width="88" height="88" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="80" y="80" width="96" height="96" rx="8" opacity="0.2"/><polyline points="176 40 216 40 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 216 40 216 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 176 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 80 40 40 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="80" y="80" width="96" height="96" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,40V80a8,8,0,0,1-16,0V48H176a8,8,0,0,1,0-16h40A8,8,0,0,1,224,40ZM80,208H48V176a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H80a8,8,0,0,0,0-16Zm136-40a8,8,0,0,0-8,8v32H176a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V176A8,8,0,0,0,216,168ZM40,88a8,8,0,0,0,8-8V48H80a8,8,0,0,0,0-16H40a8,8,0,0,0-8,8V80A8,8,0,0,0,40,88Zm144,80V88a16,16,0,0,0-16-16H88A16,16,0,0,0,72,88v80a16,16,0,0,0,16,16h80A16,16,0,0,0,184,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 40 216 40 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="80 216 40 216 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216 176 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 80 40 40 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="80" y="80" width="96" height="96" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 40 216 40 216 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="80 216 40 216 40 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216 176 216 216 176 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 80 40 40 80 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="80" y="80" width="96" height="96" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_left_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_left_down />
  <Heroicons.arrow_elbow_left_down class="w-4 h-4" />
  <Heroicons.arrow_elbow_left_down solid />
  <Heroicons.arrow_elbow_left_down mini />
  <Heroicons.arrow_elbow_left_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_left_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 80 208 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 64 80 64 80 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 80 208 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 64 80 64 80 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 80 208 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 64 80 64 80 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,64a8,8,0,0,1-8,8H88v80h40a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8l-48,48a8.2,8.2,0,0,1-11.4,0l-48-48a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,32,152H72V64a8,8,0,0,1,8-8H224A8,8,0,0,1,232,64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 80 208 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 64 80 64 80 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 160 80 208 32 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 64 80 64 80 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `notification` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.notification />
  <Heroicons.notification class="w-4 h-4" />
  <Heroicons.notification solid />
  <Heroicons.notification mini />
  <Heroicons.notification outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def notification(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="196" cy="60" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="196" cy="60" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="196" cy="60" r="28" opacity="0.2"/><path d="M208,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="196" cy="60" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,128v80a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V56A16,16,0,0,1,48,40h80a8,8,0,0,1,0,16H48V208H200V128a8,8,0,0,1,16,0ZM196,24a36,36,0,1,0,36,36A36,36,0,0,0,196,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="196" cy="60" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="196" cy="60" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `globe_hemisphere_west` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.globe_hemisphere_west />
  <Heroicons.globe_hemisphere_west class="w-4 h-4" />
  <Heroicons.globe_hemisphere_west solid />
  <Heroicons.globe_hemisphere_west mini />
  <Heroicons.globe_hemisphere_west outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def globe_hemisphere_west(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214.2,170.4,159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1L94.6,123a7.8,7.8,0,0,1,5.5,4.3l3.8,7.9a8.2,8.2,0,0,0,7.2,4.5h13.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.5,35.1l9.3,16.8a8.1,8.1,0,0,1-1.6,9.8L133.3,86a7.2,7.2,0,0,1-1.5,1.1l-12.3,6.8a8.6,8.6,0,0,1-3.8,1H94.3a8.1,8.1,0,0,0-7.4,4.9l-8.3,19.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M214.2,170.4,159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1L94.6,123a7.8,7.8,0,0,1,5.5,4.3l3.8,7.9a8.2,8.2,0,0,0,7.2,4.5h13.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152.5,35.1l9.3,16.8a8.1,8.1,0,0,1-1.6,9.8L133.3,86a7.2,7.2,0,0,1-1.5,1.1l-12.3,6.8a8.6,8.6,0,0,1-3.8,1H94.3a8.1,8.1,0,0,0-7.4,4.9l-8.3,19.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M130.2,224a96.3,96.3,0,0,0,84-53.6h0L159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224Z" opacity="0.2"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1l5.4,1.1,8.3-19.7a8.1,8.1,0,0,1,7.4-4.9h21.4a8.6,8.6,0,0,0,3.8-1l12.3-6.8a7.2,7.2,0,0,0,1.5-1.1l26.9-24.3a8.1,8.1,0,0,0,1.6-9.8l-9.3-16.8h0A98.5,98.5,0,0,0,128,32,95.4,95.4,0,0,0,65,55.6Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M214.2,170.4,159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1L94.6,123a7.8,7.8,0,0,1,5.5,4.3l3.8,7.9a8.2,8.2,0,0,0,7.2,4.5h13.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152.5,35.1l9.3,16.8a8.1,8.1,0,0,1-1.6,9.8L133.3,86a7.2,7.2,0,0,1-1.5,1.1l-12.3,6.8a8.6,8.6,0,0,1-3.8,1H94.3a8.1,8.1,0,0,0-7.4,4.9l-8.3,19.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.6,173.3A102.9,102.9,0,0,0,232,128,104.2,104.2,0,0,0,154.8,27.5h-.5A103.8,103.8,0,0,0,60.4,49l-1.3,1.2A103.9,103.9,0,0,0,128,232h2.4A104.3,104.3,0,0,0,221,174.6h0ZM216,128a89.3,89.3,0,0,1-5.5,30.7l-46.4-28.5a16,16,0,0,0-6.3-2.3l-22.8-3a16.1,16.1,0,0,0-15.3,6.8h-8.6l-3.8-7.9a16.2,16.2,0,0,0-11-8.7l-6.6-1.4,2.5-5.9a8.1,8.1,0,0,1,7.4-4.9h16.1a16.1,16.1,0,0,0,7.7-2l12.2-6.8a16.1,16.1,0,0,0,3-2.1l26.9-24.4A15.7,15.7,0,0,0,170,50.7,88,88,0,0,1,216,128ZM40,128a87.1,87.1,0,0,1,9.5-39.7l10.4,27.9a16.1,16.1,0,0,0,11.6,10l5.5,1.2h.1l12,2.6a7.8,7.8,0,0,1,5.5,4.3l2.1,4.4a16.1,16.1,0,0,0,14.4,9h1.2l-7.7,17.2a15.9,15.9,0,0,0,2.8,17.4l16.1,17.4a8.3,8.3,0,0,1,2,6.9l-1.8,9.3A88.1,88.1,0,0,1,40,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M214.2,170.4,159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1L94.6,123a7.8,7.8,0,0,1,5.5,4.3l3.8,7.9a8.2,8.2,0,0,0,7.2,4.5h13.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152.5,35.1l9.3,16.8a8.1,8.1,0,0,1-1.6,9.8L133.3,86a7.2,7.2,0,0,1-1.5,1.1l-12.3,6.8a8.6,8.6,0,0,1-3.8,1H94.3a8.1,8.1,0,0,0-7.4,4.9l-8.3,19.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M214.2,170.4,159.9,137a7.2,7.2,0,0,0-3.1-1.1l-22.9-3.1a7.8,7.8,0,0,0-8.3,4.7l-13.7,30.7a8,8,0,0,0,1.4,8.7l18.8,20.3a8.2,8.2,0,0,1,2,7L130.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65,55.6,56,76.8a8,8,0,0,0-.1,5.9l11.5,30.6a7.9,7.9,0,0,0,5.8,5.1L94.6,123a7.8,7.8,0,0,1,5.5,4.3l3.8,7.9a8.2,8.2,0,0,0,7.2,4.5h13.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152.5,35.1l9.3,16.8a8.1,8.1,0,0,1-1.6,9.8L133.3,86a7.2,7.2,0,0,1-1.5,1.1l-12.3,6.8a8.6,8.6,0,0,1-3.8,1H94.3a8.1,8.1,0,0,0-7.4,4.9l-8.3,19.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_six />
  <Heroicons.dots_six class="w-4 h-4" />
  <Heroicons.dots_six solid />
  <Heroicons.dots_six mini />
  <Heroicons.dots_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="92" r="12"/><circle cx="128" cy="92" r="12"/><circle cx="196" cy="92" r="12"/><circle cx="60" cy="164" r="12"/><circle cx="128" cy="164" r="12"/><circle cx="196" cy="164" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="92" r="16"/><circle cx="128" cy="92" r="16"/><circle cx="196" cy="92" r="16"/><circle cx="60" cy="164" r="16"/><circle cx="128" cy="164" r="16"/><circle cx="196" cy="164" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="92" r="12"/><circle cx="128" cy="92" r="12"/><circle cx="196" cy="92" r="12"/><circle cx="60" cy="164" r="12"/><circle cx="128" cy="164" r="12"/><circle cx="196" cy="164" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,92A12,12,0,1,1,60,80,12,12,0,0,1,72,92Zm56-12a12,12,0,1,0,12,12A12,12,0,0,0,128,80Zm68,24a12,12,0,1,0-12-12A12,12,0,0,0,196,104ZM60,152a12,12,0,1,0,12,12A12,12,0,0,0,60,152Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,128,152Zm68,0a12,12,0,1,0,12,12A12,12,0,0,0,196,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="92" r="10"/><circle cx="128" cy="92" r="10"/><circle cx="196" cy="92" r="10"/><circle cx="60" cy="164" r="10"/><circle cx="128" cy="164" r="10"/><circle cx="196" cy="164" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="92" r="8"/><circle cx="128" cy="92" r="8"/><circle cx="196" cy="92" r="8"/><circle cx="60" cy="164" r="8"/><circle cx="128" cy="164" r="8"/><circle cx="196" cy="164" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `star_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.star_four />
  <Heroicons.star_four class="w-4 h-4" />
  <Heroicons.star_four solid />
  <Heroicons.star_four mini />
  <Heroicons.star_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def star_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" opacity="0.2"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240.6,128a15.8,15.8,0,0,1-10.5,15l-63.9,23.2L143,230.1a16,16,0,0,1-30,0L89.8,166.2,25.9,143a16,16,0,0,1,0-30L89.8,89.8,113,25.9a16,16,0,0,1,30,0l23.2,63.9L230.1,113A15.8,15.8,0,0,1,240.6,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.7,163.5l-23.2,63.8a8,8,0,0,1-15,0L97.3,163.5a8.1,8.1,0,0,0-4.8-4.8L28.7,135.5a8,8,0,0,1,0-15L92.5,97.3a8.1,8.1,0,0,0,4.8-4.8l23.2-63.8a8,8,0,0,1,15,0l23.2,63.8a8.1,8.1,0,0,0,4.8,4.8l63.8,23.2a8,8,0,0,1,0,15l-63.8,23.2A8.1,8.1,0,0,0,158.7,163.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bluetooth_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bluetooth_x />
  <Heroicons.bluetooth_x class="w-4 h-4" />
  <Heroicons.bluetooth_x solid />
  <Heroicons.bluetooth_x mini />
  <Heroicons.bluetooth_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bluetooth_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="56" x2="184" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="104" x2="184" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 104 120 128 120 32 152 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="56" x2="184" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="104" x2="184" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="144.4 109.7 120 128 120 32 144.4 50.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="56" x2="184" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="104" x2="184" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 104 120 128 120 32 152 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,169.6,133.3,128l23.5-17.6a8,8,0,0,0,1.6-11.2,8.1,8.1,0,0,0-11.2-1.6L128,112V48l19.2,14.4a8,8,0,0,0,11.2-1.6,8.1,8.1,0,0,0-1.6-11.2l-32-24A8,8,0,0,0,112,32v80L60.8,73.6a8.1,8.1,0,0,0-11.2,1.6,8,8,0,0,0,1.6,11.2L106.7,128,51.2,169.6A8,8,0,0,0,56,184a7.7,7.7,0,0,0,4.8-1.6L112,144v80a8.2,8.2,0,0,0,4.4,7.2,9.4,9.4,0,0,0,3.6.8,7.7,7.7,0,0,0,4.8-1.6l64-48a8,8,0,0,0,0-12.8ZM128,208V144l42.7,32Z"/><path d="M219.3,80l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L208,68.7,189.7,50.3a8.1,8.1,0,0,0-11.4,11.4L196.7,80,178.3,98.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L208,91.3l18.3,18.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="56" x2="184" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="104" x2="184" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 104 120 128 120 32 152 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="56" x2="184" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="104" x2="184" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 104 120 128 120 32 152 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hard_drive` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hard_drive />
  <Heroicons.hard_drive class="w-4 h-4" />
  <Heroicons.hard_drive solid />
  <Heroicons.hard_drive mini />
  <Heroicons.hard_drive outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hard_drive(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="112" rx="8" opacity="0.2"/><rect x="24" y="72" width="208" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,64H32A16,16,0,0,0,16,80v96a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V80A16,16,0,0,0,224,64Zm-36,76a12,12,0,1,1,12-12A12,12,0,0,1,188,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="72" width="208" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `camera_rotate` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.camera_rotate />
  <Heroicons.camera_rotate class="w-4 h-4" />
  <Heroicons.camera_rotate solid />
  <Heroicons.camera_rotate mini />
  <Heroicons.camera_rotate outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def camera_rotate(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,120l-15.7-16.3a40.1,40.1,0,0,0-56.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.3,160.3a40.1,40.1,0,0,1-56.6,0L84,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 96 172 120 148 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 140 84 144 80 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M172,120l-15.7-16.3a40.1,40.1,0,0,0-56.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M156.3,160.3a40.1,40.1,0,0,1-56.6,0L84,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176 96 172 120 148 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="108 140 84 144 80 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" opacity="0.2"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M172,120l-15.7-16.3a40.1,40.1,0,0,0-56.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.3,160.3a40.1,40.1,0,0,1-56.6,0L84,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176 96 172 120 148 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 140 84 144 80 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,56H180.3L166.7,35.6A7.9,7.9,0,0,0,160,32H96a7.9,7.9,0,0,0-6.7,3.6L75.7,56H48A24.1,24.1,0,0,0,24,80V192a24.1,24.1,0,0,0,24,24H208a24.1,24.1,0,0,0,24-24V80A24.1,24.1,0,0,0,208,56ZM161.9,165.9a47.8,47.8,0,0,1-67.8,0H94L89.3,161l-1.4,8.3A8.1,8.1,0,0,1,80,176H78.7a8,8,0,0,1-6.6-9.2l4-24a8.1,8.1,0,0,1,6.6-6.6l24-4a8,8,0,1,1,2.6,15.8l-9,1.5,5.1,5.3A32,32,0,0,0,128,164a31.5,31.5,0,0,0,22.6-9.4,8,8,0,0,1,11.3,0A7.9,7.9,0,0,1,161.9,165.9Zm22-68.6-4,24a8.1,8.1,0,0,1-6.6,6.6l-24,4H148a8.1,8.1,0,0,1-7.9-6.7,8,8,0,0,1,6.6-9.2l9-1.5-5.1-5.3A32,32,0,0,0,128,100a31.5,31.5,0,0,0-22.6,9.4,8,8,0,0,1-11.3,0,7.9,7.9,0,0,1,0-11.3,47.8,47.8,0,0,1,67.8,0c.1,0,.1,0,.1.1l4.7,4.8,1.4-8.3a8,8,0,0,1,15.8,2.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M172,120l-15.7-16.3a40.1,40.1,0,0,0-56.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M156.3,160.3a40.1,40.1,0,0,1-56.6,0L84,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176 96 172 120 148 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 140 84 144 80 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M172,120l-15.7-16.3a40.1,40.1,0,0,0-56.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M156.3,160.3a40.1,40.1,0,0,1-56.6,0L84,144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176 96 172 120 148 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 140 84 144 80 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_text />
  <Heroicons.chat_text class="w-4 h-4" />
  <Heroicons.chat_text solid />
  <Heroicons.chat_text mini />
  <Heroicons.chat_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="108" x2="160" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="148" x2="160" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" opacity="0.2"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H40A16,16,0,0,0,24,64V222.8a15.7,15.7,0,0,0,9.3,14.5,16,16,0,0,0,17-2.2L82,208.4l134-.4a16,16,0,0,0,16-16V64A16,16,0,0,0,216,48ZM160,152H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78,201.3,45.1,228.9A8,8,0,0,1,32,222.8V64a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V192a8,8,0,0,1-8,8H81.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `instagram_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.instagram_logo />
  <Heroicons.instagram_logo class="w-4 h-4" />
  <Heroicons.instagram_logo solid />
  <Heroicons.instagram_logo mini />
  <Heroicons.instagram_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def instagram_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect x="36" y="36" width="184" height="184" rx="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="34" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="32" width="192" height="192" rx="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="180" cy="76" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M172,36H84A48,48,0,0,0,36,84v88a48,48,0,0,0,48,48h88a48,48,0,0,0,48-48V84A48,48,0,0,0,172,36ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z" opacity="0.2"/><circle cx="128" cy="128" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect x="36" y="36" width="184" height="184" rx="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="76" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="32"/><path d="M172,28H84A56,56,0,0,0,28,84v88a56,56,0,0,0,56,56h88a56,56,0,0,0,56-56V84A56,56,0,0,0,172,28ZM128,176a48,48,0,1,1,48-48A48,48,0,0,1,128,176Zm52-88a12,12,0,1,1,12-12A12,12,0,0,1,180,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="36" y="36" width="184" height="184" rx="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="180" cy="76" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="36" y="36" width="184" height="184" rx="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="180" cy="76" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `share_network` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.share_network />
  <Heroicons.share_network class="w-4 h-4" />
  <Heroicons.share_network solid />
  <Heroicons.share_network mini />
  <Heroicons.share_network outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def share_network(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="200" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="56" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="149.1" y1="73.3" x2="90.9" y2="110.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90.9" y1="145.3" x2="149.1" y2="182.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="200" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="56" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="149.1" y1="73.3" x2="90.9" y2="110.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="90.9" y1="145.3" x2="149.1" y2="182.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="176" cy="200" r="32" opacity="0.2"/><circle cx="176" cy="56" r="32" opacity="0.2"/><circle cx="64" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="200" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="56" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="149.1" y1="73.3" x2="90.9" y2="110.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="90.9" y1="145.3" x2="149.1" y2="182.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,160a39.7,39.7,0,0,0-28.6,12.1l-46.1-29.6a40.3,40.3,0,0,0,0-29l46.1-29.6A40,40,0,1,0,136,56a41,41,0,0,0,2.7,14.5L92.6,100.1a40,40,0,1,0,0,55.8l46.1,29.6A41,41,0,0,0,136,200a40,40,0,1,0,40-40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="200" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="56" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="149.1" y1="73.3" x2="90.9" y2="110.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="90.9" y1="145.3" x2="149.1" y2="182.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="200" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="56" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="149.1" y1="73.3" x2="90.9" y2="110.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="90.9" y1="145.3" x2="149.1" y2="182.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bluetooth_connected` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bluetooth_connected />
  <Heroicons.bluetooth_connected class="w-4 h-4" />
  <Heroicons.bluetooth_connected solid />
  <Heroicons.bluetooth_connected mini />
  <Heroicons.bluetooth_connected outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bluetooth_connected(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="128" r="12"/><circle cx="196" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="52" cy="128" r="16"/><circle cx="196" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" opacity="0.2"/><polygon points="120 128 184 176 120 224 120 128" opacity="0.2"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="128" r="12"/><circle cx="196" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,169.6,133.3,128l55.5-41.6a8,8,0,0,0,0-12.8l-64-48A8,8,0,0,0,112,32v80L60.8,73.6a8,8,0,0,0-9.6,12.8L106.7,128,51.2,169.6A8,8,0,0,0,56,184a7.7,7.7,0,0,0,4.8-1.6L112,144v80a8.2,8.2,0,0,0,4.4,7.2,9.4,9.4,0,0,0,3.6.8,7.7,7.7,0,0,0,4.8-1.6l64-48a8,8,0,0,0,0-12.8ZM128,48l42.7,32L128,112Zm0,160V144l42.7,32Zm80-80a12,12,0,1,1-12-12A12,12,0,0,1,208,128ZM52,140a12,12,0,1,1,12-12A12,12,0,0,1,52,140Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="52" cy="128" r="10"/><circle cx="196" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="120 32 184 80 120 128 120 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="120 128 184 176 120 224 120 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="80" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="56" y1="176" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="52" cy="128" r="8"/><circle cx="196" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ladder` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ladder />
  <Heroicons.ladder class="w-4 h-4" />
  <Heroicons.ladder solid />
  <Heroicons.ladder mini />
  <Heroicons.ladder outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ladder(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="40" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="69.1" y1="136" x2="133.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="86.5" y1="88" x2="150.5" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.6" y1="184" x2="115.6" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="73" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124.4" y1="160" x2="187.6" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="40" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="216" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="69.1" y1="136" x2="133.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="86.5" y1="88" x2="150.5" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="51.6" y1="184" x2="115.6" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="73" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="124.4" y1="160" x2="187.6" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="40" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="216" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="69.1" y1="136" x2="133.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="86.5" y1="88" x2="150.5" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.6" y1="184" x2="115.6" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="73" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124.4" y1="160" x2="187.6" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M215.5,213.3,164.5,73l9.1-25H184a8,8,0,0,0,0-16H88a8,8,0,0,0,0,16h4.6L32.5,213.3a7.9,7.9,0,0,0,4.8,10.2,8.6,8.6,0,0,0,2.7.5,7.9,7.9,0,0,0,7.5-5.3L57.2,192h47l-7.7,21.3a7.9,7.9,0,0,0,4.8,10.2,8.6,8.6,0,0,0,2.7.5,7.9,7.9,0,0,0,7.5-5.3L130,168h52l18.5,50.7A7.9,7.9,0,0,0,208,224a8.6,8.6,0,0,0,2.7-.5A7.9,7.9,0,0,0,215.5,213.3Zm-88-85.3h-47L92.1,96h47Zm29.1-80-8.1,22.3h0L144.9,80H98l11.6-32ZM63.1,176l11.6-32h47L110,176Zm72.7-24L156,96.4,176.2,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="40" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="216" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="69.1" y1="136" x2="133.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="86.5" y1="88" x2="150.5" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="51.6" y1="184" x2="115.6" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="73" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="124.4" y1="160" x2="187.6" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="184" y1="40" x2="88" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="40" x2="40" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="216" x2="168" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="69.1" y1="136" x2="133.1" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="86.5" y1="88" x2="150.5" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="51.6" y1="184" x2="115.6" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="73" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="124.4" y1="160" x2="187.6" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_eight` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_eight />
  <Heroicons.number_circle_eight class="w-4 h-4" />
  <Heroicons.number_circle_eight solid />
  <Heroicons.number_circle_eight mini />
  <Heroicons.number_circle_eight outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_eight(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm24,150a33.9,33.9,0,1,1-48-48,26.6,26.6,0,0,1,3.1-2.6l-.3-.2a29.9,29.9,0,0,1,0-42.4c11.3-11.3,31.1-11.3,42.4,0a29.9,29.9,0,0,1,0,42.4l-.3.2A26.6,26.6,0,0,1,152,126a33.8,33.8,0,0,1,0,48Z"/><path d="M137.9,111.9a14,14,0,1,0-19.8,0A14.3,14.3,0,0,0,137.9,111.9Z"/><path d="M128,132a18,18,0,0,0-12.7,30.7,18.4,18.4,0,0,0,25.4,0A18,18,0,0,0,128,132Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M150,102a21.9,21.9,0,1,1-6.4-15.6A22.3,22.3,0,0,1,150,102Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154,150a25.9,25.9,0,1,1-7.6-18.4A25.9,25.9,0,0,1,154,150Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `monitor_play` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.monitor_play />
  <Heroicons.monitor_play class="w-4 h-4" />
  <Heroicons.monitor_play solid />
  <Heroicons.monitor_play mini />
  <Heroicons.monitor_play outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def monitor_play(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="160 120 112 88 112 152 160 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="156 120 116 92 116 148 156 120" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="228" x2="96" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,48H48A16,16,0,0,0,32,64V176a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V64A16,16,0,0,0,208,48ZM112,152V88l48,32Z" opacity="0.2"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="160 120 112 88 112 152 160 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224ZM232,64V176a24.1,24.1,0,0,1-24,24H48a24.1,24.1,0,0,1-24-24V64A24.1,24.1,0,0,1,48,40H208A24.1,24.1,0,0,1,232,64Zm-68,56a7.9,7.9,0,0,0-3.7-6.7l-44-28a7.9,7.9,0,0,0-8.1-.3,8,8,0,0,0-4.2,7v56a8,8,0,0,0,4.2,7,7.7,7.7,0,0,0,8.1-.3l44-28A7.9,7.9,0,0,0,164,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 120 112 88 112 152 160 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 120 112 88 112 152 160 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_open />
  <Heroicons.lock_open class="w-4 h-4" />
  <Heroicons.lock_open solid />
  <Heroicons.lock_open mini />
  <Heroicons.lock_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="152" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,71.8-4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="152" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="152" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H100V52a28,28,0,0,1,56,0,8,8,0,0,0,16,0,44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-80,84a12,12,0,1,1,12-12A12,12,0,0,1,128,164Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="152" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="152" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `command` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.command />
  <Heroicons.command class="w-4 h-4" />
  <Heroicons.command solid />
  <Heroicons.command mini />
  <Heroicons.command outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def command(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76a28,28,0,0,1,28-28Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76a28,28,0,0,1,28-28Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76A28,28,0,0,1,180,48Z" opacity="0.2"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" opacity="0.2"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" opacity="0.2"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" opacity="0.2"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76A28,28,0,0,1,180,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,144H160V112h20a36,36,0,1,0-36-36V96H112V76a36,36,0,1,0-36,36H96v32H76a36,36,0,1,0,36,36V160h32v20a36,36,0,1,0,36-36ZM160,76a20,20,0,1,1,20,20H160ZM56,76a20,20,0,0,1,40,0V96H76A20.1,20.1,0,0,1,56,76ZM96,180a20,20,0,1,1-20-20H96Zm16-68h32v32H112Zm68,88a20.1,20.1,0,0,1-20-20V160h20a20,20,0,0,1,0,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76a28,28,0,0,1,28-28Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,48h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H152a0,0,0,0,1,0,0V76a28,28,0,0,1,28-28Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,48H76a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0A28,28,0,0,1,48,76V48A0,0,0,0,1,48,48Z" transform="translate(152 152) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,152h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h0a28,28,0,0,1-28-28V152A0,0,0,0,1,152,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,152h0a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28H48a0,0,0,0,1,0,0V180A28,28,0,0,1,76,152Z" transform="translate(152 360) rotate(-180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sliders_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sliders_horizontal />
  <Heroicons.sliders_horizontal class="w-4 h-4" />
  <Heroicons.sliders_horizontal solid />
  <Heroicons.sliders_horizontal mini />
  <Heroicons.sliders_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sliders_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="148" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="172" x2="188" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="168" cy="172" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="84" x2="124" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="84" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="148" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="172" x2="188" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="168" cy="172" r="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="84" x2="124" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="104" cy="84" r="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="84" r="20" opacity="0.2"/><line x1="148" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="172" x2="188" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="168" cy="172" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="84" x2="124" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="84" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,164H194.8a28,28,0,0,0-53.6,0H40a8,8,0,0,0,0,16H141.2a28,28,0,0,0,53.6,0H216a8,8,0,0,0,0-16Z"/><path d="M40,92H77.2a28,28,0,0,0,53.6,0H216a8,8,0,0,0,0-16H130.8a28,28,0,0,0-53.6,0H40a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="148" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="172" x2="188" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="168" cy="172" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="84" x2="124" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="104" cy="84" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="148" y1="172" x2="40" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="172" x2="188" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="168" cy="172" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84" y1="84" x2="40" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="84" x2="124" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="104" cy="84" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_cny` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_cny />
  <Heroicons.currency_cny class="w-4 h-4" />
  <Heroicons.currency_cny solid />
  <Heroicons.currency_cny mini />
  <Heroicons.currency_cny outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_cny(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="120" x2="208" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,120v56a23.9,23.9,0,0,0,24,24h40V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,120v16a64.1,64.1,0,0,1-64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="120" x2="208" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,120v56a23.9,23.9,0,0,0,24,24h40V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,120v16a64.1,64.1,0,0,1-64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="120" x2="208" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,120v56a23.9,23.9,0,0,0,24,24h40V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,120v16a64.1,64.1,0,0,1-64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56,64a8,8,0,0,1,8-8H192a8,8,0,0,1,0,16H64A8,8,0,0,1,56,64ZM216,168a8,8,0,0,0-8,8v16H176a16,16,0,0,1-16-16V128h48a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16H96v8a56,56,0,0,1-56,56,8,8,0,0,0,0,16,72.1,72.1,0,0,0,72-72v-8h32v48a32.1,32.1,0,0,0,32,32h40a8,8,0,0,0,8-8V176A8,8,0,0,0,216,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="120" x2="208" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M152,120v56a23.9,23.9,0,0,0,24,24h40V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,120v16a64.1,64.1,0,0,1-64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="120" x2="208" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M152,120v56a23.9,23.9,0,0,0,24,24h40V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,120v16a64.1,64.1,0,0,1-64,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `plug` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.plug />
  <Heroicons.plug class="w-4 h-4" />
  <Heroicons.plug solid />
  <Heroicons.plug mini />
  <Heroicons.plug outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def plug(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="168" x2="32" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="64" x2="184" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="72" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="144" x2="112" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="168" x2="32" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="64" x2="184" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="72" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="144" x2="112" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44Z" opacity="0.2"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="168" x2="32" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="64" x2="184" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="72" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="144" x2="112" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,77.7,203.3,112l26.4,26.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-6.3-6.4L160.3,195a40.1,40.1,0,0,1-56.6,0L88,179.3,37.7,229.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L76.7,168,61,152.3a40.1,40.1,0,0,1,0-56.6L112.7,44l-6.4-6.3a8.1,8.1,0,0,1,11.4-11.4L144,52.7l34.3-34.4a8.1,8.1,0,0,1,11.4,11.4L155.3,64,192,100.7l34.3-34.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="168" x2="32" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="64" x2="184" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="72" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="144" x2="112" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M212,132l-57.4,57.4a31.9,31.9,0,0,1-45.2,0L66.6,146.6a31.9,31.9,0,0,1,0-45.2L124,44" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="168" x2="32" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="64" x2="184" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="72" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="144" x2="112" y2="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `train_regional` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.train_regional />
  <Heroicons.train_regional class="w-4 h-4" />
  <Heroicons.train_regional solid />
  <Heroicons.train_regional mini />
  <Heroicons.train_regional outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def train_regional(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.1,32H185.9a7.9,7.9,0,0,1,7.7,5.9L216,120l-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9L40,120,62.4,37.9A7.9,7.9,0,0,1,70.1,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 120 128 136 216 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="88" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.1,32H185.9a7.9,7.9,0,0,1,7.7,5.9L216,120l-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9L40,120,62.4,37.9A7.9,7.9,0,0,1,70.1,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="208" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="40 120 128 136 216 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="88" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,120l88,16,88-16-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9Z" opacity="0.2"/><path d="M70.1,32H185.9a7.9,7.9,0,0,1,7.7,5.9L216,120l-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9L40,120,62.4,37.9A7.9,7.9,0,0,1,70.1,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="40 120 128 136 216 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="88" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z"/><path d="M224,119.9a2.2,2.2,0,0,0-.1-.8v-.5c-.1-.2-.1-.4-.2-.6h0l-22.4-82A15.9,15.9,0,0,0,185.9,24H70.1A15.9,15.9,0,0,0,54.7,35.8l-22.4,82h0c-.1.2-.1.4-.2.6v.5a2.2,2.2,0,0,0-.1.8v.2a2.8,2.8,0,0,0,.1.9h0a2.9,2.9,0,0,0,.2.9h0l22.4,82.1A15.9,15.9,0,0,0,70.1,216H80L65.6,235.2a8,8,0,0,0,1.6,11.2A7.7,7.7,0,0,0,72,248a8,8,0,0,0,6.4-3.2L100,216h56l21.6,28.8A8,8,0,0,0,184,248a7.7,7.7,0,0,0,4.8-1.6,8,8,0,0,0,1.6-11.2L176,216h9.9a15.9,15.9,0,0,0,15.4-11.8l22.4-82.1h0a2.9,2.9,0,0,0,.2-.9h0a2.8,2.8,0,0,0,.1-.9ZM136,192a8,8,0,0,1-16,0V152a8,8,0,0,1,16,0Zm-8-64.1L50,113.7,70.1,40H185.9L206,113.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.1,32H185.9a7.9,7.9,0,0,1,7.7,5.9L216,120l-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9L40,120,62.4,37.9A7.9,7.9,0,0,1,70.1,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="208" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="40 120 128 136 216 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="88" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M70.1,32H185.9a7.9,7.9,0,0,1,7.7,5.9L216,120l-22.4,82.1a7.9,7.9,0,0,1-7.7,5.9H70.1a7.9,7.9,0,0,1-7.7-5.9L40,120,62.4,37.9A7.9,7.9,0,0,1,70.1,32Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="208" x2="128" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="40 120 128 136 216 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="88" x2="160" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="208" x2="72" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="208" x2="184" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `graduation_cap` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.graduation_cap />
  <Heroicons.graduation_cap class="w-4 h-4" />
  <Heroicons.graduation_cap solid />
  <Heroicons.graduation_cap mini />
  <Heroicons.graduation_cap outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def graduation_cap(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="8 96 128 32 248 96 128 160 8 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="188 240 188 128 128 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,110.9v54.6a7.8,7.8,0,0,1-1.6,4.7c-6.7,9-35.1,41.8-90.4,41.8s-83.7-32.8-90.4-41.8a7.8,7.8,0,0,1-1.6-4.7V110.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="12 96 128 32 244 96 128 160 12 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="186 240 186 128 128 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,107v58.2a7.8,7.8,0,0,1-1.9,5.1c-7.7,9.1-39,41.7-94.1,41.7s-86.4-32.6-94.1-41.7a7.8,7.8,0,0,1-1.9-5.1V107" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M36,110.9v54.6a7.8,7.8,0,0,0,1.6,4.7c6.7,9,35.1,41.8,90.4,41.8s83.7-32.8,90.4-41.8a7.8,7.8,0,0,0,1.6-4.7V110.9L128,160Z" opacity="0.2"/><polygon points="8 96 128 32 248 96 128 160 8 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="188 240 188 128 128 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220,110.9v54.6a7.8,7.8,0,0,1-1.6,4.7c-6.7,9-35.1,41.8-90.4,41.8s-83.7-32.8-90.4-41.8a7.8,7.8,0,0,1-1.6-4.7V110.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,209.6a119.4,119.4,0,0,0,16-8.5V240a8,8,0,0,1-16,0ZM120.9,92.2a8.2,8.2,0,0,0,3.3,10.9L171,128l17-9.1-56.2-30A8.2,8.2,0,0,0,120.9,92.2Zm130.9-3.3-120-64a8.5,8.5,0,0,0-7.6,0l-120,64a8.1,8.1,0,0,0,0,14.2L28,115.7v49.8a15.5,15.5,0,0,0,3.2,9.5c7.9,10.6,38.3,45,96.8,45a128.7,128.7,0,0,0,52-10.5V132.8l-9-4.8-43,22.9-88.2-47h0L25,96,128,41.1,231,96l-14.8,7.9h0l-28.2,15,3.8,2a8.4,8.4,0,0,1,3.2,3.3,7.5,7.5,0,0,1,1,3.8v73.1A111.8,111.8,0,0,0,224.8,175a15.5,15.5,0,0,0,3.2-9.5V115.7l23.8-12.6a8.1,8.1,0,0,0,0-14.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="8 96 128 32 248 96 128 160 8 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="188 240 188 128 128 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M220,110.9v54.6a7.8,7.8,0,0,1-1.6,4.7c-6.7,9-35.1,41.8-90.4,41.8s-83.7-32.8-90.4-41.8a7.8,7.8,0,0,1-1.6-4.7V110.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="8 96 128 32 248 96 128 160 8 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="188 240 188 128 128 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M220,110.9v54.6a7.8,7.8,0,0,1-1.6,4.7c-6.7,9-35.1,41.8-90.4,41.8s-83.7-32.8-90.4-41.8a7.8,7.8,0,0,1-1.6-4.7V110.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_counter_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_counter_clockwise />
  <Heroicons.arrows_counter_clockwise class="w-4 h-4" />
  <Heroicons.arrows_counter_clockwise solid />
  <Heroicons.arrows_counter_clockwise mini />
  <Heroicons.arrows_counter_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_counter_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,65.8a87.9,87.9,0,0,0-124.4,0l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176.2 156.3 224.2 156.3 224.2 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a87.9,87.9,0,0,0,124.4,0l34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.2,65.8a87.9,87.9,0,0,0-124.4,0l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="176.2 156.3 224.2 156.3 224.2 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65.8,190.2a87.9,87.9,0,0,0,124.4,0l34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M190.2,65.8a87.9,87.9,0,0,0-124.4,0l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="176.2 156.3 224.2 156.3 224.2 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a87.9,87.9,0,0,0,124.4,0l34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M79.8,107.7h-48a8,8,0,0,1-8-8v-48a8.2,8.2,0,0,1,5-7.4,8,8,0,0,1,8.7,1.8L55.8,64.4l4.3-4.3a96.2,96.2,0,0,1,135.8,0,8,8,0,0,1,0,11.3,7.9,7.9,0,0,1-11.3,0,80.2,80.2,0,0,0-113.2,0l-4.3,4.3L85.5,94.1a8,8,0,0,1-5.7,13.6Zm144.4,40.6h-48a8,8,0,0,0-5.7,13.6l18.4,18.4-4.3,4.3a80.2,80.2,0,0,1-113.2,0,7.9,7.9,0,0,0-11.3,0,8,8,0,0,0,0,11.3,96.1,96.1,0,0,0,135.8,0l4.3-4.3,18.3,18.3a7.8,7.8,0,0,0,5.7,2.4,8,8,0,0,0,3-.6,8.2,8.2,0,0,0,5-7.4v-48A8,8,0,0,0,224.2,148.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M190.2,65.8a87.9,87.9,0,0,0-124.4,0l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="176.2 156.3 224.2 156.3 224.2 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65.8,190.2a87.9,87.9,0,0,0,124.4,0l34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="79.8 99.7 31.8 99.7 31.8 51.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M190.2,65.8a87.9,87.9,0,0,0-124.4,0l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="176.2 156.3 224.2 156.3 224.2 204.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65.8,190.2a87.9,87.9,0,0,0,124.4,0l34-33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_double_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_double_up_left />
  <Heroicons.arrow_bend_double_up_left class="w-4 h-4" />
  <Heroicons.arrow_bend_double_up_left solid />
  <Heroicons.arrow_bend_double_up_left mini />
  <Heroicons.arrow_bend_double_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_double_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 80 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,200a96,96,0,0,0-96-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="136 152 88 104 136 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,200a96,96,0,0,0-96-96H88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 80 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,200a96,96,0,0,0-96-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M85.7,146.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-48-48a8.1,8.1,0,0,1,0-11.4l48-48A8.1,8.1,0,0,1,85.7,61.7L43.3,104Zm50.3-50V56a8,8,0,0,0-4.9-7.4,8.4,8.4,0,0,0-8.8,1.7l-48,48a8.1,8.1,0,0,0,0,11.4l48,48A8.3,8.3,0,0,0,128,160a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,136,152V112.4A88.1,88.1,0,0,1,216,200a8,8,0,0,0,16,0A104.1,104.1,0,0,0,136,96.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 152 80 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,200a96,96,0,0,0-96-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="80 152 32 104 80 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 152 80 104 128 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,200a96,96,0,0,0-96-96H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `skip_forward` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.skip_forward />
  <Heroicons.skip_forward class="w-4 h-4" />
  <Heroicons.skip_forward solid />
  <Heroicons.skip_forward mini />
  <Heroicons.skip_forward outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def skip_forward(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="40" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" opacity="0.2"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40V216a8,8,0,0,1-16,0V142.3L72.3,215.4a16.2,16.2,0,0,1-8.3,2.3,15.4,15.4,0,0,1-7.8-2,15.9,15.9,0,0,1-8.2-14V54.3A16,16,0,0,1,72.3,40.6L192,113.7V40a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="40" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.8,121.2,68.2,47.4A8,8,0,0,0,56,54.3V201.7a8,8,0,0,0,12.2,6.9l120.6-73.8A8,8,0,0,0,188.8,121.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="40" x2="200" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hand` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hand />
  <Heroicons.hand class="w-4 h-4" />
  <Heroicons.hand solid />
  <Heroicons.hand mini />
  <Heroicons.hand outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hand(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,120V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,68V36a20,20,0,0,0-40,0V52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,120V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,68V36a20,20,0,0,0-40,0V52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,52V36a20,20,0,0,1,40,0V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0Z" opacity="0.2"/><path d="M168,120V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,68V36a20,20,0,0,0-40,0V52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,40a28.2,28.2,0,0,0-12,2.7V36a28,28,0,0,0-54.6-8.6A27.8,27.8,0,0,0,108,24,28.1,28.1,0,0,0,80,52v75.4l-7-12.1A28,28,0,0,0,24.3,143c32.5,68.4,54.1,97,103.7,97a88.1,88.1,0,0,0,88-88V68A28.1,28.1,0,0,0,188,40Zm12,112a72.1,72.1,0,0,1-72,72c-20.2,0-34.2-5.5-47-18.2S56.3,173,38.7,135.9l-.3-.6a11.6,11.6,0,0,1-1.2-9.1,11.8,11.8,0,0,1,5.6-7.3,12,12,0,0,1,9.1-1.2,11.6,11.6,0,0,1,7.2,5.6l22,38a8.1,8.1,0,0,0,9,3.7,7.9,7.9,0,0,0,5.9-7.7V52a12,12,0,0,1,24,0v68a8,8,0,0,0,16,0V36a12,12,0,0,1,24,0v84a8,8,0,0,0,16,0V68a12,12,0,0,1,24,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,120V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,68V36a20,20,0,0,0-40,0V52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,120V68a20,20,0,0,1,40,0v84a80,80,0,0,1-80,80c-44.2,0-64-24-96.6-92.7a20,20,0,0,1,34.7-20l21.9,38V52a20,20,0,0,1,40,0v68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,68V36a20,20,0,0,0-40,0V52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_ppt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_ppt />
  <Heroicons.file_ppt class="w-4 h-4" />
  <Heroicons.file_ppt solid />
  <Heroicons.file_ppt mini />
  <Heroicons.file_ppt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_ppt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,200h16a16,16,0,0,0,0-32H112v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="172" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="190" y1="216" x2="190" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,204H60a20,20,0,0,0,0-40H44v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M116,204h16a20,20,0,0,0,0-40H116v56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="220" x2="200" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="220" y1="164" x2="180" y2="164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,200h16a16,16,0,0,0,0-32H112v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="168" x2="172" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="190" y1="216" x2="190" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40v88a8,8,0,0,0,8,8H208a8,8,0,0,0,8-8V88A8.1,8.1,0,0,0,213.7,82.3ZM152,88V44l44,44ZM64,160H48a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32H56V176h8a8,8,0,0,1,0,16Zm64-32H112a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0v-8h8a24,24,0,0,0,0-48Zm0,32h-8V176h8a8,8,0,0,1,0,16Zm88-24a8,8,0,0,1-8,8H198v40a8,8,0,0,1-16,0V176H172a8,8,0,0,1,0-16h36A8,8,0,0,1,216,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,200h16a16,16,0,0,0,0-32H112v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="168" x2="172" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="190" y1="216" x2="190" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M48,200H64a16,16,0,0,0,0-32H48v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,200h16a16,16,0,0,0,0-32H112v48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="168" x2="172" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="190" y1="216" x2="190" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `users` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.users />
  <Heroicons.users class="w-4 h-4" />
  <Heroicons.users solid />
  <Heroicons.users mini />
  <Heroicons.users outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def users(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="108" r="52" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M155.4,57.9A54.5,54.5,0,0,1,169.5,56a52,52,0,0,1,0,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,197.4a88,88,0,0,1,144,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.5,160a87.9,87.9,0,0,1,72,37.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="108" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M155.4,57.9A54.5,54.5,0,0,1,169.5,56a52,52,0,0,1,0,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M16,197.4a88,88,0,0,1,144,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M169.5,160a87.9,87.9,0,0,1,72,37.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="108" r="52" opacity="0.2"/><circle cx="88" cy="108" r="52" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M155.4,57.9A54.5,54.5,0,0,1,169.5,56a52,52,0,0,1,0,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,197.4a88,88,0,0,1,144,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.5,160a87.9,87.9,0,0,1,72,37.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M121.2,157.9a60,60,0,1,0-66.4,0A95.5,95.5,0,0,0,9.5,192.8a7.8,7.8,0,0,0-.6,8.3,8.1,8.1,0,0,0,7.1,4.3H160a8.1,8.1,0,0,0,7.1-4.3,7.8,7.8,0,0,0-.6-8.3A95.5,95.5,0,0,0,121.2,157.9Z"/><path d="M248.1,192.8a96.3,96.3,0,0,0-45.4-34.9A59.9,59.9,0,0,0,169.5,48a64,64,0,0,0-16.3,2.2,8.2,8.2,0,0,0-5.4,5.2,8,8,0,0,0,1.2,7.3,75.8,75.8,0,0,1,3.8,84.9,8.1,8.1,0,0,0,2.1,10.6q4.5,3.5,8.7,7.2l.5.5a112.6,112.6,0,0,1,25.5,34.9,7.9,7.9,0,0,0,7.2,4.6h44.7a8.1,8.1,0,0,0,7.1-4.3A8,8,0,0,0,248.1,192.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="108" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M155.4,57.9A54.5,54.5,0,0,1,169.5,56a52,52,0,0,1,0,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M16,197.4a88,88,0,0,1,144,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M169.5,160a87.9,87.9,0,0,1,72,37.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="88" cy="108" r="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M155.4,57.9A54.5,54.5,0,0,1,169.5,56a52,52,0,0,1,0,104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M16,197.4a88,88,0,0,1,144,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M169.5,160a87.9,87.9,0,0,1,72,37.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_down_left />
  <Heroicons.arrow_line_down_left class="w-4 h-4" />
  <Heroicons.arrow_line_down_left solid />
  <Heroicons.arrow_line_down_left mini />
  <Heroicons.arrow_line_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 100 64 200 164 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 100 64 200 164 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 100 64 200 164 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M181.7,82.3a8.1,8.1,0,0,1,0,11.4L125.3,150l44.4,44.3a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,164,208H64a8,8,0,0,1-8-8V100a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7L114,138.7l56.3-56.4A8.1,8.1,0,0,1,181.7,82.3ZM216,32H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 100 64 200 164 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="176" y1="88" x2="64" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 100 64 200 164 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="40" x2="40" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_vue` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_vue />
  <Heroicons.file_vue class="w-4 h-4" />
  <Heroicons.file_vue solid />
  <Heroicons.file_vue mini />
  <Heroicons.file_vue outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_vue(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="192" x2="180" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 216 180 216 180 168 208 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="44 168 64 216 84 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,168v30a18,18,0,0,0,36,0V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="220 220 188 220 188 164 220 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="192" x2="188" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="32 164 54 220 76 164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,164v36a20,20,0,0,0,40,0V164" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="192" x2="180" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 216 180 216 180 168 208 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="44 168 64 216 84 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112,168v30a18,18,0,0,0,36,0V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,176v8h16a8,8,0,0,1,0,16H188v8h20a8,8,0,0,1,0,16H180a8,8,0,0,1-8-8V168a8,8,0,0,1,8-8h28a8,8,0,0,1,0,16ZM87.1,160.6a8,8,0,0,0-10.5,4.3L64,195.2,51.4,164.9a8,8,0,0,0-14.8,6.2l20,48a8,8,0,0,0,14.8,0l20-48A8,8,0,0,0,87.1,160.6ZM148,160a8,8,0,0,0-8,8v30a10,10,0,0,1-20,0V168a8,8,0,0,0-16,0v30a26,26,0,0,0,52,0V168A8,8,0,0,0,148,160Zm68-72v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-20,0L152,44V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="192" x2="180" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 216 180 216 180 168 208 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="44 168 64 216 84 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M112,168v30a18,18,0,0,0,36,0V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="204" y1="192" x2="180" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 216 180 216 180 168 208 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="44 168 64 216 84 168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M112,168v30a18,18,0,0,0,36,0V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rainbow_cloud` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rainbow_cloud />
  <Heroicons.rainbow_cloud class="w-4 h-4" />
  <Heroicons.rainbow_cloud solid />
  <Heroicons.rainbow_cloud mini />
  <Heroicons.rainbow_cloud outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rainbow_cloud(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,200,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,176V160A96,96,0,0,1,178.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,176V160a64,64,0,0,1,101.9-51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,176V160a32,32,0,0,1,32-32,30,30,0,0,1,7.4.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,204,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,176V160a20.1,20.1,0,0,1,7.7-15.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M52,176V160a60,60,0,0,1,90.8-51.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M12,176V160A100,100,0,0,1,177.6,84.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,200,200Z" opacity="0.2"/><path d="M152,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,200,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16,176V160A96,96,0,0,1,178.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,176V160a64,64,0,0,1,101.9-51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,176V160a32,32,0,0,1,32-32,30,30,0,0,1,7.4.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,160a48,48,0,0,1-48,48H152c-17.6,0-32-14.8-32-32.9s14.4-32.9,32-32.9l3.3.2A48,48,0,0,1,248,160ZM112,72a87.3,87.3,0,0,1,61.3,24.9,8,8,0,1,0,11.2-11.5A104,104,0,0,0,8,160v16a8,8,0,0,0,16,0V160A88.1,88.1,0,0,1,112,72Zm0,32a56,56,0,0,1,33.1,10.8,8,8,0,1,0,9.5-12.8A70.9,70.9,0,0,0,112,88a72.1,72.1,0,0,0-72,72v16a8,8,0,0,0,16,0V160A56,56,0,0,1,112,104Zm15.2,26.7a7.9,7.9,0,0,0-5.9-9.6A42.2,42.2,0,0,0,112,120a40,40,0,0,0-40,40v16a8,8,0,0,0,16,0V160a24.1,24.1,0,0,1,24-24,26,26,0,0,1,5.6.6A7.9,7.9,0,0,0,127.2,130.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,200,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M16,176V160A96,96,0,0,1,178.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,176V160a64,64,0,0,1,101.9-51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,176V160a32,32,0,0,1,32-32,30,30,0,0,1,7.4.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,200c-13.3,0-24-11.1-24-24.9s10.7-24.9,24-24.9a21.6,21.6,0,0,1,8.8,1.8h0A40,40,0,1,1,200,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M16,176V160A96,96,0,0,1,178.9,91.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,176V160a64,64,0,0,1,101.9-51.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,176V160a32,32,0,0,1,32-32,30,30,0,0,1,7.4.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sign_out` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sign_out />
  <Heroicons.sign_out class="w-4 h-4" />
  <Heroicons.sign_out solid />
  <Heroicons.sign_out mini />
  <Heroicons.sign_out outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sign_out(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="174 86 216 128 174 170" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="174 86 216 128 174 170" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="174 86 216 128 174 170" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.7,133.7l-42,42A8.3,8.3,0,0,1,174,178a7.7,7.7,0,0,1-3-.6,8,8,0,0,1-5-7.4V136H104a8,8,0,0,1,0-16h62V86a8,8,0,0,1,5-7.4,8.2,8.2,0,0,1,8.7,1.7l42,42A8.1,8.1,0,0,1,221.7,133.7ZM104,208H48V48h56a8,8,0,0,0,0-16H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16h56a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="174 86 216 128 174 170" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="174 86 216 128 174 170" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `speaker_none` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.speaker_none />
  <Heroicons.speaker_none class="w-4 h-4" />
  <Heroicons.speaker_none solid />
  <Heroicons.speaker_none mini />
  <Heroicons.speaker_none outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def speaker_none(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80Z" opacity="0.2"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M155.5,24.8a8,8,0,0,0-8.4.9L77.3,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.3l69.8,54.3A8.1,8.1,0,0,0,152,232a8.5,8.5,0,0,0,3.5-.8A8,8,0,0,0,160,224V32A8,8,0,0,0,155.5,24.8ZM32,96H72v64H32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microphone_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microphone_slash />
  <Heroicons.microphone_slash class="w-4 h-4" />
  <Heroicons.microphone_slash solid />
  <Heroicons.microphone_slash mini />
  <Heroicons.microphone_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microphone_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176.4,181.3A72,72,0,0,1,56.4,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168h0a40,40,0,0,1-40-40V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,43a39.8,39.8,0,0,1,34-19h0a40,40,0,0,1,40,40v60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M199.6,136a72.4,72.4,0,0,1-4.5,18.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M150.7,153a40.4,40.4,0,0,1-22.7,7h0a40,40,0,0,1-40-40V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M98.9,36.5A39.9,39.9,0,0,1,128,24h0a40,40,0,0,1,40,40v48.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M177.7,182.7A80,80,0,0,1,48,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,120a79.5,79.5,0,0,1-5.9,30.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="88" y="24" width="80" height="144" rx="40" opacity="0.2"/><path d="M176.4,181.3A72,72,0,0,1,56.4,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168h0a40,40,0,0,1-40-40V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M94,43a39.8,39.8,0,0,1,34-19h0a40,40,0,0,1,40,40v60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M199.6,136a72.4,72.4,0,0,1-4.5,18.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.9,210.6l-160-176A8,8,0,0,0,42.1,45.4L80,87.1V128a48,48,0,0,0,73.9,40.4l10.9,12A64,64,0,0,1,64.4,135.1a8,8,0,1,0-15.9,1.8A79.9,79.9,0,0,0,120,207.6V232a8,8,0,0,0,16,0V207.6a79.2,79.2,0,0,0,39.6-15.3l26.5,29.1A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1A7.9,7.9,0,0,0,213.9,210.6Z"/><path d="M162.1,129.8a7.9,7.9,0,0,0,5.9,2.6,7.4,7.4,0,0,0,2.9-.5,8,8,0,0,0,5.1-7.5V64a48,48,0,0,0-48-48A47.5,47.5,0,0,0,87.2,38.8a8,8,0,0,0,.8,9.6Z"/><path d="M192.2,161.7a9.3,9.3,0,0,0,2.9.5,7.8,7.8,0,0,0,7.4-5.1,78.7,78.7,0,0,0,5-20.2,8,8,0,1,0-15.9-1.8,60.1,60.1,0,0,1-4,16.2A8.1,8.1,0,0,0,192.2,161.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168h0a40,40,0,0,1-40-40V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176.4,181.3A72,72,0,0,1,56.4,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M199.6,136a72.4,72.4,0,0,1-6.2,22.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M94,43a39.8,39.8,0,0,1,34-19h0a40,40,0,0,1,40,40v60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="200" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176.4,181.3A72,72,0,0,1,56.4,136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M154.9,157.6A39.6,39.6,0,0,1,128,168h0a40,40,0,0,1-40-40V84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M94,43a39.8,39.8,0,0,1,34-19h0a40,40,0,0,1,40,40v60.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M199.6,136a72.4,72.4,0,0,1-4.5,18.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `phone_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.phone_x />
  <Heroicons.phone_x class="w-4 h-4" />
  <Heroicons.phone_x solid />
  <Heroicons.phone_x mini />
  <Heroicons.phone_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def phone_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="48" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="48" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" opacity="0.2"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="48" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M222,158.4l-46.9-20a15.6,15.6,0,0,0-15.1,1.3l-25.1,16.7a76.5,76.5,0,0,1-35.2-35h0L116.3,96a15.9,15.9,0,0,0,1.4-15.1L97.6,34a16.3,16.3,0,0,0-16.7-9.6A56.2,56.2,0,0,0,32,80c0,79.4,64.6,144,144,144a56.2,56.2,0,0,0,55.6-48.9A16.3,16.3,0,0,0,222,158.4Z"/><path d="M154.3,101.7a8.2,8.2,0,0,0,11.4,0L184,83.3l18.3,18.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4L195.3,72l18.4-18.3a8.1,8.1,0,0,0-11.4-11.4L184,60.7,165.7,42.3a8.1,8.1,0,0,0-11.4,11.4L172.7,72,154.3,90.3A8.1,8.1,0,0,0,154.3,101.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="48" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.5,124.8a83.6,83.6,0,0,0,39,38.9,8,8,0,0,0,7.9-.6l25-16.7a7.9,7.9,0,0,1,7.6-.7l46.8,20.1a7.9,7.9,0,0,1,4.8,8.3A48,48,0,0,1,176,216,136,136,0,0,1,40,80,48,48,0,0,1,81.9,32.4a7.9,7.9,0,0,1,8.3,4.8l20.1,46.9a8,8,0,0,1-.6,7.5L93,117A8,8,0,0,0,92.5,124.8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="48" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="48" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `clock_counter_clockwise` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.clock_counter_clockwise />
  <Heroicons.clock_counter_clockwise class="w-4 h-4" />
  <Heroicons.clock_counter_clockwise solid />
  <Heroicons.clock_counter_clockwise mini />
  <Heroicons.clock_counter_clockwise outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def clock_counter_clockwise(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="71.8 99.7 31.8 99.7 31.8 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="71.8 99.7 31.8 99.7 31.8 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" opacity="0.2"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="71.8 99.7 31.8 99.7 31.8 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,80v43.4l37.6,21.7a8,8,0,0,1-4,14.9,7.1,7.1,0,0,1-4-1.1l-41.6-24h-.2l-.4-.2-.3-.3-.3-.2-.3-.3-.2-.2c-.2-.1-.3-.3-.4-.4l-.2-.2-.2-.4-.2-.3-.2-.3a.5.5,0,0,1-.2-.4l-.2-.3c0-.1-.1-.2-.1-.4a.4.4,0,0,1-.1-.3l-.2-.4a.4.4,0,0,0-.1-.3c0-.2,0-.3-.1-.4v-.4c0-.2-.1-.3-.1-.4V80a8,8,0,0,1,16,0Zm59.9-19.9a96.2,96.2,0,0,0-135.8,0l-8.3,8.3L37.5,54.1a8,8,0,0,0-8.7-1.8,8.2,8.2,0,0,0-5,7.4v40a8,8,0,0,0,8,8h40a8,8,0,0,0,5.7-13.6L63.1,79.7l8.3-8.3a80,80,0,1,1,0,113.2,7.9,7.9,0,0,0-11.3,0,8,8,0,0,0,0,11.3A96,96,0,0,0,195.9,60.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="71.8 99.7 31.8 99.7 31.8 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="80" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="169.6" y1="152" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="71.8 99.7 31.8 99.7 31.8 59.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M65.8,190.2a88,88,0,1,0,0-124.4l-34,33.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `apple_podcasts_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.apple_podcasts_logo />
  <Heroicons.apple_podcasts_logo class="w-4 h-4" />
  <Heroicons.apple_podcasts_logo solid />
  <Heroicons.apple_podcasts_logo mini />
  <Heroicons.apple_podcasts_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def apple_podcasts_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M130.9,224h-5.8a16,16,0,0,1-15.7-12.9l-9.6-48A16,16,0,0,1,115.5,144h25a16,16,0,0,1,15.7,19.1l-9.6,48A16,16,0,0,1,130.9,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68.3,151.2a64,64,0,1,1,119.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76.4,208.9a96,96,0,1,1,103.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="108" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134.6,224H121.4a16,16,0,0,1-15.8-13.1l-10.2-56A16,16,0,0,1,111.2,136h33.6a16,16,0,0,1,15.8,18.9l-10.2,56A16,16,0,0,1,134.6,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M134.6,224H121.4a16,16,0,0,1-15.8-13.1l-10.2-56A16,16,0,0,1,111.2,136h33.6a16,16,0,0,1,15.8,18.9l-10.2,56A16,16,0,0,1,134.6,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M62.7,198.4a96,96,0,1,1,130.6,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="24" opacity="0.2"/><path d="M130.9,224h-5.8a16,16,0,0,1-15.7-12.9l-9.6-48A16,16,0,0,1,115.5,144h25a16,16,0,0,1,15.7,19.1l-9.6,48A16,16,0,0,1,130.9,224Z" opacity="0.2"/><circle cx="128" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M130.9,224h-5.8a16,16,0,0,1-15.7-12.9l-9.6-48A16,16,0,0,1,115.5,144h25a16,16,0,0,1,15.7,19.1l-9.6,48A16,16,0,0,1,130.9,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M68.3,151.2a64,64,0,1,1,119.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76.4,208.9a96,96,0,1,1,103.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,144a28,28,0,1,1,28-28A28.1,28.1,0,0,1,128,144Zm12.5,0h-25a19.9,19.9,0,0,0-15.4,7.3,19.6,19.6,0,0,0-4.2,16.6l9.6,48A20.1,20.1,0,0,0,125.1,232h5.8a20.1,20.1,0,0,0,19.6-16.1l9.6-48a19.6,19.6,0,0,0-4.2-16.6A19.9,19.9,0,0,0,140.5,144Zm39.7,4.3a8,8,0,0,0,14.9,5.8A70.7,70.7,0,0,0,200,128a72,72,0,0,0-144,0,70.3,70.3,0,0,0,4.9,26.1,8,8,0,0,0,7.4,5.1,7.2,7.2,0,0,0,2.9-.6,8,8,0,0,0,4.6-10.3,56,56,0,1,1,104.4,0ZM128,24A104,104,0,0,0,72,215.7a8,8,0,0,0,8.7-13.5,88,88,0,1,1,94.6,0,8,8,0,0,0,4.4,14.7,8.8,8.8,0,0,0,4.3-1.2A104,104,0,0,0,128,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M130.9,224h-5.8a16,16,0,0,1-15.7-12.9l-9.6-48A16,16,0,0,1,115.5,144h25a16,16,0,0,1,15.7,19.1l-9.6,48A16,16,0,0,1,130.9,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M68.3,151.2a64,64,0,1,1,119.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76.4,208.9a96,96,0,1,1,103.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M130.9,224h-5.8a16,16,0,0,1-15.7-12.9l-9.6-48A16,16,0,0,1,115.5,144h25a16,16,0,0,1,15.7,19.1l-9.6,48A16,16,0,0,1,130.9,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M68.3,151.2a64,64,0,1,1,119.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76.4,208.9a96,96,0,1,1,103.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_half_tilt` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_half_tilt />
  <Heroicons.circle_half_tilt class="w-4 h-4" />
  <Heroicons.circle_half_tilt solid />
  <Heroicons.circle_half_tilt mini />
  <Heroicons.circle_half_tilt outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_half_tilt(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="64" x2="192" y2="199.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="96" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="195.9" y1="60.1" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="188" y1="68" x2="188" y2="202.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="108" x2="148" y2="221.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="148" x2="108" y2="221.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,60.1A96,96,0,0,1,60.1,195.9Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM40,128A88,88,0,0,1,190.2,65.8L65.8,190.2A87.7,87.7,0,0,1,40,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="60.1" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="64" x2="192" y2="199.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="96" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="160" x2="96" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="60.1" x2="60.1" y2="195.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="64" x2="192" y2="199.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="96" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="160" x2="96" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `check_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.check_circle />
  <Heroicons.check_circle class="w-4 h-4" />
  <Heroicons.check_circle solid />
  <Heroicons.check_circle mini />
  <Heroicons.check_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def check_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm49.5,85.8-58.6,56a8.1,8.1,0,0,1-5.6,2.2,7.7,7.7,0,0,1-5.5-2.2l-29.3-28a8,8,0,1,1,11-11.6l23.8,22.7,53.2-50.7a8,8,0,0,1,11,11.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="172 104 113.3 160 84 132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `knife` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.knife />
  <Heroicons.knife class="w-4 h-4" />
  <Heroicons.knife solid />
  <Heroicons.knife mini />
  <Heroicons.knife outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def knife(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.5,90.5,200,144s-72,96-176,72L197.9,37.9a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.5,90.5,200,144s-72,96-176,72L197.9,37.9a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.5,90.5l51.4-52.6a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7Z" opacity="0.2"/><path d="M146.5,90.5,200,144s-72,96-176,72L197.9,37.9a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.8,32.2a28.1,28.1,0,0,0-39.7.1L18.3,210.4a8,8,0,0,0,3.9,13.4,154.1,154.1,0,0,0,35,4c33.4,0,66.8-10.9,98.3-32.2a232,232,0,0,0,50.9-46.8,8.1,8.1,0,0,0-.7-10.5l-18.8-18.7,45-47.9A28,28,0,0,0,231.8,32.2ZM189.2,144.5a227,227,0,0,1-43.1,38.2c-34.5,23.2-70,32.6-105.8,28.1L146.6,101.9l23.3,23.3c.1.1.2.3.4.4h.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.5,90.5,200,144s-72,96-176,72L197.9,37.9a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M146.5,90.5,200,144s-72,96-176,72L197.9,37.9a19.9,19.9,0,0,1,28.2,28.2l-50.3,53.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `coin_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.coin_vertical />
  <Heroicons.coin_vertical class="w-4 h-4" />
  <Heroicons.coin_vertical solid />
  <Heroicons.coin_vertical mini />
  <Heroicons.coin_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def coin_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="104" cy="128" rx="56" ry="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,32h48c30.9,0,56,43,56,96s-25.1,96-56,96H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="145.7" y1="64" x2="193.7" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="145.7" y1="192" x2="193.7" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="104" cy="128" rx="56" ry="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,32h48c30.9,0,56,43,56,96s-25.1,96-56,96H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="128" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="149.5" y1="184" x2="197.5" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="149.5" y1="72" x2="197.5" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="104" cy="128" rx="56" ry="96" opacity="0.2"/><ellipse cx="104" cy="128" rx="56" ry="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,32h48c30.9,0,56,43,56,96s-25.1,96-56,96H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="145.7" y1="64" x2="193.7" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="128" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="145.7" y1="192" x2="193.7" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M198.5,56.1C186.4,35.4,169.9,24,152,24H104C86.1,24,69.6,35.4,57.5,56.1S40,101,40,128s6.2,52.6,17.5,71.9S86.1,232,104,232h48c17.9,0,34.4-11.4,46.5-32.1S216,155,216,128,209.8,75.4,198.5,56.1Zm1.3,63.9h-32c-.8-17.2-4.1-33.7-9.7-48h30.6C194.8,85.4,198.9,102,199.8,120ZM179.2,56H150.5a89,89,0,0,0-12-16H152C162,40,171.4,46,179.2,56ZM152,216H138.5a89,89,0,0,0,12-16h28.7C171.4,210,162,216,152,216Zm36.7-32H158.1c5.6-14.3,8.9-30.8,9.7-48h32C198.9,154,194.8,170.6,188.7,184Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="104" cy="128" rx="56" ry="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,32h48c30.9,0,56,43,56,96s-25.1,96-56,96H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="145.7" y1="64" x2="193.7" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="128" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="145.7" y1="192" x2="193.7" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="104" cy="128" rx="56" ry="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,32h48c30.9,0,56,43,56,96s-25.1,96-56,96H104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="145.7" y1="64" x2="193.7" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="128" x2="208" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="145.7" y1="192" x2="193.7" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `backpack` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.backpack />
  <Heroicons.backpack class="w-4 h-4" />
  <Heroicons.backpack solid />
  <Heroicons.backpack mini />
  <Heroicons.backpack outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def backpack(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="144" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="168" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92,60h72a48,48,0,0,1,48,48V220a8,8,0,0,1-8,8H52a8,8,0,0,1-8-8V108A48,48,0,0,1,92,60Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M84,228V152a16,16,0,0,1,16-16h56a16,16,0,0,1,16,16v76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,60V36a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="108" y1="100" x2="148" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="172" x2="172" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="140" y1="172" x2="140" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,48H96A48,48,0,0,0,48,96V216a8,8,0,0,0,8,8H80V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72h24a8,8,0,0,0,8-8V96A48,48,0,0,0,160,48Z" opacity="0.2"/><path d="M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="88" x2="144" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="168" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,40.6V32A24.1,24.1,0,0,0,144,8H112A24.1,24.1,0,0,0,88,32v8.6A56,56,0,0,0,40,96V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V96A56,56,0,0,0,168,40.6ZM104,32a8,8,0,0,1,8-8h32a8,8,0,0,1,8,8v8H104Zm8,40h32a8,8,0,0,1,0,16H112a8,8,0,0,1,0-16Zm64,144H80V176h56v8a8,8,0,0,0,16,0v-8h24Zm0-56H80v-8a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="88" x2="144" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="168" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,48h64a48,48,0,0,1,48,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V96A48,48,0,0,1,96,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,224V152a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,48V32a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="88" x2="144" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="168" x2="176" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="168" x2="144" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `coat_hanger` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.coat_hanger />
  <Heroicons.coat_hanger class="w-4 h-4" />
  <Heroicons.coat_hanger solid />
  <Heroicons.coat_hanger mini />
  <Heroicons.coat_hanger outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def coat_hanger(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,72a32,32,0,0,1,64,0L19.2,177.6A8,8,0,0,0,24,192H232a8,8,0,0,0,4.8-14.4L128,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,72a32,32,0,0,1,64,0L19.2,177.6A8,8,0,0,0,24,192H232a8,8,0,0,0,4.8-14.4L128,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,72a32,32,0,0,1,64,0L19.2,177.6A8,8,0,0,0,24,192H232a8,8,0,0,0,4.8-14.4L128,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M241.6,171.2,141.3,96l23.5-17.6A8.1,8.1,0,0,0,168,72a40,40,0,0,0-80,0,8,8,0,0,0,16,0,24,24,0,0,1,47.7-3.8L123.3,89.5l-.2.2L14.4,171.2A16,16,0,0,0,24,200H232a16,16,0,0,0,9.6-28.8ZM24,184l104-78,104,78H24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,72a32,32,0,0,1,64,0L19.2,177.6A8,8,0,0,0,24,192H232a8,8,0,0,0,4.8-14.4L128,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,72a32,32,0,0,1,64,0L19.2,177.6A8,8,0,0,0,24,192H232a8,8,0,0,0,4.8-14.4L128,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tree` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tree />
  <Heroicons.tree class="w-4 h-4" />
  <Heroicons.tree solid />
  <Heroicons.tree mini />
  <Heroicons.tree outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tree(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="152" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" opacity="0.2"/><line x1="128" y1="232" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="152" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,187.9h0a91.6,91.6,0,0,1-8,4.6V232a8,8,0,0,0,16,0V192.5a91.6,91.6,0,0,1-8-4.6Z"/><path d="M198.1,62.6a76,76,0,0,0-140.2,0A72.3,72.3,0,0,0,16,127.8C15.9,166.6,47.4,199,86.1,200a71.9,71.9,0,0,0,33.9-7.5V156.9L76.4,135.2a8,8,0,1,1,7.2-14.4L120,139.1V88a8,8,0,0,1,16,0v27.1l36.4-18.3a8,8,0,0,1,7.2,14.4L136,132.9v59.6a72,72,0,0,0,32,7.5h1.9c38.7-1,70.2-33.4,70.1-72.2A72.3,72.3,0,0,0,198.1,62.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="152" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="232" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="152" x2="80" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M132.5,181.2A64,64,0,1,0,194.7,69.9a8.6,8.6,0,0,1-4-4.2,68,68,0,0,0-125.4,0,8.6,8.6,0,0,1-4,4.2,64,64,0,1,0,62.2,111.3A8.2,8.2,0,0,1,132.5,181.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock />
  <Heroicons.lock class="w-4 h-4" />
  <Heroicons.lock solid />
  <Heroicons.lock mini />
  <Heroicons.lock outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="152" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="152" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="152" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H172V52a44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-80,84a12,12,0,1,1,12-12A12,12,0,0,1,128,164Zm28-84H100V52a28,28,0,0,1,56,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="152" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="152" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cursor` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cursor />
  <Heroicons.cursor class="w-4 h-4" />
  <Heroicons.cursor solid />
  <Heroicons.cursor mini />
  <Heroicons.cursor outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cursor(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136.6" y1="136.6" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136.6" y1="136.6" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" opacity="0.2"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136.6" y1="136.6" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M150.5,139.2l55.9-20.3a16,16,0,0,0,.1-30L51.3,30.7A16,16,0,0,0,30.7,51.3h0L88.9,206.5a15.9,15.9,0,0,0,15,10.4h.1a15.9,15.9,0,0,0,14.9-10.5l20.3-55.9,63.1,63.2A8.5,8.5,0,0,0,208,216a8.3,8.3,0,0,0,5.7-2.3,8.1,8.1,0,0,0,0-11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136.6" y1="136.6" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M38.2,48.5,96.4,203.7a8,8,0,0,0,15-.1l23.3-64.1a8.1,8.1,0,0,1,4.8-4.8l64.1-23.3a8,8,0,0,0,.1-15L48.5,38.2A8,8,0,0,0,38.2,48.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136.6" y1="136.6" x2="208" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `egg` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.egg />
  <Heroicons.egg class="w-4 h-4" />
  <Heroicons.egg solid />
  <Heroicons.egg mini />
  <Heroicons.egg outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def egg(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" opacity="0.2"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,152a88,88,0,0,1-176,0c0-30.8,10.7-64.5,29.3-92.4S109.5,16,128,16s40.5,16.3,58.7,43.6S216,121.2,216,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,152a80,80,0,0,1-160,0C48,88,96,24,128,24S208,88,208,152Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bookmarks_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bookmarks_simple />
  <Heroicons.bookmarks_simple class="w-4 h-4" />
  <Heroicons.bookmarks_simple solid />
  <Heroicons.bookmarks_simple mini />
  <Heroicons.bookmarks_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bookmarks_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,32H192a8,8,0,0,1,8,8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M164,228l-56-40L52,228V76a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,28H196a8,8,0,0,1,8,8V188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" opacity="0.2"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,32H192a8,8,0,0,1,8,8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,56H64A16,16,0,0,0,48,72V224a8.1,8.1,0,0,0,4.3,7.1,8.4,8.4,0,0,0,3.7.9,8.2,8.2,0,0,0,4.7-1.5L112,193.8l51.4,36.7a7.8,7.8,0,0,0,8.3.6A8.1,8.1,0,0,0,176,224V72A16,16,0,0,0,160,56Z"/><path d="M192,24H88a8,8,0,0,0,0,16H192V192a8,8,0,0,0,16,0V40A16,16,0,0,0,192,24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,32H192a8,8,0,0,1,8,8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,32H192a8,8,0,0,1,8,8V192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_circle />
  <Heroicons.user_circle class="w-4 h-4" />
  <Heroicons.user_circle solid />
  <Heroicons.user_circle mini />
  <Heroicons.user_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32A96,96,0,0,0,63.8,199.4h0A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,64.2,39.4A96,96,0,0,0,128,32Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="44"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm65.8,162.4a81.3,81.3,0,0,0-24.5-23,59.7,59.7,0,0,1-82.6,0,81.3,81.3,0,0,0-24.5,23,88,88,0,1,1,131.6,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_laminated` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_laminated />
  <Heroicons.lock_laminated class="w-4 h-4" />
  <Heroicons.lock_laminated solid />
  <Heroicons.lock_laminated mini />
  <Heroicons.lock_laminated outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_laminated(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="132" x2="216" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="172" x2="216" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H172V52a44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM100,52a28,28,0,0,1,56,0V80H100Zm84,140H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Zm0-32H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Zm0-32H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="120" x2="216" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="152" x2="216" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="184" x2="216" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_square_down_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_square_down_left />
  <Heroicons.arrow_square_down_left class="w-4 h-4" />
  <Heroicons.arrow_square_down_left solid />
  <Heroicons.arrow_square_down_left mini />
  <Heroicons.arrow_square_down_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_square_down_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 156 100 156 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 156 100 156 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="148 156 100 156 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm-46.3,73.7L119.3,148H148a8,8,0,0,1,0,16H100a8,8,0,0,1-8-8V108a8,8,0,0,1,16,0v28.7l42.3-42.4a8.1,8.1,0,0,1,11.4,11.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="148 156 100 156 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" transform="translate(0 256) rotate(-90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="148 156 100 156 100 108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="100" x2="100" y2="156" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_down />
  <Heroicons.arrow_circle_down class="w-4 h-4" />
  <Heroicons.arrow_circle_down solid />
  <Heroicons.arrow_circle_down mini />
  <Heroicons.arrow_circle_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm39.6,115.7-33.9,34a8.2,8.2,0,0,1-11.4,0l-33.9-34a8,8,0,0,1,11.3-11.3L120,148.7V88a8,8,0,0,1,16,0v60.7l20.3-20.3a8,8,0,0,1,11.3,11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="94.1 134.1 128 168 161.9 134.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trash_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trash_simple />
  <Heroicons.trash_simple class="w-4 h-4" />
  <Heroicons.trash_simple solid />
  <Heroicons.trash_simple mini />
  <Heroicons.trash_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trash_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="24" x2="168" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="60" x2="40" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="20" x2="168" y2="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,60V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56Z" opacity="0.2"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="24" x2="168" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,56a8,8,0,0,1-8,8h-8V208a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V64H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,56ZM88,32h80a8,8,0,0,0,0-16H88a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="24" x2="168" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="56" x2="40" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="24" x2="168" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `list` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.list />
  <Heroicons.list class="w-4 h-4" />
  <Heroicons.list solid />
  <Heroicons.list mini />
  <Heroicons.list outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def list(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="64" x2="216" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="64" x2="216" y2="64" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="216" y2="192" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,120H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/><path d="M40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Z"/><path d="M216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="128" x2="216" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="216" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_down_right />
  <Heroicons.arrow_down_right class="w-4 h-4" />
  <Heroicons.arrow_down_right solid />
  <Heroicons.arrow_down_right mini />
  <Heroicons.arrow_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 192 192 192 192 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="88 192 192 192 192 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 192 192 192 192 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,88V192a8,8,0,0,1-8,8H88a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8L128.7,140,58.3,69.7A8.1,8.1,0,0,1,69.7,58.3L140,128.7l46.3-46.4a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,200,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="88 192 192 192 192 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="88 192 192 192 192 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `ghost` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.ghost />
  <Heroicons.ghost class="w-4 h-4" />
  <Heroicons.ghost solid />
  <Heroicons.ghost mini />
  <Heroicons.ghost outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def ghost(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="100" cy="116" r="12"/><circle cx="156" cy="116" r="12"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="100" cy="116" r="16"/><circle cx="156" cy="116" r="16"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" opacity="0.2"/><circle cx="100" cy="116" r="12"/><circle cx="156" cy="116" r="12"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a96.2,96.2,0,0,0-96,96v96a8.1,8.1,0,0,0,13.1,6.2l24.2-19.9,24.3,19.9a8,8,0,0,0,10.1,0L128,202.3l24.3,19.9a8,8,0,0,0,10.1,0l24.3-19.9,24.2,19.9a7.9,7.9,0,0,0,8.5,1A7.9,7.9,0,0,0,224,216V120A96.2,96.2,0,0,0,128,24ZM100,128a12,12,0,1,1,12-12A12,12,0,0,1,100,128Zm56,0a12,12,0,1,1,12-12A12,12,0,0,1,156,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="100" cy="116" r="10"/><circle cx="156" cy="116" r="10"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="100" cy="116" r="8"/><circle cx="156" cy="116" r="8"/><path d="M216,216l-29.3-24-29.4,24L128,192,98.7,216,69.3,192,40,216V120a88,88,0,0,1,176,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wave_square` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wave_square />
  <Heroicons.wave_square class="w-4 h-4" />
  <Heroicons.wave_square solid />
  <Heroicons.wave_square mini />
  <Heroicons.wave_square outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wave_square(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 128 232 184 128 184 128 72 24 72 24 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 128 232 184 128 184 128 72 24 72 24 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="232 128 232 184 128 184 128 72 24 72 24 128 232 128" opacity="0.2"/><polyline points="232 128 232 184 128 184 128 72 24 72 24 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,192H128a8,8,0,0,1-8-8V80H32v48a8,8,0,0,1-16,0V72a8,8,0,0,1,8-8H128a8,8,0,0,1,8,8V176h88V128a8,8,0,0,1,16,0v56A8,8,0,0,1,232,192Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 128 232 184 128 184 128 72 24 72 24 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 128 232 184 128 184 128 72 24 72 24 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `magic_wand` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.magic_wand />
  <Heroicons.magic_wand class="w-4 h-4" />
  <Heroicons.magic_wand solid />
  <Heroicons.magic_wand mini />
  <Heroicons.magic_wand outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def magic_wand(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="152" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="40" x2="84" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="60" x2="104" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="184" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="200" x2="184" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="14.9" y="105.4" width="226.3" height="45.25" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="80" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="220" y1="128" x2="220" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="196" y1="152" x2="244" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="36" x2="80" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="60" y1="56" x2="100" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="188" x2="164" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148" y1="204" x2="180" y2="204" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="14.9" y="105.4" width="226.3" height="45.25" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="80" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M69.7,218.3a8,8,0,0,1-11.4,0L37.7,197.7a8,8,0,0,1,0-11.4L144,80l32,32Z" opacity="0.2"/><line x1="216" y1="128" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="152" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="84" y1="40" x2="84" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="60" x2="104" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="184" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="200" x2="184" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="14.9" y="105.4" width="226.3" height="45.25" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="80" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,152a8,8,0,0,1-8,8H224v16a8,8,0,0,1-16,0V160H192a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,248,152ZM64,68H76V80a8,8,0,0,0,16,0V68h12a8,8,0,0,0,0-16H92V40a8,8,0,0,0-16,0V52H64a8,8,0,0,0,0,16ZM184,192h-8v-8a8,8,0,0,0-16,0v8h-8a8,8,0,0,0,0,16h8v8a8,8,0,0,0,16,0v-8h8a8,8,0,0,0,0-16Zm-2.3-74.3L75.3,224a15.9,15.9,0,0,1-22.6,0L32,203.3a15.9,15.9,0,0,1,0-22.6L180.7,32a16.1,16.1,0,0,1,22.6,0L224,52.7a15.9,15.9,0,0,1,0,22.6l-42.3,42.4ZM155.3,80,176,100.7,212.7,64h0L192,43.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="152" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="84" y1="40" x2="84" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="60" x2="104" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="184" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="200" x2="184" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="14.9" y="105.4" width="226.3" height="45.25" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="80" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="128" x2="216" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="152" x2="240" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="84" y1="40" x2="84" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="60" x2="104" y2="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="184" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="200" x2="184" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="14.9" y="105.4" width="226.3" height="45.25" rx="8" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="80" x2="176" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `asterisk` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.asterisk />
  <Heroicons.asterisk class="w-4 h-4" />
  <Heroicons.asterisk solid />
  <Heroicons.asterisk mini />
  <Heroicons.asterisk outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def asterisk(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.8" y1="84" x2="204.2" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.8" y1="172" x2="204.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="51.8" y1="84" x2="204.2" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="51.8" y1="172" x2="204.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.8" y1="84" x2="204.2" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="51.8" y1="172" x2="204.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.2,165.1,144,128l64.2-37.1a8,8,0,1,0-8-13.8l-64.2,37V40a8,8,0,0,0-16,0v74.1l-64.2-37a8,8,0,0,0-8,13.8L112,128,47.8,165.1A8,8,0,0,0,44.9,176a7.7,7.7,0,0,0,6.9,4,7.3,7.3,0,0,0,4-1.1l64.2-37V216a8,8,0,0,0,16,0V141.9l64.2,37a7.3,7.3,0,0,0,4,1.1,7.7,7.7,0,0,0,6.9-4A8,8,0,0,0,208.2,165.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="51.8" y1="84" x2="204.2" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="51.8" y1="172" x2="204.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="51.8" y1="84" x2="204.2" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="51.8" y1="172" x2="204.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `wifi_x` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.wifi_x />
  <Heroicons.wifi_x class="w-4 h-4" />
  <Heroicons.wifi_x solid />
  <Heroicons.wifi_x mini />
  <Heroicons.wifi_x outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def wifi_x(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="56" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="104" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M25.1,98.2A145.6,145.6,0,0,1,128,56a141.7,141.7,0,0,1,16,.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59,132.1A97.8,97.8,0,0,1,128,104a93.4,93.4,0,0,1,16,1.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="200" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="56" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="104" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M25.1,98.2A145.6,145.6,0,0,1,128,56l8,.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59,132.1A97.8,97.8,0,0,1,128,104c2.7,0,5.4.1,8,.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="200" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M20.2,75.9C83.7,28,172.3,28,235.8,75.9A8,8,0,0,1,237,87.5L134,208.9a7.9,7.9,0,0,1-12.1-.1L19,87.6A8.1,8.1,0,0,1,20.2,75.9Z" opacity="0.2"/><line x1="224" y1="56" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="104" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M202.7,127.9l-68.7,81a7.9,7.9,0,0,1-12.1-.1L19,87.6a8.1,8.1,0,0,1,1.2-11.7A178.9,178.9,0,0,1,147.7,41.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M229.4,98.1a8.2,8.2,0,0,1,.6,11.1,7.8,7.8,0,0,1-6,2.8,8.3,8.3,0,0,1-5.7-2.3L200,91.3l-18.3,18.4A8.5,8.5,0,0,1,176,112a8,8,0,0,1-6.1-2.8,8.3,8.3,0,0,1,.6-11.1L188.7,80,170.6,61.9a8.3,8.3,0,0,1-.4-11.4,8.1,8.1,0,0,1,11.5-.2L200,68.7l18.3-18.4a8.1,8.1,0,0,1,11.5.2,8.3,8.3,0,0,1-.4,11.4L211.3,80Zm-26.6,18.7a3.9,3.9,0,0,0-5.6,0l-3.9,3.8a24,24,0,0,1-34.3.4,24.2,24.2,0,0,1,0-34l7.1-7-6.7-6.6c-9-9-9.9-23.6-1.5-33.2a11.4,11.4,0,0,1,1.1-1.1,2.9,2.9,0,0,0-1.5-4.8A187.4,187.4,0,0,0,15.4,69.6,15.6,15.6,0,0,0,9.2,80.5a16.6,16.6,0,0,0,3.7,12.3l103,121.3a15.9,15.9,0,0,0,24.2,0l71.5-84.2a4,4,0,0,0-.9-5.9,26.9,26.9,0,0,1-3.7-3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="56" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="104" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M25.1,98.2A145.6,145.6,0,0,1,128,56a141.7,141.7,0,0,1,16,.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59,132.1A97.8,97.8,0,0,1,128,104a93.4,93.4,0,0,1,16,1.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="200" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.9,166.1a50.7,50.7,0,0,1,70.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="56" x2="176" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="104" x2="176" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M25.1,98.2A145.6,145.6,0,0,1,128,56a141.7,141.7,0,0,1,16,.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59,132.1A97.8,97.8,0,0,1,128,104a93.4,93.4,0,0,1,16,1.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="200" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paper_plane` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paper_plane />
  <Heroicons.paper_plane class="w-4 h-4" />
  <Heroicons.paper_plane solid />
  <Heroicons.paper_plane mini />
  <Heroicons.paper_plane outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paper_plane(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="127.9" y1="184" x2="127.9" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="127.9" y1="184" x2="127.9" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" opacity="0.2"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="127.9" y1="184" x2="127.9" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.4,201.5,141.8,32.6a16,16,0,0,0-27.9,0L19.3,201.5a15.7,15.7,0,0,0,1.8,18.1,15.9,15.9,0,0,0,17.6,4.8l78.5-28.1a4.1,4.1,0,0,0,2.7-3.8V120.3a8.2,8.2,0,0,1,7.4-8.3,8,8,0,0,1,8.6,8v72.5a4,4,0,0,0,2.6,3.8l78.6,28.1a17,17,0,0,0,5.4.9,16,16,0,0,0,13.9-23.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="127.9" y1="184" x2="127.9" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120.9,36.5,26.3,205.4A8,8,0,0,0,36,216.8L125.2,185a7.2,7.2,0,0,1,5.4,0l89.2,31.8a8,8,0,0,0,9.7-11.4L134.9,36.5A8,8,0,0,0,120.9,36.5Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="127.9" y1="184" x2="127.9" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_circle_six` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_circle_six />
  <Heroicons.number_circle_six class="w-4 h-4" />
  <Heroicons.number_circle_six solid />
  <Heroicons.number_circle_six mini />
  <Heroicons.number_circle_six outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_circle_six(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="103.8" y1="130" x2="136" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="144" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="103.8" y1="130" x2="136" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="144" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><line x1="103.8" y1="130" x2="136" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="144" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M148,144a20,20,0,1,1-20-20A20.1,20.1,0,0,1,148,144Zm84-16A104,104,0,1,1,128,24,104.2,104.2,0,0,1,232,128Zm-68,16a36,36,0,0,0-36-36h-1.8l16.7-27.9a8,8,0,1,0-13.8-8.2l-32.2,54-.3.6A36,36,0,1,0,164,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="103.8" y1="130" x2="136" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="144" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="103.8" y1="130" x2="136" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="144" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `parachute` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.parachute />
  <Heroicons.parachute class="w-4 h-4" />
  <Heroicons.parachute solid />
  <Heroicons.parachute mini />
  <Heroicons.parachute outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def parachute(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120a96,96,0,0,0-192,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 120 128 192 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="144" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,192,88,120c0-72,40-96,40-96s40,24,40,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120a96,96,0,0,0-192,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="224 120 128 192 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="120" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="224" x2="144" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,120c0-72,40-96,40-96s40,24,40,96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24a96,96,0,0,0-96,96H88C88,48,128,24,128,24Z" opacity="0.2"/><path d="M128,24s40,24,40,96h56A96,96,0,0,0,128,24Z" opacity="0.2"/><path d="M224,120a96,96,0,0,0-192,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="224 120 128 192 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="144" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,192,88,120c0-72,40-96,40-96s40,24,40,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,120A104.2,104.2,0,0,0,128,16h0A104.2,104.2,0,0,0,24,120a8.2,8.2,0,0,0,3.2,6.4h0L120,196v20h-8a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16h-8V196l92.8-69.6h0A8.2,8.2,0,0,0,232,120Zm-16.4-8H175.8c-1.5-37.9-13.9-62.4-25.1-77A88.1,88.1,0,0,1,215.6,112Zm-61.2,16L128,175.5,101.6,128Zm-71.1,0,19.5,35.1L56,128Zm89.4,0H200l-46.8,35.1ZM105.3,35C94.1,49.6,81.7,74.1,80.2,112H40.4A88.1,88.1,0,0,1,105.3,35Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120a96,96,0,0,0-192,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="224 120 128 192 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="224" x2="144" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,192,88,120c0-72,40-96,40-96s40,24,40,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,120a96,96,0,0,0-192,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="224 120 128 192 32 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="224" x2="144" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,192,88,120c0-72,40-96,40-96s40,24,40,96Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flag` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flag />
  <Heroicons.flag class="w-4 h-4" />
  <Heroicons.flag solid />
  <Heroicons.flag mini />
  <Heroicons.flag outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flag(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48Z" opacity="0.2"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.6,40.8a8.2,8.2,0,0,0-8.4.8c-28.3,21.2-52.3,11-80-.9s-60.3-25.9-96,.9h-.1l-.4.3-.2.2-.3.3-.3.3-.2.3-.3.3c0,.1-.1.2-.2.3l-.2.4c0,.1-.1.2-.1.3a.8.8,0,0,0-.2.4c-.1.1-.1.2-.2.4s-.1.2-.1.3-.1.3-.1.4-.1.2-.1.3-.1.3-.1.4V47c0,.1-.1.3-.1.4V216a8,8,0,0,0,16,0V172.1c26.9-18.1,50.1-8.2,76.8,3.3,16.3,6.9,33.8,14.4,52.6,14.4,13.8,0,28.3-4,43.4-15.4A8.1,8.1,0,0,0,224,168V48A8.2,8.2,0,0,0,219.6,40.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="216" x2="40" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M40,168c64-48,112,48,176,0V48C152,96,104,0,40,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `copy_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.copy_simple />
  <Heroicons.copy_simple class="w-4 h-4" />
  <Heroicons.copy_simple solid />
  <Heroicons.copy_simple mini />
  <Heroicons.copy_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def copy_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 184 216 40 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="72" width="144" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="220 176 220 36 80 36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="76" width="140" height="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="72" width="144" height="144" opacity="0.2"/><polyline points="216 184 216 40 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="72" width="144" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,32H72a8,8,0,0,0,0,16H208V184a8,8,0,0,0,16,0V40A8,8,0,0,0,216,32Z"/><rect x="32" y="64" width="160" height="160" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 184 216 40 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="72" width="144" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="216 184 216 40 72 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="72" width="144" height="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_focus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_focus />
  <Heroicons.user_focus class="w-4 h-4" />
  <Heroicons.user_focus solid />
  <Heroicons.user_focus mini />
  <Heroicons.user_focus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_focus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,40h28a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,216h28a8,8,0,0,0,8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,216H48a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,40H48a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.9,176a60.1,60.1,0,0,1,106.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,40h28a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,216h28a8,8,0,0,0,8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,216H48a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M76,40H48a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,168a60,60,0,0,1,96,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="112" r="32" opacity="0.2"/><path d="M180,40h28a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M180,216h28a8,8,0,0,0,8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,216H48a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M76,40H48a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.9,176a60.1,60.1,0,0,1,106.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48V76a8,8,0,0,1-16,0V48H180a8,8,0,0,1,0-16h28A16,16,0,0,1,224,48Zm-8,124a8,8,0,0,0-8,8v28H180a8,8,0,0,0,0,16h28a16,16,0,0,0,16-16V180A8,8,0,0,0,216,172ZM76,208H48V180a8,8,0,0,0-16,0v28a16,16,0,0,0,16,16H76a8,8,0,0,0,0-16ZM40,84a8,8,0,0,0,8-8V48H76a8,8,0,0,0,0-16H48A16,16,0,0,0,32,48V76A8,8,0,0,0,40,84Zm61.1,57.5a69.1,69.1,0,0,0-33.3,30.8,7.8,7.8,0,0,0,.3,7.8,7.9,7.9,0,0,0,6.8,3.9H181.1a7.9,7.9,0,0,0,6.8-3.9,7.8,7.8,0,0,0,.3-7.8,69.1,69.1,0,0,0-33.3-30.8A39.5,39.5,0,0,0,168,112a40,40,0,0,0-80,0A39.5,39.5,0,0,0,101.1,141.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,40h28a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M180,216h28a8,8,0,0,0,8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,216H48a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M76,40H48a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M74.9,176a60.1,60.1,0,0,1,106.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,40h28a8,8,0,0,1,8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M180,216h28a8,8,0,0,0,8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,216H48a8,8,0,0,1-8-8V180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M76,40H48a8,8,0,0,0-8,8V76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="112" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M74.9,176a60.1,60.1,0,0,1,106.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `floppy_disk` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.floppy_disk />
  <Heroicons.floppy_disk class="w-4 h-4" />
  <Heroicons.floppy_disk solid />
  <Heroicons.floppy_disk mini />
  <Heroicons.floppy_disk outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def floppy_disk(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,91.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H164.7a7.9,7.9,0,0,1,5.6,2.3l43.4,43.4A7.9,7.9,0,0,1,216,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,91.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H164.7a7.9,7.9,0,0,1,5.6,2.3l43.4,43.4A7.9,7.9,0,0,1,216,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="152" y1="80" x2="96" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64h32a8,8,0,0,0,8-8V91.3a7.9,7.9,0,0,0-2.3-5.6L170.3,42.3a7.9,7.9,0,0,0-5.6-2.3H48a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8Z" opacity="0.2"/><path d="M216,91.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H164.7a7.9,7.9,0,0,1,5.6,2.3l43.4,43.4A7.9,7.9,0,0,1,216,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M219.3,80,176,36.7A15.9,15.9,0,0,0,164.7,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V91.3A15.9,15.9,0,0,0,219.3,80ZM208,91.3V208H184V152a16,16,0,0,0-16-16H88a16,16,0,0,0-16,16v56H48V48H164.7L208,91.3ZM160,72a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h56A8,8,0,0,1,160,72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,91.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H164.7a7.9,7.9,0,0,1,5.6,2.3l43.4,43.4A7.9,7.9,0,0,1,216,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,91.3V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H164.7a7.9,7.9,0,0,1,5.6,2.3l43.4,43.4A7.9,7.9,0,0,1,216,91.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `key_return` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.key_return />
  <Heroicons.key_return class="w-4 h-4" />
  <Heroicons.key_return solid />
  <Heroicons.key_return mini />
  <Heroicons.key_return outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def key_return(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 176 136 80 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 112 80 136 104 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 176 136 80 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 112 80 136 104 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><polyline points="176 104 176 136 80 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 112 80 136 104 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-32,96a8,8,0,0,1-8,8H99.3l10.4,10.3a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0l-24-24a8.1,8.1,0,0,1,0-11.4l24-24a8.1,8.1,0,0,1,11.4,11.4L99.3,128H168V104a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 176 136 80 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 112 80 136 104 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 104 176 136 80 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 112 80 136 104 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_simple_star` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_simple_star />
  <Heroicons.folder_simple_star class="w-4 h-4" />
  <Heroicons.folder_simple_star solid />
  <Heroicons.folder_simple_star mini />
  <Heroicons.folder_simple_star outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_simple_star(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M112,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" opacity="0.2"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,64V200h80a8,8,0,0,1,0,16H40a16,16,0,0,1-16-16V64A16,16,0,0,1,40,48H93.3a15.6,15.6,0,0,1,9.6,3.2L130.7,72H216a16,16,0,0,1,16,16v32a8,8,0,0,1-16,0V88H130.7a15.6,15.6,0,0,1-9.6-3.2L93.3,64Zm203.6,95.2a8.1,8.1,0,0,0-7-5.6l-29.8-2.3-11.5-26.5a8,8,0,0,0-14.6,0l-11.5,26.5-29.8,2.3a8.1,8.1,0,0,0-4.5,14.2l22.5,18.6-6.8,27.7a7.9,7.9,0,0,0,3,8.3,8,8,0,0,0,8.8.5L188,207.8l25.6,15.1a8.7,8.7,0,0,0,4.1,1.1,7.4,7.4,0,0,0,4.7-1.6,7.9,7.9,0,0,0,3-8.3l-6.8-27.7,22.5-18.6A8,8,0,0,0,243.6,159.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,208H40a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6l27.8,20.8a8.1,8.1,0,0,0,4.8,1.6H216a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="188 198.5 217.7 216 209.6 183.4 236 161.6 201.3 158.9 188 128 174.7 158.9 140 161.6 166.4 183.4 158.3 216 188 198.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lightbulb` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lightbulb />
  <Heroicons.lightbulb class="w-4 h-4" />
  <Heroicons.lightbulb solid />
  <Heroicons.lightbulb mini />
  <Heroicons.lightbulb outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lightbulb(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,56.8a47.9,47.9,0,0,1,39.2,39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,168a79.8,79.8,0,0,1-32-63.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,49.7,144.1A20,20,0,0,0,168,184h0a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-.2A19.6,19.6,0,0,0,80,168Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M163.1,96A35.8,35.8,0,0,0,136,68.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" opacity="0.2"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M136.1,56.8a47.9,47.9,0,0,1,39.2,39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,232a8,8,0,0,1-8,8H88a8,8,0,0,1,0-16h80A8,8,0,0,1,176,232Zm40-128a87.7,87.7,0,0,1-33.6,69.2A16.1,16.1,0,0,0,176,186v6a16,16,0,0,1-16,16H96a16,16,0,0,1-16-16v-6a16.2,16.2,0,0,0-6.2-12.7A87.8,87.8,0,0,1,40,104.5C39.7,56.8,78.3,17.1,125.9,16A87.9,87.9,0,0,1,216,104Zm-32.8-9.4a55.8,55.8,0,0,0-45.8-45.7,8,8,0,1,0-2.6,15.8,39.7,39.7,0,0,1,32.6,32.6,8,8,0,0,0,7.9,6.6h1.4A7.9,7.9,0,0,0,183.2,94.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M136.1,56.8a47.9,47.9,0,0,1,39.2,39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="232" x2="168" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M78.7,167A79.5,79.5,0,0,1,48,104.5C47.8,61.1,82.7,25,126.1,24a80,80,0,0,1,51.3,142.9A24.2,24.2,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6A24.4,24.4,0,0,0,78.7,167Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M136.1,56.8a47.9,47.9,0,0,1,39.2,39.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_right />
  <Heroicons.caret_right class="w-4 h-4" />
  <Heroicons.caret_right solid />
  <Heroicons.caret_right mini />
  <Heroicons.caret_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 48 176 128 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 48 176 128 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 48 176 128 96 208 96 48" opacity="0.2"/><polygon points="96 48 176 128 96 208 96 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M181.7,122.3l-80-80a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,88,48V208a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l80-80A8.1,8.1,0,0,0,181.7,122.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 48 176 128 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 48 176 128 96 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `youtube_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.youtube_logo />
  <Heroicons.youtube_logo class="w-4 h-4" />
  <Heroicons.youtube_logo solid />
  <Heroicons.youtube_logo mini />
  <Heroicons.youtube_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def youtube_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,128c0,29.8,3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2s-3.1-47.2-5.4-56.2A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="164 128 108 92 108 164 164 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,128c0,29.8,3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2s-3.1-47.2-5.4-56.2A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M226.6,71.8A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128s3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2S228.9,80.8,226.6,71.8ZM112,160V96l48,32Z" opacity="0.2"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,128c0,29.8,3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2s-3.1-47.2-5.4-56.2A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M234.3,69.8a23.5,23.5,0,0,0-14.5-16.3C185.6,40.3,131,40.4,128,40.4s-57.6-.1-91.8,13.1A23.5,23.5,0,0,0,21.7,69.8C19.1,79.7,16,97.9,16,128s3.1,48.3,5.7,58.2a23.5,23.5,0,0,0,14.5,16.3c32.8,12.7,84.2,13.1,91.1,13.1h1.4c6.9,0,58.3-.4,91.1-13.1a23.5,23.5,0,0,0,14.5-16.3c2.6-9.9,5.7-28.1,5.7-58.2S236.9,79.7,234.3,69.8Zm-72.1,61.5-48,32a3.6,3.6,0,0,1-2.2.7,4.5,4.5,0,0,1-1.9-.5A3.9,3.9,0,0,1,108,160V96a3.9,3.9,0,0,1,2.1-3.5,4,4,0,0,1,4.1.2l48,32a3.9,3.9,0,0,1,0,6.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,128c0,29.8,3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2s-3.1-47.2-5.4-56.2A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="160 128 112 96 112 160 160 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,128c0,29.8,3.1,47.2,5.4,56.2A16.1,16.1,0,0,0,39,195.1c33.5,12.8,89,12.5,89,12.5s55.5.3,89-12.5a16.1,16.1,0,0,0,9.6-10.9c2.3-9,5.4-26.4,5.4-56.2s-3.1-47.2-5.4-56.2A16.1,16.1,0,0,0,217,60.9c-33.5-12.8-89-12.5-89-12.5s-55.5-.3-89,12.5a16.1,16.1,0,0,0-9.6,10.9C27.1,80.8,24,98.2,24,128Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_simple_z` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_simple_z />
  <Heroicons.bell_simple_z class="w-4 h-4" />
  <Heroicons.bell_simple_z solid />
  <Heroicons.bell_simple_z mini />
  <Heroicons.bell_simple_z outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_simple_z(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="228" x2="160" y2="228" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V108c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" opacity="0.2"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Zm52.9-32a15.9,15.9,0,0,1-13.9,8H49a15.9,15.9,0,0,1-13.9-8,16.2,16.2,0,0,1,.1-16.1c5.9-10.2,13-29.6,13-63.9v-8A79.9,79.9,0,0,1,128,24h.6c43.7.3,79.2,36.6,79.2,80.9V112c0,34.3,7.1,53.7,13,63.9A16.2,16.2,0,0,1,220.9,192ZM156,144a8,8,0,0,0-8-8H125.1l29-34.9a7.8,7.8,0,0,0,1.1-8.5A7.9,7.9,0,0,0,148,88H108a8,8,0,0,0,0,16h22.9l-29,34.9a7.8,7.8,0,0,0-1.1,8.5A7.9,7.9,0,0,0,108,152h40A8,8,0,0,0,156,144Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="224" x2="160" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `marker_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.marker_circle />
  <Heroicons.marker_circle class="w-4 h-4" />
  <Heroicons.marker_circle solid />
  <Heroicons.marker_circle mini />
  <Heroicons.marker_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def marker_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,211.2V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,168V144a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.8,136l-12-57.6c-1.7-8.5-13.9-8.5-15.6,0l-12,57.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,211.2V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,168V136a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M147.8,128,135.7,84.4a8,8,0,0,0-15.4,0L108.2,128Z" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,211.2a96,96,0,1,0-96,0h0V176a8,8,0,0,1,8-8h8V144a8,8,0,0,1,8-8h4.2l12-57.6c1.7-8.5,13.9-8.5,15.6,0l12,57.6H152a8,8,0,0,1,8,8v24h8a8,8,0,0,1,8,8v35.2Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,211.2V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,168V144a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.8,136l-12-57.6c-1.7-8.5-13.9-8.5-15.6,0l-12,57.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a103.8,103.8,0,0,0-147,0,103.8,103.8,0,0,0,0,147,103.8,103.8,0,0,0,147,0,103.8,103.8,0,0,0,0-147ZM88,206.4V176h80v30.4A88.8,88.8,0,0,1,88,206.4ZM104,136h48v24H104Zm86.2,54.2c-2,2-4.1,3.9-6.2,5.7V176a16,16,0,0,0-16-16V136a16,16,0,0,0-13.7-15.8L143.6,73.3a16,16,0,0,0-31.2,0l-10.7,46.9A16,16,0,0,0,88,136v24a16,16,0,0,0-16,16v19.9c-2.1-1.8-4.2-3.7-6.2-5.7a88,88,0,1,1,124.4,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,211.2V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,168V144a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M147.8,136l-12-57.6c-1.7-8.5-13.9-8.5-15.6,0l-12,57.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,211.2V176a8,8,0,0,0-8-8H88a8,8,0,0,0-8,8v35.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,168V144a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8v24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M147.8,136l-12-57.6c-1.7-8.5-13.9-8.5-15.6,0l-12,57.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shield_plus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shield_plus />
  <Heroicons.shield_plus class="w-4 h-4" />
  <Heroicons.shield_plus solid />
  <Heroicons.shield_plus mini />
  <Heroicons.shield_plus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shield_plus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="96" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" opacity="0.2"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="96" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a16,16,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40Zm-48,96H136v24a8,8,0,0,1-16,0V136H96a8,8,0,0,1,0-16h24V96a8,8,0,0,1,16,0v24h24a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="96" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="96" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `playlist` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.playlist />
  <Heroicons.playlist class="w-4 h-4" />
  <Heroicons.playlist solid />
  <Heroicons.playlist mini />
  <Heroicons.playlist outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def playlist(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 192 200 112 240 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="192" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="176" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="200 192 200 112 240 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="176" cy="192" r="24" opacity="0.2"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="176" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 192 200 112 240 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H40A8,8,0,0,1,32,64Zm8,72H160a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Zm72,48H40a8,8,0,0,0,0,16h72a8,8,0,0,0,0-16Zm130.3-67.7-40-12a8.2,8.2,0,0,0-7.1,1.3A8.1,8.1,0,0,0,192,112v52.3A32,32,0,1,0,208,192V122.8l29.7,8.9a8,8,0,1,0,4.6-15.4Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="192" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="176" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="200 192 200 112 240 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="40" y1="64" x2="216" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="192" x2="112" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="176" cy="192" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="200 192 200 112 240 124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `scribble_loop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.scribble_loop />
  <Heroicons.scribble_loop class="w-4 h-4" />
  <Heroicons.scribble_loop solid />
  <Heroicons.scribble_loop mini />
  <Heroicons.scribble_loop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def scribble_loop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,92.8S56,48,104,48c104,0,96,160,0,160-64,0-64-96,32-96,64,0,104,48,104,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,92.8S56,48,104,48c104,0,96,160,0,160-64,0-64-96,32-96,64,0,104,48,104,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,92.8S56,48,104,48c104,0,96,160,0,160-64,0-64-96,32-96,64,0,104,48,104,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M246.1,154.9c-1.2-1.5-22.9-27.1-59.8-41.4-2.1-17.8-8.9-34-19.6-46.6C151.7,49.3,130,40,104,40,52.5,40,18.9,86.2,17.5,88.1a8,8,0,0,0,13,9.4C30.8,97,60.8,56,104,56c21.2,0,38.6,7.4,50.5,21.3a68,68,0,0,1,14.7,30.8A134.2,134.2,0,0,0,136,104c-26.1,0-47.9,6.8-63.3,19.7C59.2,135.1,51.4,151,51.4,167.2a47.4,47.4,0,0,0,13.9,34.1c9.6,9.6,23,14.7,38.7,14.7,25.2,0,46.7-10,62.1-28.8,12.2-15,19.6-35.1,20.8-56a146.3,146.3,0,0,1,47,33.9,8,8,0,1,0,12.2-10.2ZM104,200c-25.3,0-36.6-16.4-36.6-32.8,0-22.7,21.5-47.2,68.6-47.2a117.3,117.3,0,0,1,35,5.3v.3C171,162.6,148,200,104,200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,92.8S56,48,104,48c104,0,96,160,0,160-64,0-64-96,32-96,64,0,104,48,104,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,92.8S56,48,104,48c104,0,96,160,0,160-64,0-64-96,32-96,64,0,104,48,104,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplane_takeoff` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplane_takeoff />
  <Heroicons.airplane_takeoff class="w-4 h-4" />
  <Heroicons.airplane_takeoff solid />
  <Heroicons.airplane_takeoff mini />
  <Heroicons.airplane_takeoff outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplane_takeoff(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" opacity="0.2"/><line x1="24" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,216a8,8,0,0,1-8,8H24a8,8,0,0,1,0-16H168A8,8,0,0,1,176,216ZM247.1,89.5,228.5,66.7a35.9,35.9,0,0,0-46.2-8.2L139.5,83.6,81.3,64.2a4.1,4.1,0,0,0-2.9.1L61.9,71.4a12,12,0,0,0-3.3,19.9l26.6,24L63.7,127.5,37.6,116.3a4.4,4.4,0,0,0-3.2,0l-16.7,7.2a12,12,0,0,0-3.5,19.8h0l37.7,35.3a35.8,35.8,0,0,0,42.7,4.9L246,95.5a4,4,0,0,0,1.9-2.8A4.1,4.1,0,0,0,247.1,89.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="24" y1="216" x2="168" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M16.9,140.4l37.7,35.3a32,32,0,0,0,38,4.3L244,92,225.4,69.2a32,32,0,0,0-41-7.3L140,88,80,68,63.5,75.1a8,8,0,0,0-2.2,13.3L92,116,64,132,36,120l-16.8,7.2A8,8,0,0,0,16.9,140.4Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `compass` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.compass />
  <Heroicons.compass class="w-4 h-4" />
  <Heroicons.compass solid />
  <Heroicons.compass mini />
  <Heroicons.compass outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def compass(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="145 145 173.1 82.8 111 111 85.6 170.4 145 145" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="145 145 167.4 88.5 111 111 88.4 167.6 145 145" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32Zm17,113L85.6,170.4,111,111l62.1-28.2Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polygon points="145 145 173.1 82.8 111 111 85.6 170.4 145 145" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm52.3,62.1-28,62.2a8.2,8.2,0,0,1-4.2,4L88.7,177.8a8.5,8.5,0,0,1-3.1.6,8.1,8.1,0,0,1-5.7-2.3,8,8,0,0,1-1.7-8.8l25.5-59.4a8.2,8.2,0,0,1,4-4.2l62-28.2a8.1,8.1,0,0,1,9,1.7A7.8,7.8,0,0,1,180.3,86.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="145 145 173.1 82.8 111 111 85.6 170.4 145 145" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="145 145 173.1 82.8 111 111 85.6 170.4 145 145" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bird` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bird />
  <Heroicons.bird class="w-4 h-4" />
  <Heroicons.bird solid />
  <Heroicons.bird mini />
  <Heroicons.bird outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bird(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="68" r="12"/><line x1="120" y1="136" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,96v24a96,96,0,0,1-96,96H8L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="160" cy="72" r="16"/><path d="M208,96v24a96,96,0,0,1-96,96H12L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="90.7" y1="176" x2="121.3" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,96v24a96,96,0,0,1-96,96H8L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" opacity="0.2"/><circle cx="164" cy="68" r="12"/><line x1="120" y1="136" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,96v24a96,96,0,0,1-96,96H8L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M236.4,73.3,213.2,57.9A60,60,0,0,0,96,76V93.2L1.8,211A8,8,0,0,0,8,224H112A104.2,104.2,0,0,0,216,120V100.3l20.4-13.6a8,8,0,0,0,0-13.4ZM110.1,141.1l-40,48a8,8,0,0,1-12.2-10.2l40-48a8,8,0,1,1,12.2,10.2ZM164,80a12,12,0,1,1,12-12A12,12,0,0,1,164,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="68" r="10"/><line x1="120" y1="136" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,96v24a96,96,0,0,1-96,96H8L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="164" cy="68" r="8"/><line x1="120" y1="136" x2="80" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,96v24a96,96,0,0,1-96,96H8L104,96V76A52,52,0,0,1,206.3,62.9L232,80Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_simple />
  <Heroicons.lock_simple class="w-4 h-4" />
  <Heroicons.lock_simple solid />
  <Heroicons.lock_simple mini />
  <Heroicons.lock_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H172V52a44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM100,52a28,28,0,0,1,56,0V80H100Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_inr` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_inr />
  <Heroicons.currency_inr class="w-4 h-4" />
  <Heroicons.currency_inr solid />
  <Heroicons.currency_inr mini />
  <Heroicons.currency_inr outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_inr(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="80" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="40" x2="200" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M108,40a52,52,0,0,1,0,104H72l88,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="80" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="72" y1="40" x2="200" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M108,40a52,52,0,0,1,0,104H72l88,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="80" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="40" x2="200" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M108,40a52,52,0,0,1,0,104H72l88,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80a8,8,0,0,1-8,8H167.9c0,1.3.1,2.7.1,4a60,60,0,0,1-60,60H92.7l72.7,66.1a7.9,7.9,0,0,1,.5,11.3A8,8,0,0,1,160,232a8.2,8.2,0,0,1-5.4-2.1l-88-80A8,8,0,0,1,72,136h36a44,44,0,0,0,44-44c0-1.3-.1-2.7-.2-4H72a8,8,0,0,1,0-16h75.2A44.1,44.1,0,0,0,108,48H72a8,8,0,0,1,0-16H200a8,8,0,0,1,0,16H148.7a60.2,60.2,0,0,1,15.9,24H200A8,8,0,0,1,208,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="80" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="40" x2="200" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M108,40a52,52,0,0,1,0,104H72l88,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="72" y1="80" x2="200" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="40" x2="200" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M108,40a52,52,0,0,1,0,104H72l88,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `stop_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.stop_circle />
  <Heroicons.stop_circle class="w-4 h-4" />
  <Heroicons.stop_circle solid />
  <Heroicons.stop_circle mini />
  <Heroicons.stop_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def stop_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="108" y="108" width="40" height="40" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,1,0,96,96A96,96,0,0,0,128,32Zm24,120H104V104h48Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm32,128a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="104" y="104" width="48" height="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trend_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trend_down />
  <Heroicons.trend_down class="w-4 h-4" />
  <Heroicons.trend_down solid />
  <Heroicons.trend_down mini />
  <Heroicons.trend_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trend_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 200 136 104 96 144 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 136 232 200 168 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 200 136 104 96 144 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="232 136 232 200 168 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 200 136 104 96 144 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 136 232 200 168 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,136v64a8,8,0,0,1-8,8H168a8.1,8.1,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8L188.7,168,136,115.3l-34.3,34.4a8.1,8.1,0,0,1-11.4,0l-72-72A8.1,8.1,0,0,1,29.7,66.3L96,132.7l34.3-34.4a8.1,8.1,0,0,1,11.4,0L200,156.7l26.3-26.4a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,240,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 200 136 104 96 144 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="232 136 232 200 168 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 200 136 104 96 144 24 72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="232 136 232 200 168 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `device_mobile` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.device_mobile />
  <Heroicons.device_mobile class="w-4 h-4" />
  <Heroicons.device_mobile solid />
  <Heroicons.device_mobile mini />
  <Heroicons.device_mobile outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def device_mobile(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="24" width="128" height="208" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="24" width="128" height="208" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="64" x2="192" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="192" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="56" width="128" height="144" opacity="0.2"/><rect x="64" y="24" width="128" height="208" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="200" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,16H80A24.1,24.1,0,0,0,56,40V216a24.1,24.1,0,0,0,24,24h96a24.1,24.1,0,0,0,24-24V40A24.1,24.1,0,0,0,176,16ZM80,32h96a8,8,0,0,1,8,8v8H72V40A8,8,0,0,1,80,32Zm96,192H80a8,8,0,0,1-8-8v-8H184v8A8,8,0,0,1,176,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="24" width="128" height="208" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="64" y1="200" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="24" width="128" height="208" rx="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="56" x2="192" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="64" y1="200" x2="192" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lightning_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lightning_slash />
  <Heroicons.lightning_slash class="w-4 h-4" />
  <Heroicons.lightning_slash solid />
  <Heroicons.lightning_slash mini />
  <Heroicons.lightning_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lightning_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="163.8 167.4 96 240 112 160 48 136 92.2 88.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="114.1 65.1 160 16 144 96 208 120 185.7 143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="163.8 167.4 96 240 112 160 48 136 92.2 88.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="119.6 59.3 160 16 144 96 208 120 191.2 138" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="96 240 112 160 48 136 160 16 144 96 208 120 96 240" opacity="0.2"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="163.8 167.4 96 240 112 160 48 136 92.2 88.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="114.1 65.1 160 16 144 96 208 120 185.7 143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M53.9,34.6A8,8,0,0,0,42.1,45.4L81.3,88.5l-39.1,42a7.9,7.9,0,0,0-2,7.3,8.2,8.2,0,0,0,5,5.7l57.6,21.6L88.2,238.4a8.1,8.1,0,0,0,4.1,8.7,8.4,8.4,0,0,0,3.7.9,7.7,7.7,0,0,0,5.8-2.6l61.9-66.2,38.4,42.2A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3Z"/><path d="M179.8,149.3a8,8,0,0,0,5.8,2.6h.1a7.7,7.7,0,0,0,5.8-2.6l22.3-23.9a7.9,7.9,0,0,0-3-12.9L153.2,90.9l14.6-73.4a8,8,0,0,0-13.6-7L108.3,59.7a7.9,7.9,0,0,0-.1,10.8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="163.8 167.4 96 240 112 160 48 136 92.2 88.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="114.1 65.1 160 16 144 96 208 120 185.7 143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="163.8 167.4 96 240 112 160 48 136 92.2 88.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="114.1 65.1 160 16 144 96 208 120 185.7 143.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `exam` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.exam />
  <Heroicons.exam class="w-4 h-4" />
  <Heroicons.exam solid />
  <Heroicons.exam mini />
  <Heroicons.exam outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def exam(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 160 104 96 136 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="144" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="172" y1="108" x2="172" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="68 160 100 96 132 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="76" y1="144" x2="124" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="128" x2="188" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="112" x2="172" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" opacity="0.2"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="72 160 104 96 136 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="144" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="172" y1="108" x2="172" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M100,113.9,111.1,136H88.9ZM232,56V216a7.9,7.9,0,0,1-3.8,6.8,8,8,0,0,1-7.8.4L192,208.9l-28.4,14.3a8.5,8.5,0,0,1-7.2,0L128,208.9,99.6,223.2a8.3,8.3,0,0,1-7.2,0L64,208.9,35.6,223.2a8,8,0,0,1-7.8-.4A7.9,7.9,0,0,1,24,216V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM139.2,156.4l-32-64a8.1,8.1,0,0,0-14.4,0l-32,64a8,8,0,0,0,14.4,7.2L80.9,152h38.2l5.7,11.6A8.1,8.1,0,0,0,132,168a9.4,9.4,0,0,0,3.6-.8A8.2,8.2,0,0,0,139.2,156.4ZM204,128a8,8,0,0,0-8-8H184V108a8,8,0,0,0-16,0v12H156a8,8,0,0,0,0,16h12v12a8,8,0,0,0,16,0V136h12A8,8,0,0,0,204,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="72 160 104 96 136 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="144" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="172" y1="108" x2="172" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V216l-32-16-32,16-32-16L96,216,64,200Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="72 160 104 96 136 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="144" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="172" y1="108" x2="172" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_notch_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_notch_minus />
  <Heroicons.folder_notch_minus class="w-4 h-4" />
  <Heroicons.folder_notch_minus solid />
  <Heroicons.folder_notch_minus mini />
  <Heroicons.folder_notch_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_notch_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" opacity="0.2"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H130.7L102.9,51.2A15.6,15.6,0,0,0,93.3,48H40A16,16,0,0,0,24,64V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V88A16,16,0,0,0,216,72ZM40,96V64H93.3l21.4,16L93.3,96Zm112,60H104a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,80h88a8,8,0,0,1,8,8V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M93.3,104H32V64a8,8,0,0,1,8-8H93.3a8.1,8.1,0,0,1,4.8,1.6L128,80,98.1,102.4A8.1,8.1,0,0,1,93.3,104Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="148" x2="152" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microsoft_word_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microsoft_word_logo />
  <Heroicons.microsoft_word_logo class="w-4 h-4" />
  <Heroicons.microsoft_word_logo solid />
  <Heroicons.microsoft_word_logo mini />
  <Heroicons.microsoft_word_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microsoft_word_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 104 76 152 92 116 108 152 120 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="160" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M64,68V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="68 104 80 152 96 116 112 152 124 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="68" width="128" height="120" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="120" height="112" rx="8" opacity="0.2"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 104 76 152 92 116 108 152 120 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,24H72A16,16,0,0,0,56,40V64H40A16,16,0,0,0,24,80v96a16,16,0,0,0,16,16H56v24a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM68.2,153.9l-12-48a8,8,0,0,1,15.6-3.8l6.3,25.4,6.6-14.7a8,8,0,0,1,14.6,0l6.6,14.7,6.3-25.4a8,8,0,1,1,15.6,3.8l-12,48a8.1,8.1,0,0,1-7.1,6.1H108a7.9,7.9,0,0,1-7.3-4.8L92,135.7l-8.7,19.5a8,8,0,0,1-8,4.8A8.1,8.1,0,0,1,68.2,153.9ZM200,216H72V192h72a16,16,0,0,0,16-16v-8h40Zm0-64H160V104h40Zm0-64H160V80a16,16,0,0,0-16-16H72V40H200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 104 76 152 92 116 108 152 120 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="152" y1="96" x2="208" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="152" y1="160" x2="208" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,72V40a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8V216a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 104 76 152 92 116 108 152 120 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="72" width="120" height="112" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `table` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.table />
  <Heroicons.table class="w-4 h-4" />
  <Heroicons.table solid />
  <Heroicons.table mini />
  <Heroicons.table outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def table(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="104" x2="88" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="88" y1="104" x2="88" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="104" width="56" height="96" opacity="0.2"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="104" x2="88" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,48H32a8,8,0,0,0-8,8V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A8,8,0,0,0,224,48ZM40,112H80v32H40Zm56,0H216v32H96ZM40,160H80v32H40Zm176,32H96V160H216v32Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="104" x2="88" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,56H224a0,0,0,0,1,0,0V192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56A0,0,0,0,1,32,56Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="104" x2="224" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="152" x2="224" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="104" x2="88" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_circle_dollar` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_circle_dollar />
  <Heroicons.currency_circle_dollar class="w-4 h-4" />
  <Heroicons.currency_circle_dollar solid />
  <Heroicons.currency_circle_dollar mini />
  <Heroicons.currency_circle_dollar outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_circle_dollar(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="72" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168h36a20,20,0,0,0,0-40H116a20,20,0,0,1,0-40h36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="72" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,168h36a20,20,0,0,0,0-40H116a20,20,0,0,1,0-40h36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><line x1="128" y1="72" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168h36a20,20,0,0,0,0-40H116a20,20,0,0,1,0-40h36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm12,152h-4v8a8,8,0,0,1-16,0v-8H104a8,8,0,0,1,0-16h36a12,12,0,0,0,0-24H116a28,28,0,0,1,0-56h4V72a8,8,0,0,1,16,0v8h16a8,8,0,0,1,0,16H116a12,12,0,0,0,0,24h24a28,28,0,0,1,0,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="72" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,168h36a20,20,0,0,0,0-40H116a20,20,0,0,1,0-40h36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="72" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,168h36a20,20,0,0,0,0-40H116a20,20,0,0,1,0-40h36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `check_square_offset` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.check_square_offset />
  <Heroicons.check_square_offset class="w-4 h-4" />
  <Heroicons.check_square_offset solid />
  <Heroicons.check_square_offset mini />
  <Heroicons.check_square_offset outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def check_square_offset(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,143.3V52a8,8,0,0,1,8-8H204a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 64 216 32 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,143.3V52a8,8,0,0,1,8-8H204a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="128 152 64 216 32 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="44 44 44 196 60 212 212 212 212 44 44 44" opacity="0.2"/><path d="M44,143.3V52a8,8,0,0,1,8-8H204a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="128 152 64 216 32 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,36H52A16,16,0,0,0,36,52v91.3a8,8,0,0,0,16,0V52H204V204H135.6a8,8,0,0,0,0,16H204a16,16,0,0,0,16-16V52A16,16,0,0,0,204,36Z"/><path d="M133.7,146.3a8.1,8.1,0,0,0-11.4,0L64,204.7,37.7,178.3a8.1,8.1,0,0,0-11.4,11.4l32,32a8.2,8.2,0,0,0,11.4,0l64-64A8.1,8.1,0,0,0,133.7,146.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,143.3V52a8,8,0,0,1,8-8H204a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="128 152 64 216 32 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,143.3V52a8,8,0,0,1,8-8H204a8,8,0,0,1,8,8V204a8,8,0,0,1-8,8H135.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="128 152 64 216 32 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `battery_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.battery_high />
  <Heroicons.battery_high class="w-4 h-4" />
  <Heroicons.battery_high solid />
  <Heroicons.battery_high mini />
  <Heroicons.battery_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def battery_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="46" y="38" width="144" height="180" rx="16" transform="translate(246 10) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="64" y1="164" x2="64" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="164" x2="100" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="164" x2="136" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="244" y1="96" x2="244" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" opacity="0.2"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,88a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V96A8,8,0,0,0,248,88Z"/><path d="M200,48H48A24.1,24.1,0,0,0,24,72V184a24.1,24.1,0,0,0,24,24H200a24.1,24.1,0,0,0,24-24V72A24.1,24.1,0,0,0,200,48Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H200a8,8,0,0,1,8,8Z"/><rect x="56" y="80" width="96" height="96" rx="8"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="52" y="36" width="144" height="184" rx="16" transform="translate(252 4) rotate(90)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="142.4" y1="168" x2="142.4" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="105.6" y1="168" x2="105.6" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="68.8" y1="168" x2="68.8" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_teardrop_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_teardrop_text />
  <Heroicons.chat_teardrop_text class="w-4 h-4" />
  <Heroicons.chat_teardrop_text solid />
  <Heroicons.chat_teardrop_text mini />
  <Heroicons.chat_teardrop_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_teardrop_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="108" x2="160" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="100" y1="148" x2="160" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" opacity="0.2"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,24A100.2,100.2,0,0,0,32,124v84.3A15.7,15.7,0,0,0,47.7,224H132a100,100,0,0,0,0-200Zm28,128H100a8,8,0,0,1,0-16h60a8,8,0,0,1,0,16Zm0-32H100a8,8,0,0,1,0-16h60a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132,216H47.7a7.6,7.6,0,0,1-7.7-7.7V124a92,92,0,0,1,92-92h0a92,92,0,0,1,92,92h0A92,92,0,0,1,132,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="112" x2="160" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="144" x2="160" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `scissors` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.scissors />
  <Heroicons.scissors class="w-4 h-4" />
  <Heroicons.scissors solid />
  <Heroicons.scissors mini />
  <Heroicons.scissors outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def scissors(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="60" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="128" x2="83.1" y2="164.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="62.3" x2="164.3" y2="108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="193.7" x2="83.1" y2="91.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="60" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="128" x2="83.1" y2="164.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="193.7" x2="83.1" y2="91.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="232" y1="62.3" x2="171.4" y2="103.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="76" r="28" opacity="0.2"/><circle cx="60" cy="180" r="28" opacity="0.2"/><circle cx="60" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="60" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="128" x2="83.1" y2="164.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="62.3" x2="164.3" y2="108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="232" y1="193.7" x2="83.1" y2="91.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M157.7,113.1a8,8,0,0,1,2.1-11.1l67.7-46.3a8,8,0,0,1,11.1,2.1,7.9,7.9,0,0,1-2.1,11.1l-67.6,46.3a7.8,7.8,0,0,1-4.6,1.4A8,8,0,0,1,157.7,113.1Zm80.9,85.1a7.9,7.9,0,0,1-6.6,3.5,8.2,8.2,0,0,1-4.5-1.4L136,137.7,93.5,166.8A36.4,36.4,0,0,1,96,180a36.1,36.1,0,1,1-11.6-26.4L121.8,128,84.4,102.4A35.5,35.5,0,0,1,60,112,36,36,0,1,1,93.5,89.2l143,97.9A7.9,7.9,0,0,1,238.6,198.2ZM80,180a19.7,19.7,0,0,0-5.9-14.1,19.8,19.8,0,0,0-28.2,0,19.8,19.8,0,0,0,0,28.2,19.9,19.9,0,0,0,28.2,0A19.7,19.7,0,0,0,80,180ZM74.1,90.1a19.8,19.8,0,0,0,0-28.2,19.8,19.8,0,0,0-28.2,0,19.8,19.8,0,0,0,0,28.2A19.9,19.9,0,0,0,74.1,90.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="60" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="128" x2="83.1" y2="164.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="62.3" x2="164.3" y2="108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="232" y1="193.7" x2="83.1" y2="91.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="60" cy="76" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="60" cy="180" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="128" x2="83.1" y2="164.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="62.3" x2="164.3" y2="108.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="232" y1="193.7" x2="83.1" y2="91.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `highlighter_circle` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.highlighter_circle />
  <Heroicons.highlighter_circle class="w-4 h-4" />
  <Heroicons.highlighter_circle solid />
  <Heroicons.highlighter_circle mini />
  <Heroicons.highlighter_circle outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def highlighter_circle(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 144 104 96 152 72 152 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,215.3V152a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v63.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 148 104 104 152 80 152 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,215.3V156a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v59.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M195.9,60.1A96,96,0,1,0,88,215.3V152a8,8,0,0,1,8-8h8V96l48-24v72h8a8,8,0,0,1,8,8v63.3A96,96,0,0,0,195.9,60.1Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 144 104 96 152 72 152 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,215.3V152a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v63.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M201.5,54.5a103.8,103.8,0,0,0-147,0,103.8,103.8,0,0,0,0,147,103.8,103.8,0,0,0,147,0,103.8,103.8,0,0,0,0-147ZM96,210V152h64v58a88.3,88.3,0,0,1-64,0Zm94.2-19.8A86.8,86.8,0,0,1,176,201.8V152a16,16,0,0,0-16-16V72a7.9,7.9,0,0,0-3.8-6.8,8,8,0,0,0-7.8-.4l-48,24A8.2,8.2,0,0,0,96,96v40a16,16,0,0,0-16,16v49.8A88.7,88.7,0,0,1,40,128a88,88,0,1,1,150.2,62.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 144 104 96 152 72 152 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,215.3V152a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v63.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 144 104 96 152 72 152 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,215.3V152a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v63.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `briefcase_metal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.briefcase_metal />
  <Heroicons.briefcase_metal class="w-4 h-4" />
  <Heroicons.briefcase_metal solid />
  <Heroicons.briefcase_metal mini />
  <Heroicons.briefcase_metal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def briefcase_metal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="224" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="112" x2="224" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,68V48a16,16,0,0,0-16-16H104A16,16,0,0,0,88,48V68" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,112H224V80a8,8,0,0,0-8-8H40a8,8,0,0,0-8,8Z" opacity="0.2"/><path d="M32,176H224v32a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8Z" opacity="0.2"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="224" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M28,120H228a4,4,0,0,1,4,4v40a4,4,0,0,1-4,4H28a4,4,0,0,1-4-4V124A4,4,0,0,1,28,120Zm-4,88a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V188a4,4,0,0,0-4-4H28a4,4,0,0,0-4,4ZM232,80v20a4,4,0,0,1-4,4H28a4,4,0,0,1-4-4V80A16,16,0,0,1,40,64H80V56a23.9,23.9,0,0,1,24-24h48a23.9,23.9,0,0,1,24,24v8h40A16,16,0,0,1,232,80ZM160,56a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v8h64Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="112" x2="224" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="72" width="192" height="144" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,72V56a16,16,0,0,0-16-16H104A16,16,0,0,0,88,56V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="176" x2="224" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="112" x2="224" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sunglasses` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sunglasses />
  <Heroicons.sunglasses class="w-4 h-4" />
  <Heroicons.sunglasses solid />
  <Heroicons.sunglasses mini />
  <Heroicons.sunglasses outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sunglasses(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,48a23.9,23.9,0,0,1,24,24v68H32V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="140" x2="215.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="140" x2="95.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,48a23.9,23.9,0,0,1,24,24v68H32V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="140" x2="93.5" y2="189.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="140" x2="213.5" y2="189.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140v24a36,36,0,0,1-72,0V140Z" opacity="0.2"/><path d="M224,140v24a36,36,0,0,1-72,0V140Z" opacity="0.2"/><path d="M104,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,48a23.9,23.9,0,0,1,24,24v68H32V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="140" x2="215.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="140" x2="95.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,40a8,8,0,0,0,0,16,16,16,0,0,1,16,16v60H40V72A16,16,0,0,1,56,56a8,8,0,0,0,0-16A32.1,32.1,0,0,0,24,72v92a44,44,0,0,0,88,0V148h32v16a44,44,0,0,0,88,0V72A32.1,32.1,0,0,0,200,40ZM85,177a7.7,7.7,0,0,1-5.6,2.4,8,8,0,0,1-5.7-2.4L58.3,161.7a8.1,8.1,0,0,1,11.4-11.4L85,165.7A7.9,7.9,0,0,1,85,177Zm120,0a7.7,7.7,0,0,1-5.6,2.4,8,8,0,0,1-5.7-2.4l-15.4-15.3a8.1,8.1,0,0,1,11.4-11.4L205,165.7A7.9,7.9,0,0,1,205,177Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M200,48a23.9,23.9,0,0,1,24,24v68H32V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="168" y1="140" x2="215.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="140" x2="95.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,140v24a36,36,0,0,1-72,0V140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M200,48a23.9,23.9,0,0,1,24,24v68H32V72A23.9,23.9,0,0,1,56,48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="168" y1="140" x2="215.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="140" x2="95.4" y2="187.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `microphone_stage` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.microphone_stage />
  <Heroicons.microphone_stage class="w-4 h-4" />
  <Heroicons.microphone_stage solid />
  <Heroicons.microphone_stage mini />
  <Heroicons.microphone_stage outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def microphone_stage(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.3" y1="133.3" x2="122.7" y2="42.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="88" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104.8,97.9,28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="213.3" y1="133.3" x2="122.7" y2="42.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104.8,97.9,28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M158.1,151.2a63.9,63.9,0,0,1-53.3-53.3h0L28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7Z" opacity="0.2"/><circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.3" y1="133.3" x2="122.7" y2="42.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="100" y1="156" x2="88" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104.8,97.9,28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,88a65.1,65.1,0,0,0,.4,7.7l-74.8,102a16,16,0,0,0,1.6,20.8l14.3,14.3a16,16,0,0,0,20.8,1.6l102-74.8a65.1,65.1,0,0,0,7.7.4,71.9,71.9,0,0,0,41.1-12.9,4,4,0,0,0,.5-6.1L115,46.4a4,4,0,0,0-6.1.5A71.9,71.9,0,0,0,96,88Zm17.7,65.7-20,20a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4l20-20a8.1,8.1,0,0,1,11.4,11.4ZM239.9,84a72,72,0,0,1-12.8,45.1,4,4,0,0,1-6.1.5L126.4,35a4,4,0,0,1,.5-6.1A72,72,0,0,1,239.9,84Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="213.3" y1="133.3" x2="122.7" y2="42.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="100" y1="156" x2="88" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104.8,97.9,28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="213.3" y1="133.3" x2="122.7" y2="42.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="100" y1="156" x2="88" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104.8,97.9,28.1,202.5a7.9,7.9,0,0,0,.8,10.4l14.2,14.2a7.9,7.9,0,0,0,10.4.8l104.6-76.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `disc` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.disc />
  <Heroicons.disc class="w-4 h-4" />
  <Heroicons.disc solid />
  <Heroicons.disc mini />
  <Heroicons.disc outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def disc(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="150.6" y2="105.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="195.9" y1="60.1" x2="150.6" y2="105.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,128a32.1,32.1,0,1,1-9.4-22.6h0l45.3-45.3h0A96,96,0,1,0,224,128Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="195.9" y1="60.1" x2="150.6" y2="105.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188.3,43.3l-.6-.5-.8-.4A102.9,102.9,0,0,0,128,24a104.1,104.1,0,1,0,60.3,19.3ZM128,152a24,24,0,1,1,24-24A24.1,24.1,0,0,1,128,152Zm88-24c0,2.5-.1,4.9-.3,7.3L168,126.9a39.8,39.8,0,0,0-11-26.4l27.8-39.7A87.9,87.9,0,0,1,216,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="195.9" y1="60.1" x2="150.6" y2="105.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="195.9" y1="60.1" x2="150.6" y2="105.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `paw_print` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.paw_print />
  <Heroicons.paw_print class="w-4 h-4" />
  <Heroicons.paw_print solid />
  <Heroicons.paw_print mini />
  <Heroicons.paw_print outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def paw_print(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="44" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="164" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="208" cy="104" r="24"/><circle cx="48" cy="104" r="24"/><circle cx="96" cy="56" r="24"/><circle cx="160" cy="56" r="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="108" r="20" opacity="0.2"/><circle cx="44" cy="108" r="20" opacity="0.2"/><circle cx="92" cy="60" r="20" opacity="0.2"/><circle cx="164" cy="60" r="20" opacity="0.2"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" opacity="0.2"/><circle cx="212" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="44" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="164" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,108a28,28,0,1,1-28-28A28.1,28.1,0,0,1,240,108ZM72,108a28,28,0,1,0-28,28A28.1,28.1,0,0,0,72,108ZM92,88A28,28,0,1,0,64,60,28.1,28.1,0,0,0,92,88Zm72,0a28,28,0,1,0-28-28A28.1,28.1,0,0,0,164,88Zm23.1,60.8a35.3,35.3,0,0,1-16.9-21.1,43.9,43.9,0,0,0-84.4,0A35.5,35.5,0,0,1,69,148.8,40,40,0,0,0,88,224a40.5,40.5,0,0,0,15.5-3.1,64.2,64.2,0,0,1,48.9-.1A39.6,39.6,0,0,0,168,224a40,40,0,0,0,19.1-75.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="44" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="164" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="212" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="44" cy="108" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="164" cy="60" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M183.2,155.9a43.6,43.6,0,0,1-20.6-26h0a36,36,0,0,0-69.2,0h0a43.6,43.6,0,0,1-20.6,26A32,32,0,0,0,88,216a32.4,32.4,0,0,0,12.5-2.5,71.8,71.8,0,0,1,55,0A32.4,32.4,0,0,0,168,216a32,32,0,0,0,15.2-60.1Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dice_five` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dice_five />
  <Heroicons.dice_five class="w-4 h-4" />
  <Heroicons.dice_five solid />
  <Heroicons.dice_five mini />
  <Heroicons.dice_five outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dice_five(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="92" r="12"/><circle cx="164" cy="92" r="12"/><circle cx="92" cy="164" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="164" cy="164" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="88" cy="88" r="16"/><circle cx="128" cy="128" r="16"/><circle cx="168" cy="88" r="16"/><circle cx="88" cy="168" r="16"/><circle cx="168" cy="168" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" opacity="0.2"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="92" r="12"/><circle cx="164" cy="92" r="12"/><circle cx="92" cy="164" r="12"/><circle cx="128" cy="128" r="12"/><circle cx="164" cy="164" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H64A32.1,32.1,0,0,0,32,64V192a32.1,32.1,0,0,0,32,32H192a32.1,32.1,0,0,0,32-32V64A32.1,32.1,0,0,0,192,32ZM92,176a12,12,0,1,1,12-12A12,12,0,0,1,92,176Zm0-72a12,12,0,1,1,12-12A12,12,0,0,1,92,104Zm36,36a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm36,36a12,12,0,1,1,12-12A12,12,0,0,1,164,176Zm0-72a12,12,0,1,1,12-12A12,12,0,0,1,164,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="92" r="10"/><circle cx="128" cy="128" r="10"/><circle cx="164" cy="92" r="10"/><circle cx="92" cy="164" r="10"/><circle cx="164" cy="164" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="92" r="8"/><circle cx="128" cy="128" r="8"/><circle cx="164" cy="92" r="8"/><circle cx="92" cy="164" r="8"/><circle cx="164" cy="164" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trend_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trend_up />
  <Heroicons.trend_up class="w-4 h-4" />
  <Heroicons.trend_up solid />
  <Heroicons.trend_up mini />
  <Heroicons.trend_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trend_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 56 136 152 96 112 24 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 120 232 56 168 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 56 136 152 96 112 24 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="232 120 232 56 168 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 56 136 152 96 112 24 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="232 120 232 56 168 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,56v64a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3L200,99.3l-58.3,58.4a8.1,8.1,0,0,1-11.4,0L96,123.3,29.7,189.7A8.3,8.3,0,0,1,24,192a8.5,8.5,0,0,1-5.7-2.3,8.1,8.1,0,0,1,0-11.4l72-72a8.1,8.1,0,0,1,11.4,0L136,140.7,188.7,88,162.3,61.7a8.4,8.4,0,0,1-1.7-8.8A8.1,8.1,0,0,1,168,48h64A8,8,0,0,1,240,56Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 56 136 152 96 112 24 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="232 120 232 56 168 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="232 56 136 152 96 112 24 184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="232 120 232 56 168 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `dots_three_outline` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.dots_three_outline />
  <Heroicons.dots_three_outline class="w-4 h-4" />
  <Heroicons.dots_three_outline solid />
  <Heroicons.dots_three_outline mini />
  <Heroicons.dots_three_outline outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def dots_three_outline(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="48" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="208" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="208" cy="128" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="48" cy="128" r="20" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" opacity="0.1"/><circle cx="48" cy="128" r="24" opacity="0.1"/><circle cx="208" cy="128" r="24" opacity="0.1"/><circle cx="128" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="48" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="208" cy="128" r="24" fill="none" stroke-miterlimit="10" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,128a28,28,0,1,1-28-28A28.1,28.1,0,0,1,156,128ZM48,100a28,28,0,1,0,28,28A28.1,28.1,0,0,0,48,100Zm160,0a28,28,0,1,0,28,28A28.1,28.1,0,0,0,208,100Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="48" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="208" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="48" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="208" cy="128" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley />
  <Heroicons.smiley class="w-4 h-4" />
  <Heroicons.smiley solid />
  <Heroicons.smiley mini />
  <Heroicons.smiley outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><circle cx="164" cy="108" r="16"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><circle cx="92" cy="108" r="12"/><circle cx="164" cy="108" r="12"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm36,72a12,12,0,1,1-12,12A12,12,0,0,1,164,96ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm84.5,60a56,56,0,0,1-97,0,8,8,0,1,1,13.8-8,40.1,40.1,0,0,0,69.4,0,8,8,0,0,1,13.8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><circle cx="164" cy="108" r="10"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><circle cx="164" cy="108" r="8"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `person_simple_walk` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.person_simple_walk />
  <Heroicons.person_simple_walk class="w-4 h-4" />
  <Heroicons.person_simple_walk solid />
  <Heroicons.person_simple_walk mini />
  <Heroicons.person_simple_walk outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def person_simple_walk(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128s56-56,88-26.4c17.9,16.5,32,42.4,72,42.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.5" y1="97.4" x2="72" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 232 152 176 109.5 145.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,132s56-56,88-26.4c17.9,16.5,32,42.4,72,42.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="152 232 152 176 109.5 145.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128.3" y1="102.6" x2="72" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="48" r="24" opacity="0.2"/><circle cx="152" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128s56-56,88-26.4c17.9,16.5,32,42.4,72,42.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="130.5" y1="97.4" x2="72" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 232 152 176 109.5 145.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,48a32,32,0,1,1,32,32A32.1,32.1,0,0,1,120,48Zm88,88c-28.5,0-41.7-14.1-55.6-29.1-3.5-3.8-7.2-7.7-11-11.2-37.2-34.4-96.5,24.1-99.1,26.6a8.1,8.1,0,1,0,11.4,11.4,157.3,157.3,0,0,1,30.5-23.2c14.3-8.2,26.3-11.1,35.7-8.8l-17.7,40.7h0L64.7,228.8a7.9,7.9,0,0,0,4.1,10.5,7.1,7.1,0,0,0,3.2.7,7.9,7.9,0,0,0,7.3-4.8l33.6-77.3L144,180.1V232a8,8,0,0,0,16,0V176a7.8,7.8,0,0,0-3.4-6.5l-37.1-26.6,14.1-32.5,7.1,7.4C154.9,133,172.5,152,208,152a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128s56-56,88-26.4c17.9,16.5,32,42.4,72,42.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="130.5" y1="97.4" x2="72" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 232 152 176 109.5 145.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="48" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128s56-56,88-26.4c17.9,16.5,32,42.4,72,42.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="130.5" y1="97.4" x2="72" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 232 152 176 109.5 145.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_high />
  <Heroicons.cell_signal_high class="w-4 h-4" />
  <Heroicons.cell_signal_high solid />
  <Heroicons.cell_signal_high mini />
  <Heroicons.cell_signal_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,216H27.3a8,8,0,0,1-5.6-13.7L160,64Z" opacity="0.2"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M198.1,28.5A15.9,15.9,0,0,0,180.7,32L16,196.7a15.7,15.7,0,0,0-4.7,11.6,4.9,4.9,0,0,0,.1,1.2,14.7,14.7,0,0,0,1.1,4.6,16,16,0,0,0,6.9,7.8l1,.6,2.2.8a14.9,14.9,0,0,0,4.7.7H192a16,16,0,0,0,16-16V43.3A16,16,0,0,0,198.1,28.5ZM192,208H168V67.3l24-24Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="64" x2="160" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_fat_lines_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_fat_lines_right />
  <Heroicons.arrow_fat_lines_right class="w-4 h-4" />
  <Heroicons.arrow_fat_lines_right solid />
  <Heroicons.arrow_fat_lines_right mini />
  <Heroicons.arrow_fat_lines_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_fat_lines_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 104 176 104 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="176" x2="72" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 116 176 116 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="176" x2="44" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="176" x2="80" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 104 176 104 80 136 80 136 32" opacity="0.2"/><polygon points="136 32 232 128 136 224 136 176 104 176 104 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="176" x2="72" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M132.9,231.4A8,8,0,0,1,128,224V184H104a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8h24V32a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l96,96a8.1,8.1,0,0,1,0,11.4l-96,96A8.4,8.4,0,0,1,132.9,231.4ZM48,176V80a8,8,0,0,0-16,0v96a8,8,0,0,0,16,0Zm32,0V80a8,8,0,0,0-16,0v96a8,8,0,0,0,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 104 176 104 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="176" x2="72" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="136 32 232 128 136 224 136 176 104 176 104 80 136 80 136 32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="176" x2="40" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="176" x2="72" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `binoculars` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.binoculars />
  <Heroicons.binoculars class="w-4 h-4" />
  <Heroicons.binoculars solid />
  <Heroicons.binoculars mini />
  <Heroicons.binoculars outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def binoculars(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="92" x2="152" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M229.6,154.3,185.9,55A24.1,24.1,0,0,0,152,55V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168V55a24.1,24.1,0,0,0-33.9,0L26.4,154.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="64" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="92" x2="152" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M229.6,154.3,185.9,55A24.1,24.1,0,0,0,152,55V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,168V55a24.1,24.1,0,0,0-33.9,0L26.4,154.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="64" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="192" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="64" cy="168" r="40" opacity="0.2"/><circle cx="192" cy="168" r="40" opacity="0.2"/><line x1="104" y1="92" x2="152" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M229.6,154.3,185.9,55A24.1,24.1,0,0,0,152,55V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,168V55a24.1,24.1,0,0,0-33.9,0L26.4,154.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="64" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="192" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.2,151.9h0c0-.1-.1-.1-.1-.2a42.3,42.3,0,0,0-2.3-5.3L193.3,51.8a8.1,8.1,0,0,0-1.7-2.4,32,32,0,0,0-45.3,0A7.9,7.9,0,0,0,144,55V84H112V55a7.9,7.9,0,0,0-2.3-5.6,32,32,0,0,0-45.3,0,8.1,8.1,0,0,0-1.7,2.4L21.2,146.3a42.3,42.3,0,0,0-2.3,5.3c0,.1-.1.1-.1.2h0A48,48,0,1,0,112,167.8V100h32v67.8a48,48,0,1,0,93.2-15.9Zm-143.1,27a32,32,0,0,1-60.2-21.7l1.8-4.1A32,32,0,0,1,96,167.9h0A32.1,32.1,0,0,1,94.1,178.9Zm108.8,19.2A32,32,0,0,1,160,168h0a32,32,0,0,1,60.3-14.8l1.8,4.1A32,32,0,0,1,202.9,198.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="92" x2="152" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M229.6,154.3,185.9,55A24.1,24.1,0,0,0,152,55V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,168V55a24.1,24.1,0,0,0-33.9,0L26.4,154.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="64" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="192" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="104" y1="92" x2="152" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M229.6,154.3,185.9,55A24.1,24.1,0,0,0,152,55V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,168V55a24.1,24.1,0,0,0-33.9,0L26.4,154.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="64" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="192" cy="168" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `square_half_bottom` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.square_half_bottom />
  <Heroicons.square_half_bottom class="w-4 h-4" />
  <Heroicons.square_half_bottom solid />
  <Heroicons.square_half_bottom mini />
  <Heroicons.square_half_bottom outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def square_half_bottom(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="128" x2="80" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="128" x2="112" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="128" x2="144" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="128" x2="176" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="128" x2="84" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="128" x2="172" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M44,128H212v76a8,8,0,0,1-8,8H52a8,8,0,0,1-8-8Z" opacity="0.2"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M204,36H52A16,16,0,0,0,36,52V204a16,16,0,0,0,16,16H204a16,16,0,0,0,16-16V52A16,16,0,0,0,204,36Zm0,16v76H52V52Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="128" x2="80" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="128" x2="112" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="128" x2="144" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="128" x2="176" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="44" y="44" width="168" height="168" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="44" y1="128" x2="212" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="128" x2="80" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="128" x2="112" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="128" x2="144" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="128" x2="176" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `browsers` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.browsers />
  <Heroicons.browsers class="w-4 h-4" />
  <Heroicons.browsers solid />
  <Heroicons.browsers mini />
  <Heroicons.browsers outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def browsers(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,80V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168a8,8,0,0,1-8,8H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="28" y="84" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M68,84V52a8,8,0,0,1,8-8H220a8,8,0,0,1,8,8V164a8,8,0,0,1-8,8H188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="28" y1="124" x2="188" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,48H72a8,8,0,0,0-8,8V80H184a8,8,0,0,1,8,8v88h24a8,8,0,0,0,8-8V56A8,8,0,0,0,216,48Z" opacity="0.2"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M64,80V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168a8,8,0,0,1-8,8H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H72A16,16,0,0,0,56,56V72H40A16,16,0,0,0,24,88V200a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V184h16a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM184,88v16H40V88Zm32,80H200V88a16,16,0,0,0-16-16H72V56H216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M64,80V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168a8,8,0,0,1-8,8H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="80" width="160" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M64,80V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168a8,8,0,0,1-8,8H192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="112" x2="192" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shopping_bag` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shopping_bag />
  <Heroicons.shopping_bag class="w-4 h-4" />
  <Heroicons.shopping_bag solid />
  <Heroicons.shopping_bag mini />
  <Heroicons.shopping_bag outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shopping_bag(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,88a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M168,88a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" opacity="0.2"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,88a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-88,96A48,48,0,0,1,80,88a8,8,0,0,1,16,0,32,32,0,0,0,64,0,8,8,0,0,1,16,0A48,48,0,0,1,128,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M168,88a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,88a40,40,0,0,1-80,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chat_centered` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chat_centered />
  <Heroicons.chat_centered class="w-4 h-4" />
  <Heroicons.chat_centered solid />
  <Heroicons.chat_centered mini />
  <Heroicons.chat_centered outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chat_centered(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" opacity="0.2"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V184a16,16,0,0,0,16,16H99.5l14.8,24.7a16,16,0,0,0,27.4,0L156.5,200H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M149.7,195.9l-14.8,24.7a8.1,8.1,0,0,1-13.8,0l-14.8-24.7a7.9,7.9,0,0,0-6.8-3.9H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V184a8,8,0,0,1-8,8H156.5A7.9,7.9,0,0,0,149.7,195.9Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `selection_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.selection_slash />
  <Heroicons.selection_slash class="w-4 h-4" />
  <Heroicons.selection_slash solid />
  <Heroicons.selection_slash mini />
  <Heroicons.selection_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def selection_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M104,40a8,8,0,0,1,8-8h32a8,8,0,0,1,0,16H112A8,8,0,0,1,104,40Zm40,168H112a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16ZM208,32H184a8,8,0,0,0,0,16h24V72a8,8,0,0,0,16,0V48A16,16,0,0,0,208,32Zm8,72a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V112A8,8,0,0,0,216,104ZM40,152a8,8,0,0,0,8-8V112a8,8,0,0,0-16,0v32A8,8,0,0,0,40,152Zm32,56H48V184a8,8,0,0,0-16,0v24a16,16,0,0,0,16,16H72a8,8,0,0,0,0-16ZM53.9,34.6A8,8,0,0,0,42.1,45.4l160,176A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="144" y1="40" x2="112" y2="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="216" x2="144" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184,40h24a8,8,0,0,1,8,8V72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="216" y1="144" x2="216" y2="112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="112" x2="40" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,216H48a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `linux_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.linux_logo />
  <Heroicons.linux_logo class="w-4 h-4" />
  <Heroicons.linux_logo solid />
  <Heroicons.linux_logo mini />
  <Heroicons.linux_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def linux_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216S64,160,64,96a64,64,0,0,1,128,0c0,64,32,120,32,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="108" r="12"/><circle cx="156" cy="108" r="12"/><polyline points="160 144 128 160 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M86.4,216a48.1,48.1,0,0,1,83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="104" cy="112" r="16"/><circle cx="152" cy="112" r="16"/><polyline points="156 152 128 164 100 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M101.5,212a47.9,47.9,0,0,1,53,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M36.2,212S60,160,60,104a68,68,0,0,1,136,0c0,56,23.8,108,23.8,108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M169.6,216a48.1,48.1,0,0,0-83.2,0H32S64,160,64,96a64,64,0,0,1,128,0c0,64,32,120,32,120Z" opacity="0.2"/><path d="M32,216S64,160,64,96a64,64,0,0,1,128,0c0,64,32,120,32,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="100" cy="108" r="12"/><circle cx="156" cy="108" r="12"/><polyline points="160 144 128 160 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M86.4,216a48.1,48.1,0,0,1,83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M161.2,217.7a4,4,0,0,1-3.3,6.3H98.1a4,4,0,0,1-3.3-6.3,40,40,0,0,1,66.4,0Zm68.6,3.8a8.2,8.2,0,0,1-6,2.5H184.6a4.1,4.1,0,0,1-3.8-2.7,56,56,0,0,0-105.6,0,4.1,4.1,0,0,1-3.8,2.7H32.2a8,8,0,0,1-6-2.5,7.9,7.9,0,0,1-1.1-9.5c.3-.5,30.9-55,30.9-116a72.1,72.1,0,0,1,72.5-72c39.6.3,71.4,32.9,71.5,72.5.2,60.8,30.6,115,30.9,115.5A7.9,7.9,0,0,1,229.8,221.5ZM88,108a12,12,0,1,0,12-12A12,12,0,0,0,88,108Zm79.2,32.4a8.2,8.2,0,0,0-10.8-3.6L128,151.1,99.6,136.8a8,8,0,1,0-7.2,14.4l32,16a8.5,8.5,0,0,0,7.2,0l32-16A8.2,8.2,0,0,0,167.2,140.4ZM168,108a12,12,0,1,0-12,12A12,12,0,0,0,168,108Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216S64,160,64,96a64,64,0,0,1,128,0c0,64,32,120,32,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="100" cy="108" r="10"/><circle cx="156" cy="108" r="10"/><polyline points="160 144 128 160 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M86.4,216a48.1,48.1,0,0,1,83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,216S64,160,64,96a64,64,0,0,1,128,0c0,64,32,120,32,120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="100" cy="108" r="8"/><circle cx="156" cy="108" r="8"/><polyline points="160 144 128 160 96 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M86.4,216a48.1,48.1,0,0,1,83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `flow_arrow` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.flow_arrow />
  <Heroicons.flow_arrow class="w-4 h-4" />
  <Heroicons.flow_arrow solid />
  <Heroicons.flow_arrow mini />
  <Heroicons.flow_arrow outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def flow_arrow(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="44" cy="176" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 40 240 80 200 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,176h8a48,48,0,0,0,48-48h0a48,48,0,0,1,48-48h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="44" cy="176" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="200 40 240 80 200 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,176h8a48,48,0,0,0,48-48h0a48,48,0,0,1,48-48h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="44" cy="176" r="28" opacity="0.2"/><circle cx="44" cy="176" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="200 40 240 80 200 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,176h8a48,48,0,0,0,48-48h0a48,48,0,0,1,48-48h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M245.7,85.7l-40,40a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L220.7,88H176a40,40,0,0,0-40,40,56,56,0,0,1-56,56h-.9a36,36,0,1,1,0-16H80a40,40,0,0,0,40-40,56,56,0,0,1,56-56h44.7L194.3,45.7a8.1,8.1,0,0,1,11.4-11.4l40,40A8.1,8.1,0,0,1,245.7,85.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="44" cy="176" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="200 40 240 80 200 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M72,176h8a48,48,0,0,0,48-48h0a48,48,0,0,1,48-48h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="44" cy="176" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="200 40 240 80 200 120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M72,176h8a48,48,0,0,0,48-48h0a48,48,0,0,1,48-48h64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloud` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloud />
  <Heroicons.cloud class="w-4 h-4" />
  <Heroicons.cloud solid />
  <Heroicons.cloud mini />
  <Heroicons.cloud outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloud(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" opacity="0.2"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160.1,40A88.1,88.1,0,0,0,81.3,88.7h0a86.6,86.6,0,0,0-9.3,39,8.2,8.2,0,0,1-7.4,8.3,8,8,0,0,1-8.6-8,105,105,0,0,1,5.3-32.9,4,4,0,0,0-4.7-5.2A64,64,0,0,0,8,152c0,35.2,29.8,64,64.9,64H160a88,88,0,0,0,.1-176Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,128a80,80,0,1,1,80,80H72A56,56,0,0,1,72,96a57.5,57.5,0,0,1,13.9,1.7" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `trademark_registered` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.trademark_registered />
  <Heroicons.trademark_registered class="w-4 h-4" />
  <Heroicons.trademark_registered solid />
  <Heroicons.trademark_registered mini />
  <Heroicons.trademark_registered outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def trademark_registered(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,136h32a24,24,0,0,0,0-48H104v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="137.6" y1="135.9" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M104,136h32a24,24,0,0,0,0-48H104v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="137.6" y1="135.9" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M104,136h32a24,24,0,0,0,0-48H104v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="137.6" y1="135.9" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,56a72,72,0,1,0,72,72A72.1,72.1,0,0,0,128,56Zm28.5,110.6A8.2,8.2,0,0,1,152,168a8,8,0,0,1-6.6-3.5L131.3,144H116v16a8,8,0,0,1-16,0V96a8,8,0,0,1,8-8h24a28,28,0,0,1,15.5,51.3l11.1,16.2A7.9,7.9,0,0,1,156.5,166.6ZM144,116a12,12,0,0,1-12,12H116V104h16A12,12,0,0,1,144,116ZM128,20A108,108,0,1,0,236,128,108.1,108.1,0,0,0,128,20Zm0,196a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M104,136h32a24,24,0,0,0,0-48H104v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="137.6" y1="135.9" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M104,136h32a24,24,0,0,0,0-48H104v80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="137.6" y1="135.9" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_right />
  <Heroicons.align_right class="w-4 h-4" />
  <Heroicons.align_right solid />
  <Heroicons.align_right mini />
  <Heroicons.align_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="56" width="112" height="56" rx="8" transform="translate(256 168) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="72" y="56" width="104" height="52" rx="8" transform="translate(248 164) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="148" width="144" height="52" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="72" y="56" width="112" height="56" rx="8" transform="translate(256 168) rotate(180)" opacity="0.2"/><rect x="32" y="144" width="152" height="56" rx="8" opacity="0.2"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="72" y="56" width="112" height="56" rx="8" transform="translate(256 168) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0Zm-48,8H80A16,16,0,0,0,64,64v40a16,16,0,0,0,16,16h96a16,16,0,0,0,16-16V64A16,16,0,0,0,176,48Zm0,88H40a16,16,0,0,0-16,16v40a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V152A16,16,0,0,0,176,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="72" y="56" width="112" height="56" rx="8" transform="translate(256 168) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="216" y1="40" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="72" y="56" width="112" height="56" rx="8" transform="translate(256 168) rotate(180)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="144" width="152" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `rainbow` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.rainbow />
  <Heroicons.rainbow class="w-4 h-4" />
  <Heroicons.rainbow solid />
  <Heroicons.rainbow mini />
  <Heroicons.rainbow outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def rainbow(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,184V168a48,48,0,0,0-96,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,184V168a80,80,0,0,0-160,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240,184V168a112,112,0,0,0-224,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M12,180v-8a116,116,0,0,1,232,0v8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152,180v-4a24,24,0,0,0-48,0v4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M200,180v-4a72,72,0,0,0-144,0v4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,184V168a48,48,0,0,0-96,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,184V168a80,80,0,0,0-160,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M240,184V168a112,112,0,0,0-224,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,168v16a8,8,0,0,1-16,0V168a40,40,0,0,0-80,0v16a8,8,0,0,1-16,0V168a56,56,0,0,1,112,0ZM128,80a88.1,88.1,0,0,0-88,88v16a8,8,0,0,0,16,0V168a72,72,0,0,1,144,0v16a8,8,0,0,0,16,0V168A88.1,88.1,0,0,0,128,80Zm0-32A120.1,120.1,0,0,0,8,168v16a8,8,0,0,0,16,0V168a104,104,0,0,1,208,0v16a8,8,0,0,0,16,0V168A120.1,120.1,0,0,0,128,48Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,184V168a48,48,0,0,0-96,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,184V168a80,80,0,0,0-160,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M240,184V168a112,112,0,0,0-224,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,184V168a48,48,0,0,0-96,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,184V168a80,80,0,0,0-160,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M240,184V168a112,112,0,0,0-224,0v16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tree_structure` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tree_structure />
  <Heroicons.tree_structure class="w-4 h-4" />
  <Heroicons.tree_structure solid />
  <Heroicons.tree_structure mini />
  <Heroicons.tree_structure outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tree_structure(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="100" width="56" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="40" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="152" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,184H144a23.9,23.9,0,0,1-24-24V96a23.9,23.9,0,0,1,24-24h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="100" width="56" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="160" y="40" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="160" y="152" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,184H144a23.9,23.9,0,0,1-24-24V96a23.9,23.9,0,0,1,24-24h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="100" width="56" height="56" rx="8" opacity="0.2"/><rect x="160" y="40" width="64" height="64" rx="8" opacity="0.2"/><rect x="160" y="152" width="64" height="64" rx="8" opacity="0.2"/><rect x="24" y="100" width="56" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="40" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="160" y="152" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,184H144a23.9,23.9,0,0,1-24-24V96a23.9,23.9,0,0,1,24-24h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M156,92V80H144a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h12V164a16,16,0,0,1,16-16h40a16,16,0,0,1,16,16v40a16,16,0,0,1-16,16H172a16,16,0,0,1-16-16V192H144a32.1,32.1,0,0,1-32-32V136H84v8a16,16,0,0,1-16,16H36a16,16,0,0,1-16-16V112A16,16,0,0,1,36,96H68a16,16,0,0,1,16,16v8h28V96a32.1,32.1,0,0,1,32-32h12V52a16,16,0,0,1,16-16h40a16,16,0,0,1,16,16V92a16,16,0,0,1-16,16H172A16,16,0,0,1,156,92Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="100" width="56" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="160" y="40" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="160" y="152" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,184H144a23.9,23.9,0,0,1-24-24V96a23.9,23.9,0,0,1,24-24h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="24" y="100" width="56" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="160" y="40" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="160" y="152" width="64" height="64" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="128" x2="120" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,184H144a23.9,23.9,0,0,1-24-24V96a23.9,23.9,0,0,1,24-24h16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_seven` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_seven />
  <Heroicons.number_square_seven class="w-4 h-4" />
  <Heroicons.number_square_seven solid />
  <Heroicons.number_square_seven mini />
  <Heroicons.number_square_seven outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_seven(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM159.6,86.5l-32,96A7.9,7.9,0,0,1,120,188a7.3,7.3,0,0,1-2.5-.4,8,8,0,0,1-5.1-10.1L140.9,92H104a8,8,0,0,1,0-16h48a7.9,7.9,0,0,1,6.5,3.3A8.1,8.1,0,0,1,159.6,86.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 84 152 84 120 180" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `handbag` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.handbag />
  <Heroicons.handbag class="w-4 h-4" />
  <Heroicons.handbag solid />
  <Heroicons.handbag mini />
  <Heroicons.handbag outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def handbag(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" opacity="0.2"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M239,206.2l-14.3-128A15.9,15.9,0,0,0,208.8,64H175.3a48,48,0,0,0-94.6,0H47.2A15.9,15.9,0,0,0,31.3,78.2L17,206.2a16.2,16.2,0,0,0,4,12.5A15.9,15.9,0,0,0,32.9,224H223.1a15.9,15.9,0,0,0,11.9-5.3A16.2,16.2,0,0,0,239,206.2ZM96,104a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Zm1-40a32,32,0,0,1,62,0Zm79,40a8,8,0,0,1-16,0V88a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208.8,72H47.2a8.1,8.1,0,0,0-8,7.1L25,207.1a8,8,0,0,0,7.9,8.9H223.1a8,8,0,0,0,7.9-8.9l-14.2-128A8.1,8.1,0,0,0,208.8,72Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,104V72a40,40,0,0,1,80,0v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `funnel_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.funnel_simple />
  <Heroicons.funnel_simple class="w-4 h-4" />
  <Heroicons.funnel_simple solid />
  <Heroicons.funnel_simple mini />
  <Heroicons.funnel_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def funnel_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="128" x2="192" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="80" x2="232" y2="80" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="176" x2="152" y2="176" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="24" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="176" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="128" x2="192" y2="128" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="80" x2="232" y2="80" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="176" x2="152" y2="176" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120H64a8,8,0,0,0,0,16H192a8,8,0,0,0,0-16Z"/><path d="M232,72H24a8,8,0,0,0,0,16H232a8,8,0,0,0,0-16Z"/><path d="M152,168H104a8,8,0,0,0,0,16h48a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="24" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="176" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="128" x2="192" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="24" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="176" x2="152" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `gender_neuter` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.gender_neuter />
  <Heroicons.gender_neuter class="w-4 h-4" />
  <Heroicons.gender_neuter solid />
  <Heroicons.gender_neuter mini />
  <Heroicons.gender_neuter outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def gender_neuter(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" opacity="0.2"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,104a80,80,0,1,0-88,79.6V232a8,8,0,0,0,16,0V183.6A80.1,80.1,0,0,0,208,104Zm-80,64a64,64,0,1,1,64-64A64.1,64.1,0,0,1,128,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="104" r="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="176" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_center_horizontal` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_center_horizontal />
  <Heroicons.align_center_horizontal class="w-4 h-4" />
  <Heroicons.align_center_horizontal solid />
  <Heroicons.align_center_horizontal mini />
  <Heroicons.align_center_horizontal outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_center_horizontal(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="56" width="128" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="52" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="204" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="108" x2="128" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="64" y="52" width="128" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="148" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="64" y="56" width="128" height="56" rx="8" opacity="0.2"/><rect x="40" y="144" width="176" height="56" rx="8" opacity="0.2"/><line x1="128" y1="32" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="64" y="56" width="128" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,152v40a16,16,0,0,1-16,16H136v16a8,8,0,0,1-16,0V208H48a16,16,0,0,1-16-16V152a16,16,0,0,1,16-16h72V120H72a16,16,0,0,1-16-16V64A16,16,0,0,1,72,48h48V32a8,8,0,0,1,16,0V48h48a16,16,0,0,1,16,16v40a16,16,0,0,1-16,16H136v16h72A16,16,0,0,1,224,152Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="200" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="112" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="64" y="56" width="128" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="200" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="112" x2="128" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="64" y="56" width="128" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="144" width="176" height="56" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_simple_high` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_simple_high />
  <Heroicons.hourglass_simple_high class="w-4 h-4" />
  <Heroicons.hourglass_simple_high solid />
  <Heroicons.hourglass_simple_high mini />
  <Heroicons.hourglass_simple_high outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_simple_high(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="72" x2="184" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="80" x2="176" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 128 184 72 72 72 128 128" opacity="0.2"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="72" x2="184" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M139.3,128l50.4-50.3h0L208,59.3A16,16,0,0,0,196.7,32H59.3A16,16,0,0,0,48,59.3L116.7,128,48,196.7A16,16,0,0,0,59.3,224H196.7A16,16,0,0,0,208,196.7Zm57.4-80-16,16H75.3l-16-16ZM59.3,208,128,139.3,196.7,208Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="72" y1="72" x2="184" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M59.3,40H196.7a8,8,0,0,1,5.6,13.7L128,128,53.7,53.7A8,8,0,0,1,59.3,40Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M59.3,216H196.7a8,8,0,0,0,5.6-13.7L128,128,53.7,202.3A8,8,0,0,0,59.3,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="72" y1="72" x2="184" y2="72" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_double_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_double_right />
  <Heroicons.caret_double_right class="w-4 h-4" />
  <Heroicons.caret_double_right solid />
  <Heroicons.caret_double_right mini />
  <Heroicons.caret_double_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_double_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 48 136 128 56 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 48 216 128 136 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 48 136 128 56 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="136 48 216 128 136 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 48 136 128 56 208 56 48" opacity="0.2"/><polygon points="56 48 136 128 56 208 56 48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="136 48 216 128 136 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M221.7,122.3l-80-80a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,128,48v60.7L61.7,42.3a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,48,48V208a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3L128,147.3V208a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l80-80A8.1,8.1,0,0,0,221.7,122.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 48 136 128 56 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="136 48 216 128 136 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="56 48 136 128 56 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="136 48 216 128 136 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_up />
  <Heroicons.caret_up class="w-4 h-4" />
  <Heroicons.caret_up solid />
  <Heroicons.caret_up mini />
  <Heroicons.caret_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 160 128 80 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 160 128 80 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="48 160 128 80 208 160 48 160" opacity="0.2"/><polygon points="48 160 128 80 208 160 48 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,154.3l-80-80a8.1,8.1,0,0,0-11.4,0l-80,80a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,48,168H208a8,8,0,0,0,7.4-4.9A8.4,8.4,0,0,0,213.7,154.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 160 128 80 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="48 160 128 80 208 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_in` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_in />
  <Heroicons.arrows_in class="w-4 h-4" />
  <Heroicons.arrows_in solid />
  <Heroicons.arrows_in mini />
  <Heroicons.arrows_in outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_in(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 104 152 104 152 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 152 104 152 104 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 192 152 152 192 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="208" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 64 104 104 64 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="48" x2="104" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 104 152 104 152 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 152 104 152 104 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="152 192 152 152 192 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="208" y1="208" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="104 64 104 104 64 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="48" x2="104" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 104 152 104 152 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 152 104 152 104 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 192 152 152 192 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="208" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="104 64 104 104 64 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="48" x2="104" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M144,104V64a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7L172,72.7l30.3-30.4a8.1,8.1,0,0,1,11.4,11.4L183.3,84l14.4,14.3a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,192,112H152A8,8,0,0,1,144,104Zm-40,40H64a8,8,0,0,0-7.4,4.9,8.4,8.4,0,0,0,1.7,8.8L72.7,172,42.3,202.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L84,183.3l14.3,14.4A8.3,8.3,0,0,0,104,200a8.5,8.5,0,0,0,3.1-.6A8,8,0,0,0,112,192V152A8,8,0,0,0,104,144Zm79.3,28,14.4-14.3a8.4,8.4,0,0,0,1.7-8.8A8,8,0,0,0,192,144H152a8,8,0,0,0-8,8v40a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3L172,183.3l30.3,30.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4ZM107.1,56.6a8.4,8.4,0,0,0-8.8,1.7L84,72.7,53.7,42.3A8.1,8.1,0,0,0,42.3,53.7L72.7,84,58.3,98.3a8.4,8.4,0,0,0-1.7,8.8A8,8,0,0,0,64,112h40a8,8,0,0,0,8-8V64A8,8,0,0,0,107.1,56.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 104 152 104 152 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 152 104 152 104 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 192 152 152 192 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="208" y1="208" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="104 64 104 104 64 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="48" x2="104" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="192 104 152 104 152 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="48" x2="152" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 152 104 152 104 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="208" x2="104" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 192 152 152 192 152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="208" y1="208" x2="152" y2="152" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="104 64 104 104 64 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="48" x2="104" y2="104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `brackets_curly` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.brackets_curly />
  <Heroicons.brackets_curly class="w-4 h-4" />
  <Heroicons.brackets_curly solid />
  <Heroicons.brackets_curly mini />
  <Heroicons.brackets_curly outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def brackets_curly(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,40c-64,0,0,88-64,88,64,0,0,88,64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,40c64,0,0,88,64,88-64,0,0,88-64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,40c-64,0,0,88-64,88,64,0,0,88,64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,40c64,0,0,88,64,88-64,0,0,88-64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,40c-64,0,0,88-64,88,64,0,0,88,64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,40c64,0,0,88,64,88-64,0,0,88-64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M43.2,128a30.4,30.4,0,0,1,8,10.3c4.8,9.9,4.8,22,4.8,33.7,0,24.3,1,36,24,36a8,8,0,0,1,0,16c-17.5,0-29.3-6.1-35.2-18.3C40,195.8,40,183.7,40,172c0-24.3-1-36-24-36a8,8,0,0,1,0-16c23,0,24-11.7,24-36,0-11.7,0-23.8,4.8-33.7C50.7,38.1,62.5,32,80,32a8,8,0,0,1,0,16C57,48,56,59.7,56,84c0,11.7,0,23.8-4.8,33.7A30.4,30.4,0,0,1,43.2,128ZM240,120c-23,0-24-11.7-24-36,0-11.7,0-23.8-4.8-33.7C205.3,38.1,193.5,32,176,32a8,8,0,0,0,0,16c23,0,24,11.7,24,36,0,11.7,0,23.8,4.8,33.7a30.4,30.4,0,0,0,8,10.3,30.4,30.4,0,0,0-8,10.3c-4.8,9.9-4.8,22-4.8,33.7,0,24.3-1,36-24,36a8,8,0,0,0,0,16c17.5,0,29.3-6.1,35.2-18.3,4.8-9.9,4.8-22,4.8-33.7,0-24.3,1-36,24-36a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,40c-64,0,0,88-64,88,64,0,0,88,64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,40c64,0,0,88,64,88-64,0,0,88-64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,40c-64,0,0,88-64,88,64,0,0,88,64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,40c64,0,0,88,64,88-64,0,0,88-64,88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `person_simple_run` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.person_simple_run />
  <Heroicons.person_simple_run class="w-4 h-4" />
  <Heroicons.person_simple_run solid />
  <Heroicons.person_simple_run mini />
  <Heroicons.person_simple_run outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def person_simple_run(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,101.6s32-29.6,80,8c50.5,39.4,80,24,80,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M135.1,108.8C130.7,129.2,101.6,207,32,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.6,161.2C128.5,165,176,180,176,232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,109.6s32-29.6,80,8c50.5,39.4,80,24,80,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M110.6,161.2C128.5,165,176,180,176,232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M131.7,120.4C121.8,149.4,91.8,206,32,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="56" r="24" opacity="0.2"/><circle cx="152" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,101.6s32-29.6,80,8c50.5,39.4,80,24,80,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M135.1,108.8C130.7,129.2,101.6,207,32,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M110.6,161.2C128.5,165,176,180,176,232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M120,56a32,32,0,1,1,32,32A32.1,32.1,0,0,1,120,56Zm104,77.6a8,8,0,0,0-8-8,7.8,7.8,0,0,0-3.7.9h.1c-.1,0-6.5,3.1-18.2,1.9s-29.5-6.4-53.3-25.1c-15-11.7-38.3-24.6-64.4-19.6C60.7,86.7,51.6,94.8,50.6,95.7a7.9,7.9,0,0,0-.5,11.3,8,8,0,0,0,11.3.5c1.1-1,25.8-22.4,64.6,4.6a147.9,147.9,0,0,1-21.9,44.4h0l-2.4,3.1c-18.9,24.2-42.1,35-68.9,32.3a8,8,0,1,0-1.6,16c3.3.3,6.4.4,9.5.4,32.6,0,56.6-17.4,73.2-38.3,19.4,5.2,54.1,20.2,54.1,61.9a8,8,0,0,0,16,0c0-24.7-10.1-45.4-29.2-59.9-10.4-7.9-22-12.8-31.2-15.8a164.5,164.5,0,0,0,16-34.1c25.8,17.9,46.2,22.3,60,22.3s19.5-3.5,20.1-3.9h0A7.8,7.8,0,0,0,224,133.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,101.6s32-29.6,80,8c50.5,39.4,80,24,80,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M135.1,108.8C130.7,129.2,101.6,207,32,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M110.6,161.2C128.5,165,176,180,176,232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="152" cy="56" r="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,101.6s32-29.6,80,8c50.5,39.4,80,24,80,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M135.1,108.8C130.7,129.2,101.6,207,32,200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M110.6,161.2C128.5,165,176,180,176,232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `push_pin_slash` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.push_pin_slash />
  <Heroicons.push_pin_slash class="w-4 h-4" />
  <Heroicons.push_pin_slash solid />
  <Heroicons.push_pin_slash mini />
  <Heroicons.push_pin_slash outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def push_pin_slash(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.7,90.3,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c7.6-10.1,19.1-29.9,12.7-50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.9,143.1l41.4-41.4a8,8,0,0,0,0-11.4L165.7,29.7a8,8,0,0,0-11.4,0L116.4,67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M93.7,90.3,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c7.6-10.1,19.1-29.9,12.7-50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M190.6,137.4l35.7-35.7a8,8,0,0,0,0-11.4L165.7,29.7a8,8,0,0,0-11.4,0L122,62" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M154.3,29.7,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c8.4-11.1,21.6-34.1,10.1-57l62.3-62.3a8,8,0,0,0,0-11.4L165.7,29.7A8,8,0,0,0,154.3,29.7Z" opacity="0.2"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M93.7,90.3,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c7.6-10.1,19.1-29.9,12.7-50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.9,143.1l41.4-41.4a8,8,0,0,0,0-11.4L165.7,29.7a8,8,0,0,0-11.4,0L116.4,67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.9,210.6a7.9,7.9,0,0,1-.5,11.3A8.2,8.2,0,0,1,208,224a8,8,0,0,1-5.9-2.6l-26.4-29.1c-2.5,14.2-9.9,26.2-15.4,33.5a16.3,16.3,0,0,1-11.7,6.4h-1.1a16.1,16.1,0,0,1-11.3-4.7L88,179.3,53.7,213.7a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4L76.7,168,28.3,119.6a15.9,15.9,0,0,1,1.3-23.8C45.8,82.8,61.5,79.7,73.5,80L42.1,45.4A8,8,0,0,1,53.9,34.6ZM232,84.7,171.3,24a16.1,16.1,0,0,0-22.6,0l-38,38a8,8,0,0,0-.3,11L179,148.4a8.1,8.1,0,0,0,5.7,2.7h.2a8,8,0,0,0,5.7-2.4L232,107.3a15.9,15.9,0,0,0,0-22.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M93.7,90.3,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c7.6-10.1,19.1-29.9,12.7-50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184.9,143.1l41.4-41.4a8,8,0,0,0,0-11.4L165.7,29.7a8,8,0,0,0-11.4,0L116.4,67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="168" x2="48" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="40" x2="208" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M93.7,90.3,92,92S64.3,78.1,34.6,102.1A8,8,0,0,0,34,114L141.8,221.8a8,8,0,0,0,12.1-.8c7.6-10.1,19.1-29.9,12.7-50.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184.9,143.1l41.4-41.4a8,8,0,0,0,0-11.4L165.7,29.7a8,8,0,0,0-11.4,0L116.4,67.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `note` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.note />
  <Heroicons.note class="w-4 h-4" />
  <Heroicons.note solid />
  <Heroicons.note mini />
  <Heroicons.note outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def note(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="96" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="108" x2="160" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="148" x2="116" y2="148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="215.3 156 156 156 156 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="216 160 160 160 160 216 216 160" opacity="0.2"/><line x1="96" y1="96" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H156.7a15.9,15.9,0,0,0,11.3-4.7L219.3,168a15.9,15.9,0,0,0,4.7-11.3V48A16,16,0,0,0,208,32ZM96,88h64a8,8,0,0,1,0,16H96a8,8,0,0,1,0-16Zm32,80H96a8,8,0,0,1,0-16h32a8,8,0,0,1,0,16ZM96,136a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm64,68.7V160h44.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="96" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="160" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="96" x2="160" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="128" x2="160" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="160" x2="128" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M156.7,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8V156.7a7.9,7.9,0,0,1-2.3,5.6l-51.4,51.4A7.9,7.9,0,0,1,156.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="215.3 160 160 160 160 215.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_four` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_four />
  <Heroicons.number_four class="w-4 h-4" />
  <Heroicons.number_four solid />
  <Heroicons.number_four mini />
  <Heroicons.number_four outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_four(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 24 76 160 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="172" y1="96" x2="172" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 24 76 160 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="172" y1="96" x2="172" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 24 76 160 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="172" y1="96" x2="172" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M180,96V224a8,8,0,0,1-16,0V168H76a8,8,0,0,1-6.5-3.4,7.9,7.9,0,0,1-1-7.3l48-136a8,8,0,0,1,15,5.4L87.3,152H164V96a8,8,0,0,1,16,0Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 24 76 160 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="172" y1="96" x2="172" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="124 24 76 160 172 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="172" y1="96" x2="172" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cloudning` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cloudning />
  <Heroicons.cloudning class="w-4 h-4" />
  <Heroicons.cloudning solid />
  <Heroicons.cloudning mini />
  <Heroicons.cloudning outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cloudning(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 240 154.3 200 104 200 130.3 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 240 154.3 200 104 200 130.3 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" opacity="0.2"/><polyline points="128 240 154.3 200 104 200 130.3 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M134.6,168l-15.8,24H154a8,8,0,0,1,6.2,2.7,7.8,7.8,0,0,1,.7,9.7l-26.2,40A8.2,8.2,0,0,1,128,248a8.4,8.4,0,0,1-5.1-1.8,8.3,8.3,0,0,1-1.5-10.8l18-27.4H104.2a8.3,8.3,0,0,1-6.2-2.7,8.1,8.1,0,0,1-.7-9.7L115.4,168H76.8c-28.7,0-52.6-23-52.8-51.7A52,52,0,0,1,61.5,66.1a4,4,0,0,1,5,4.7,91.4,91.4,0,0,0-2.5,21,8.3,8.3,0,0,0,7.5,8.2A8,8,0,0,0,80,92a76.4,76.4,0,0,1,5-27.2h0A76,76,0,1,1,156,168Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 240 154.3 200 104 200 130.3 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="128 240 154.3 200 104 200 130.3 160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,92a68,68,0,1,1,68,68H76a44,44,0,0,1,0-88,42.5,42.5,0,0,1,14.3,2.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `hourglass_medium` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.hourglass_medium />
  <Heroicons.hourglass_medium class="w-4 h-4" />
  <Heroicons.hourglass_medium solid />
  <Heroicons.hourglass_medium mini />
  <Heroicons.hourglass_medium outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def hourglass_medium(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74.7" y1="88" x2="180.9" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="69.3" y1="84" x2="186.2" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 128 180.9 88 74.7 88 128 128" opacity="0.2"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="74.7" y1="88" x2="180.9" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M193.6,88.4A16.1,16.1,0,0,0,200,75.6V40a16,16,0,0,0-16-16H72A16,16,0,0,0,56,40V76a16.1,16.1,0,0,0,6.4,12.8l18.1,13.6h0L114.7,128,62.4,167.2A16.1,16.1,0,0,0,56,180v36a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V180.4a16.1,16.1,0,0,0-6.4-12.8L141.3,128,164,110.8ZM72,40H184V75.6L178.2,80H77.3L72,76ZM184,180.4V216H72V180l48-36v24a8,8,0,0,0,16,0V144.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="74.7" y1="88" x2="180.9" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="74.7" y1="88" x2="180.9" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128,67.2,82.4A8.1,8.1,0,0,1,64,76V40a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8V75.6a8.1,8.1,0,0,1-3.2,6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128,67.2,173.6A8.1,8.1,0,0,0,64,180v36a8,8,0,0,0,8,8H184a8,8,0,0,0,8-8V180.4a8.1,8.1,0,0,0-3.2-6.4L128,128h0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `behance_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.behance_logo />
  <Heroicons.behance_logo class="w-4 h-4" />
  <Heroicons.behance_logo solid />
  <Heroicons.behance_logo mini />
  <Heroicons.behance_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def behance_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,152h80a39.9,39.9,0,1,0-11.7,28.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,124H98a34,34,0,0,1,0,68H32V64H86a30,30,0,0,1,0,60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="76" x2="232" y2="76" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M28,124H90a34,34,0,0,1,0,68H28V64H78a30,30,0,0,1,0,60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,152h80a40,40,0,1,0-40,40,39.5,39.5,0,0,0,17.5-4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,152h80a39.9,39.9,0,1,0-11.7,28.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,124H98a34,34,0,0,1,0,68H32V64H86a30,30,0,0,1,0,60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,80a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H168A8,8,0,0,1,160,80Zm88,72a8,8,0,0,1-8,8H169a32.1,32.1,0,0,0,31,24,31.5,31.5,0,0,0,22.6-9.4,8,8,0,0,1,11.3,0,7.9,7.9,0,0,1,0,11.3A47.4,47.4,0,0,1,200,200a48,48,0,1,1,48-48Zm-17-8a32,32,0,0,0-62,0Zm-91,14a42,42,0,0,1-42,42H32a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H86a38,38,0,0,1,28.3,63.3A42,42,0,0,1,140,158ZM40,116H86a22,22,0,0,0,0-44H40Zm84,42a26.1,26.1,0,0,0-26-26H40v52H98A26.1,26.1,0,0,0,124,158Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,152h80a39.9,39.9,0,1,0-11.7,28.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,124H98a34,34,0,0,1,0,68H32V64H86a30,30,0,0,1,0,60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="168" y1="80" x2="232" y2="80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,152h80a39.9,39.9,0,1,0-11.7,28.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,124H98a34,34,0,0,1,0,68H32V64H86a30,30,0,0,1,0,60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `align_center_horizontal_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.align_center_horizontal_simple />
  <Heroicons.align_center_horizontal_simple class="w-4 h-4" />
  <Heroicons.align_center_horizontal_simple solid />
  <Heroicons.align_center_horizontal_simple mini />
  <Heroicons.align_center_horizontal_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def align_center_horizontal_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="168" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="80" rx="8" opacity="0.2"/><rect x="40" y="88" width="176" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="168" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,96v64a16,16,0,0,1-16,16H136v32a8,8,0,0,1-16,0V176H48a16,16,0,0,1-16-16V96A16,16,0,0,1,48,80h72V48a8,8,0,0,1,16,0V80h72A16,16,0,0,1,224,96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="168" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="80" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="48" x2="128" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="168" x2="128" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `pencil` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.pencil />
  <Heroicons.pencil class="w-4 h-4" />
  <Heroicons.pencil solid />
  <Heroicons.pencil mini />
  <Heroicons.pencil outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def pencil(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95.5" y1="215.5" x2="40.5" y2="160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="156" x2="100" y2="212" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="164" y1="92" x2="72" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,120,136,64l26.3-26.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z" opacity="0.2"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="95.5" y1="215.5" x2="40.5" y2="160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,76.7,179.3,32a15.9,15.9,0,0,0-22.6,0L130.3,58.3h0L36.7,152A15.9,15.9,0,0,0,32,163.3V208a16,16,0,0,0,16,16H92.7a15.9,15.9,0,0,0,11.3-4.7l120-120A16.1,16.1,0,0,0,224,76.7ZM51.3,160,144,67.3,160.7,84,68,176.7ZM48,179.3,76.7,208H48Zm48,25.4L79.3,188,172,95.3,188.7,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="95.5" y1="215.5" x2="40.5" y2="160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="136" y1="64" x2="192" y2="120" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="164" y1="92" x2="68" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="95.5" y1="215.5" x2="40.5" y2="160.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_text` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_text />
  <Heroicons.file_text class="w-4 h-4" />
  <Heroicons.file_text solid />
  <Heroicons.file_text mini />
  <Heroicons.file_text outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_text(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="168" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="132" x2="160" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="96" y1="172" x2="160" y2="172" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="168" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,82.3l-56-56A8.1,8.1,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8.1,8.1,0,0,0,213.7,82.3ZM160,176H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm-8-56V44l44,44Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="96" y1="168" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="96" y1="168" x2="160" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `chalkboard_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.chalkboard_simple />
  <Heroicons.chalkboard_simple class="w-4 h-4" />
  <Heroicons.chalkboard_simple solid />
  <Heroicons.chalkboard_simple mini />
  <Heroicons.chalkboard_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def chalkboard_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,168V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 200 120 168 184 168 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,160V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 200 120 160 184 160 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="120" y="168" width="64" height="32" opacity="0.2"/><path d="M32,168V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 200 120 168 184 168 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,192h-8V56a16,16,0,0,0-16-16H40A16,16,0,0,0,24,56V192H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-40,0H128V176a8,8,0,0,1,8-8h56a8,8,0,0,1,8,8Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,168V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 200 120 168 184 168 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,168V56a8,8,0,0,1,8-8H216a8,8,0,0,1,8,8V168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="16" y1="200" x2="240" y2="200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 200 120 168 184 168 184 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `export` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.export />
  <Heroicons.export class="w-4 h-4" />
  <Heroicons.export solid />
  <Heroicons.export mini />
  <Heroicons.export outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def export(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 58 128 16 170 58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96h24a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 58 128 16 170 58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="128" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,100h24a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V108a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="48" y="96" width="160" height="120" opacity="0.2"/><polyline points="86 58 128 16 170 58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="128" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,96h24a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,88H120V35.3L91.7,63.6A8,8,0,0,1,80.3,52.3l42-42a8.1,8.1,0,0,1,11.4,0l42,42a8,8,0,0,1,0,11.3,8,8,0,0,1-11.4,0L136,35.3Zm64,0H136v40a8,8,0,0,1-16,0V88H56a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V104A16,16,0,0,0,200,88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 58 128 16 170 58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="128" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,96h24a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="86 58 128 16 170 58" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="128" x2="128" y2="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,96h24a8,8,0,0,1,8,8V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bookmarks` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bookmarks />
  <Heroicons.bookmarks class="w-4 h-4" />
  <Heroicons.bookmarks solid />
  <Heroicons.bookmarks mini />
  <Heroicons.bookmarks outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bookmarks(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,64V40a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V192l-32-22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M160,224l-52-40L56,224V80a8,8,0,0,1,8-8h88a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M88,72V40a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V184l-40-30.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,32H96a8,8,0,0,0-8,8V64h72a8,8,0,0,1,8,8v97.1L200,192V40A8,8,0,0,0,192,32Z" opacity="0.2"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M88,64V40a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V192l-32-22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M192,24H96A16,16,0,0,0,80,40V56H64A16,16,0,0,0,48,72V224a8,8,0,0,0,8,8,8.2,8.2,0,0,0,4.7-1.5L112,193.8l51.4,36.7a7.8,7.8,0,0,0,8.3.6A8.1,8.1,0,0,0,176,224V184.7l19.4,13.8A7.7,7.7,0,0,0,200,200a8,8,0,0,0,8-8V40A16,16,0,0,0,192,24Zm0,152.5L176,165V72a16,16,0,0,0-16-16H96V40h96Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M88,64V40a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V192l-32-22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,224l-56-40L56,224V72a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M88,64V40a8,8,0,0,1,8-8h96a8,8,0,0,1,8,8V192l-32-22.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrows_vertical` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrows_vertical />
  <Heroicons.arrows_vertical class="w-4 h-4" />
  <Heroicons.arrows_vertical solid />
  <Heroicons.arrows_vertical mini />
  <Heroicons.arrows_vertical outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrows_vertical(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 56 128 24 160 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="232" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 200 128 232 96 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 60 128 28 160 60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="228" x2="128" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="160 196 128 228 96 196" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 56 128 24 160 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="232" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="160 200 128 232 96 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M167.4,196.9a8.4,8.4,0,0,1-1.7,8.8l-32,32a8.2,8.2,0,0,1-11.4,0l-32-32a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,96,192h24V64H96a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l32-32a8.1,8.1,0,0,1,11.4,0l32,32a8.4,8.4,0,0,1,1.7,8.8A8,8,0,0,1,160,64H136V192h24A8,8,0,0,1,167.4,196.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 56 128 24 160 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="232" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="160 200 128 232 96 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="96 56 128 24 160 56" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="232" x2="128" y2="24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="160 200 128 232 96 200" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_bend_right_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_bend_right_up />
  <Heroicons.arrow_bend_right_up class="w-4 h-4" />
  <Heroicons.arrow_bend_right_up solid />
  <Heroicons.arrow_bend_right_up mini />
  <Heroicons.arrow_bend_right_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_bend_right_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 80 152 32 200 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,224a96,96,0,0,0,96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 80 152 32 200 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56,224a96,96,0,0,0,96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 80 152 32 200 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,224a96,96,0,0,0,96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M207.4,83.1A8,8,0,0,1,200,88H160v40A104.2,104.2,0,0,1,56,232a8,8,0,0,1,0-16,88.1,88.1,0,0,0,88-88V88H104a8,8,0,0,1-7.4-4.9,8.4,8.4,0,0,1,1.7-8.8l48-48a8.1,8.1,0,0,1,11.4,0l48,48A8.4,8.4,0,0,1,207.4,83.1Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 80 152 32 200 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M56,224a96,96,0,0,0,96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="104 80 152 32 200 80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M56,224a96,96,0,0,0,96-96V32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_xls` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_xls />
  <Heroicons.file_xls class="w-4 h-4" />
  <Heroicons.file_xls solid />
  <Heroicons.file_xls mini />
  <Heroicons.file_xls outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_xls(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 168 120 216 148 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52" y1="168" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="168" x2="52" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="44" y1="164" x2="84" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="84" y1="164" x2="44" y2="220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 164 120 220 148 220" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 36 148 100 212 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M44,124V44a8,8,0,0,1,8-8H156l56,56v32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M180,214.4a23.7,23.7,0,0,0,15,5.6c9,0,17-3.4,17-14.6,0-17.9-32-10-32-26.8,0-9,6-14.6,15-14.6a23.7,23.7,0,0,1,15,5.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 168 120 216 148 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="52" y1="168" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="168" x2="52" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M94.4,172.8,80,192l14.4,19.2a8,8,0,0,1-1.6,11.2A7.7,7.7,0,0,1,88,224a8,8,0,0,1-6.4-3.2L70,205.3,58.4,220.8A8,8,0,0,1,52,224a7.7,7.7,0,0,1-4.8-1.6,8,8,0,0,1-1.6-11.2L60,192,45.6,172.8a8,8,0,1,1,12.8-9.6L70,178.7l11.6-15.5a8,8,0,0,1,12.8,9.6ZM148,208H128V168a8,8,0,0,0-16,0v48a8,8,0,0,0,8,8h28a8,8,0,0,0,0-16Zm45.7-24.2c-3.1-.8-8.6-2.3-9.7-3.6V180c0-3.3,2.4-5,7-5a18.4,18.4,0,0,1,10,3.2h-.1A8.3,8.3,0,0,0,206,180a8,8,0,0,0,8-8,7.6,7.6,0,0,0-2.9-6.1h0A33.4,33.4,0,0,0,191,159c-13.5,0-23,8.6-23,21s13,17,21.6,19.3c3.4.9,7,1.8,9.2,3.1s1.2,1,1.2,1.6,0,5-9,5a18.4,18.4,0,0,1-10-3.2h.1A8.3,8.3,0,0,0,176,204a8,8,0,0,0-8,8,7.6,7.6,0,0,0,2.9,6.1h0A33.4,33.4,0,0,0,191,225c15.7,0,25-7.9,25-21S202,186,193.7,183.8ZM216,88v40a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40A16,16,0,0,1,56,24h96a8.1,8.1,0,0,1,5.7,2.3l56,56A8.1,8.1,0,0,1,216,88Zm-20,0L152,44V88Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 168 120 216 148 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="52" y1="168" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="88" y1="168" x2="52" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="120 168 120 216 148 216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="52" y1="168" x2="88" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="88" y1="168" x2="52" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,212a25.2,25.2,0,0,0,15,5c9,0,17-3,17-13,0-16-32-9-32-24,0-8,6-13,15-13a25.2,25.2,0,0,1,15,5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,128V40a8,8,0,0,1,8-8h96l56,56v40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `lock_simple_open` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.lock_simple_open />
  <Heroicons.lock_simple_open class="w-4 h-4" />
  <Heroicons.lock_simple_open solid />
  <Heroicons.lock_simple_open mini />
  <Heroicons.lock_simple_open outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def lock_simple_open(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M92,88V52a36,36,0,0,1,71.8-4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" opacity="0.2"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,80H100V52a28,28,0,0,1,56,0,8,8,0,0,0,16,0,44,44,0,0,0-88,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="88" width="176" height="128" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92,88V52a36,36,0,0,1,72,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `folder_minus` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.folder_minus />
  <Heroicons.folder_minus class="w-4 h-4" />
  <Heroicons.folder_minus solid />
  <Heroicons.folder_minus mini />
  <Heroicons.folder_minus outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def folder_minus(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,80V52a8,8,0,0,1,8-8H92.4a8,8,0,0,1,6,2.7L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M98.3,50.3,128,80H32V56a8,8,0,0,1,8-8H92.7A7.9,7.9,0,0,1,98.3,50.3Z" opacity="0.2"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,72H131.3L104,44.7A16.1,16.1,0,0,0,92.7,40H40A16,16,0,0,0,24,56V200.6A15.4,15.4,0,0,0,39.4,216H216.9A15.2,15.2,0,0,0,232,200.9V88A16,16,0,0,0,216,72ZM40,56H92.7l16,16H40Zm112,96H104a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216.9,208H39.4a7.4,7.4,0,0,1-7.4-7.4V80H216a8,8,0,0,1,8,8V200.9A7.1,7.1,0,0,1,216.9,208Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,80V56a8,8,0,0,1,8-8H92.7a7.9,7.9,0,0,1,5.6,2.3L128,80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="104" y1="144" x2="152" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `laptop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.laptop />
  <Heroicons.laptop class="w-4 h-4" />
  <Heroicons.laptop solid />
  <Heroicons.laptop mini />
  <Heroicons.laptop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def laptop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,176V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,176H232a0,0,0,0,1,0,0v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V176A0,0,0,0,1,24,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="88" x2="112" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,168V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16v96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,168H232a0,0,0,0,1,0,0v24a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V168a0,0,0,0,1,0,0Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="144" y1="96" x2="112" y2="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,176V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16V176Z" opacity="0.2"/><path d="M40,176V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,176H232a0,0,0,0,1,0,0v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V176A0,0,0,0,1,24,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="88" x2="112" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,168h-8V72a24.1,24.1,0,0,0-24-24H56A24.1,24.1,0,0,0,32,72v96H24a8,8,0,0,0-8,8v16a24.1,24.1,0,0,0,24,24H216a24.1,24.1,0,0,0,24-24V176A8,8,0,0,0,232,168ZM112,72h32a8,8,0,0,1,0,16H112a8,8,0,0,1,0-16ZM224,192a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8v-8H224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,176V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,176H232a0,0,0,0,1,0,0v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V176A0,0,0,0,1,24,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="144" y1="88" x2="112" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,176V72A16,16,0,0,1,56,56H200a16,16,0,0,1,16,16V176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,176H232a0,0,0,0,1,0,0v16a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V176A0,0,0,0,1,24,176Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="144" y1="88" x2="112" y2="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `person` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.person />
  <Heroicons.person class="w-4 h-4" />
  <Heroicons.person solid />
  <Heroicons.person mini />
  <Heroicons.person outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def person(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="28" opacity="0.2"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" opacity="0.2"/><circle cx="127.9" cy="44" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="36"/><path d="M211.7,139.5,172.3,88.9l-.6-.7A27.8,27.8,0,0,0,151.9,80h-48a27.8,27.8,0,0,0-19.8,8.2l-.7.7L44.1,139.5a20,20,0,0,0,28.3,28.3l14.1-11L66.6,219.5a20.2,20.2,0,0,0-.4,14.7,19.9,19.9,0,0,0,10.4,11.3,19.6,19.6,0,0,0,15.2.7,20.2,20.2,0,0,0,11.1-9.8l25-39.4,25,39.4a20.4,20.4,0,0,0,11,9.8,20.9,20.9,0,0,0,6.9,1.2,19.1,19.1,0,0,0,8.4-1.9,20.2,20.2,0,0,0,10.4-11.3,19.7,19.7,0,0,0-.5-14.7l-19.8-62.7,14.1,11a20,20,0,0,0,27.9-.4,19.7,19.7,0,0,0,5.8-14.1A19.9,19.9,0,0,0,211.7,139.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="127.9" cy="44" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M153.9,134.7l34.8,27a12,12,0,0,0,16.9-16.9L166,93.9A19.9,19.9,0,0,0,151.9,88h-48a20.3,20.3,0,0,0-14.2,5.9L50.1,144.8a12,12,0,0,0,17,16.9l34.8-27L74.1,222.3a12,12,0,0,0,21.8,10.2l32-50.4h0l32,50.4a12,12,0,1,0,21.7-10.2Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tennis_ball` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tennis_ball />
  <Heroicons.tennis_ball class="w-4 h-4" />
  <Heroicons.tennis_ball solid />
  <Heroicons.tennis_ball mini />
  <Heroicons.tennis_ball outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tennis_ball(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M127.8,32A95.9,95.9,0,0,1,32,127.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128.2A95.9,95.9,0,0,0,128.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M127.8,32A95.9,95.9,0,0,1,32,127.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M224,128.2A95.9,95.9,0,0,0,128.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,128a95.9,95.9,0,0,1,95.8-96h0A95.9,95.9,0,0,1,32,127.8Z" opacity="0.2"/><path d="M128.2,224.2a95.9,95.9,0,0,1,95.8-96h0A95.9,95.9,0,0,1,128.2,224Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M127.8,32A95.9,95.9,0,0,1,32,127.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M224,128.2A95.9,95.9,0,0,0,128.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M224,136h3.3a4,4,0,0,1,3.9,4.5,104.2,104.2,0,0,1-94.8,91.1A88,88,0,0,1,224,136Zm-73.5,14.5A102.9,102.9,0,0,1,224,120h3.1a4,4,0,0,0,4.1-4.4,104.1,104.1,0,0,0-90.9-90.9,4,4,0,0,0-4.4,4.1,103.7,103.7,0,0,1-30.4,76.7A102.9,102.9,0,0,1,32,136H28.9a4,4,0,0,0-4.1,4.4,104.1,104.1,0,0,0,90.9,90.9,4,4,0,0,0,4.4-4.1A103.7,103.7,0,0,1,150.5,150.5ZM94.2,94.2a87.6,87.6,0,0,0,25.7-65.7,4,4,0,0,0-4.5-3.7,104,104,0,0,0-90.6,90.6,4,4,0,0,0,3.8,4.5A87.8,87.8,0,0,0,94.2,94.2Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M127.8,32A95.9,95.9,0,0,1,32,127.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M224,128.2A95.9,95.9,0,0,0,128.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M127.8,32A95.9,95.9,0,0,1,32,127.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M224,128.2A95.9,95.9,0,0,0,128.2,224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_line_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_line_down />
  <Heroicons.arrow_line_down class="w-4 h-4" />
  <Heroicons.arrow_line_down solid />
  <Heroicons.arrow_line_down mini />
  <Heroicons.arrow_line_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_line_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 112 128 184 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="56 104 128 176 200 104" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 112 128 184 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.3,117.7a8.4,8.4,0,0,1-1.7-8.8A8,8,0,0,1,56,104h64V32a8,8,0,0,1,16,0v72h64a8,8,0,0,1,7.4,4.9,8.4,8.4,0,0,1-1.7,8.8l-72,72a8.2,8.2,0,0,1-11.4,0ZM216,208H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="56 112 128 184 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="32" x2="128" y2="184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="56 112 128 184 200 112" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="40" y1="216" x2="216" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_u_up_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_u_up_right />
  <Heroicons.arrow_u_up_right class="w-4 h-4" />
  <Heroicons.arrow_u_up_right solid />
  <Heroicons.arrow_u_up_right mini />
  <Heroicons.arrow_u_up_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_u_up_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 136 224 88 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,200H88a56,56,0,0,1-56-56h0A56,56,0,0,1,88,88H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 136 224 88 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M176,200H88a56,56,0,0,1-56-56h0A56,56,0,0,1,88,88H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 136 224 88 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M176,200H88a56,56,0,0,1-56-56h0A56,56,0,0,1,88,88H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M168,136V96H88a48,48,0,0,0,0,96h88a8,8,0,0,1,0,16H88A64,64,0,0,1,88,80h80V40a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48a8.1,8.1,0,0,1,0,11.4l-48,48A8.3,8.3,0,0,1,176,144a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,168,136Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 136 224 88 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M176,200H88a56,56,0,0,1-56-56h0A56,56,0,0,1,88,88H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="176 136 224 88 176 40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M176,200H88a56,56,0,0,1-56-56h0A56,56,0,0,1,88,88H224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `cell_signal_low` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.cell_signal_low />
  <Heroicons.cell_signal_low class="w-4 h-4" />
  <Heroicons.cell_signal_low solid />
  <Heroicons.cell_signal_low mini />
  <Heroicons.cell_signal_low outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def cell_signal_low(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,216H27.3a8,8,0,0,1-5.6-13.7L80,144Z" opacity="0.2"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M198.1,28.5A15.9,15.9,0,0,0,180.7,32L74.3,138.3h0L16,196.7A16,16,0,0,0,27.3,224H192a16,16,0,0,0,16-16V43.3A16,16,0,0,0,198.1,28.5ZM192,208H88V147.3l104-104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M200,43.3V208a8,8,0,0,1-8,8H27.3a8,8,0,0,1-5.6-13.7L186.3,37.7A8,8,0,0,1,200,43.3Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="144" x2="80" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `crop` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.crop />
  <Heroicons.crop class="w-4 h-4" />
  <Heroicons.crop solid />
  <Heroicons.crop mini />
  <Heroicons.crop outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def crop(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="24" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 24 64 192 232 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 160 192 64 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="232" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="24" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 24 64 192 232 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="192 152 192 64 104 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="192" y1="232" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="24" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 24 64 192 232 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 160 192 64 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="232" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M240,192a8,8,0,0,1-8,8H200v32a8,8,0,0,1-16,0V200H64a8,8,0,0,1-8-8V72H24a8,8,0,0,1,0-16H56V24a8,8,0,0,1,16,0V184H232A8,8,0,0,1,240,192ZM96,72h88v88a8,8,0,0,0,16,0V64a8,8,0,0,0-8-8H96a8,8,0,0,0,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="24" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 24 64 192 232 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="192 160 192 64 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="232" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="64" y1="64" x2="24" y2="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 24 64 192 232 192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="192 160 192 64 96 64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="232" x2="192" y2="192" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `football` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.football />
  <Heroicons.football class="w-4 h-4" />
  <Heroicons.football solid />
  <Heroicons.football mini />
  <Heroicons.football outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def football(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.6,184.6c-41.6,41.5-99.2,38.2-127,33.5a24,24,0,0,1-19.7-19.7c-4.7-27.8-8-85.4,33.5-127s99.2-38.2,127-33.5a24,24,0,0,1,19.7,19.7C222.8,85.4,226.1,143,184.6,184.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124.7" y1="102.1" x2="153.9" y2="131.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.1" y1="124.7" x2="131.3" y2="153.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148.2" y1="36.2" x2="219.8" y2="107.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36.2" y1="148.2" x2="107.8" y2="219.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.6,184.6c-41.6,41.5-99.2,38.2-127,33.5a24,24,0,0,1-19.7-19.7c-4.7-27.8-8-85.4,33.5-127s99.2-38.2,127-33.5a24,24,0,0,1,19.7,19.7C222.8,85.4,226.1,143,184.6,184.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="124.7" y1="102.1" x2="153.9" y2="131.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="102.1" y1="124.7" x2="131.3" y2="153.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="148.2" y1="36.2" x2="219.8" y2="107.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="36.2" y1="148.2" x2="107.8" y2="219.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.6,184.6c-41.6,41.5-99.2,38.2-127,33.5a24,24,0,0,1-19.7-19.7c-4.7-27.8-8-85.4,33.5-127s99.2-38.2,127-33.5a24,24,0,0,1,19.7,19.7C222.8,85.4,226.1,143,184.6,184.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="124.7" y1="102.1" x2="153.9" y2="131.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="102.1" y1="124.7" x2="131.3" y2="153.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="148.2" y1="36.2" x2="219.8" y2="107.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="36.2" y1="148.2" x2="107.8" y2="219.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M36.2,148.2C39,123,48.2,94.7,71.4,71.4S123,39,148.2,36.2h0l71.6,71.6h0c-2.8,25.2-12,53.5-35.2,76.8S133,217,107.8,219.8Z" opacity="0.2"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M226,56.3A32.3,32.3,0,0,0,199.7,30c-31.4-5.3-90.4-7.7-133.9,35.8S24.7,168.3,30,199.7A32.3,32.3,0,0,0,56.3,226a206.3,206.3,0,0,0,33.3,2.8c31.1,0,69.8-7.7,100.6-38.6C233.7,146.7,231.3,87.7,226,56.3ZM59,210.2A15.9,15.9,0,0,1,45.8,197a178.7,178.7,0,0,1-2.7-30.6l46.5,46.5A179.5,179.5,0,0,1,59,210.2ZM165.7,101.7l-15.1,15,9,9a8,8,0,0,1,0,11.3,8.3,8.3,0,0,1-5.7,2.3,8,8,0,0,1-5.6-2.3l-9-9L128,139.3l9,9a8,8,0,0,1,0,11.3,7.8,7.8,0,0,1-5.7,2.3,7.6,7.6,0,0,1-5.6-2.3l-9-9-15,15.1a8.2,8.2,0,0,1-11.4,0,8.1,8.1,0,0,1,0-11.4l15.1-15-9-9A8,8,0,0,1,107.7,119l9,9L128,116.7l-9-9a8,8,0,0,1,11.3-11.3l9,9,15-15.1a8.1,8.1,0,0,1,11.4,11.4Zm.7-58.6A179.5,179.5,0,0,1,197,45.8,15.9,15.9,0,0,1,210.2,59a178.7,178.7,0,0,1,2.7,30.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.6,184.6c-41.6,41.5-99.2,38.2-127,33.5a24,24,0,0,1-19.7-19.7c-4.7-27.8-8-85.4,33.5-127s99.2-38.2,127-33.5a24,24,0,0,1,19.7,19.7C222.8,85.4,226.1,143,184.6,184.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="124.7" y1="102.1" x2="153.9" y2="131.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="102.1" y1="124.7" x2="131.3" y2="153.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="148.2" y1="36.2" x2="219.8" y2="107.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="36.2" y1="148.2" x2="107.8" y2="219.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184.6,184.6c-41.6,41.5-99.2,38.2-127,33.5a24,24,0,0,1-19.7-19.7c-4.7-27.8-8-85.4,33.5-127s99.2-38.2,127-33.5a24,24,0,0,1,19.7,19.7C222.8,85.4,226.1,143,184.6,184.6Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="96" x2="96" y2="160" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="124.7" y1="102.1" x2="153.9" y2="131.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="102.1" y1="124.7" x2="131.3" y2="153.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="148.2" y1="36.2" x2="219.8" y2="107.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="36.2" y1="148.2" x2="107.8" y2="219.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `caret_circle_up` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.caret_circle_up />
  <Heroicons.caret_circle_up class="w-4 h-4" />
  <Heroicons.caret_circle_up solid />
  <Heroicons.caret_circle_up mini />
  <Heroicons.caret_circle_up outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def caret_circle_up(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="164 144 128 104 92 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="24"/><polyline points="164 144 128 104 92 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="164 144 128 104 92 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm41.4,125.9A8.2,8.2,0,0,1,164,152a7.9,7.9,0,0,1-5.9-2.6L128,116,97.9,149.4a8,8,0,0,1-11.8-10.8l36-40a8.3,8.3,0,0,1,11.8,0l36,40A8,8,0,0,1,169.4,149.9Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="12"/><polyline points="164 144 128 104 92 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="8"/><polyline points="164 144 128 104 92 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `currency_eth` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.currency_eth />
  <Heroicons.currency_eth class="w-4 h-4" />
  <Heroicons.currency_eth solid />
  <Heroicons.currency_eth mini />
  <Heroicons.currency_eth outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def currency_eth(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="16" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 128 128 168 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 16 216 128 128 240 40 128 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="16" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="216 128 128 168 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polygon points="128 16 216 128 128 240 40 128 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="40 128 128 240 216 128 128 168 40 128" opacity="0.2"/><line x1="128" y1="16" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="216 128 128 168 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polygon points="128 16 216 128 128 240 40 128 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M222.3,123.1l-88-112a8,8,0,0,0-12.6,0l-88,112a7.8,7.8,0,0,0,0,9.8l88,112a8,8,0,0,0,12.6,0l88-112A7.8,7.8,0,0,0,222.3,123.1ZM136,155.6V39.1l67.4,85.8Zm-16,0L52.6,124.9,120,39.1Zm0,17.6v43.7l-53.4-68Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="16" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="216 128 128 168 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polygon points="128 16 216 128 128 240 40 128 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="16" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="216 128 128 168 40 128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polygon points="128 16 216 128 128 240 40 128 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `first_aid` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.first_aid />
  <Heroicons.first_aid class="w-4 h-4" />
  <Heroicons.first_aid solid />
  <Heroicons.first_aid mini />
  <Heroicons.first_aid outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def first_aid(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" opacity="0.2"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,104v48a16,16,0,0,1-16,16H168v48a16,16,0,0,1-16,16H104a16,16,0,0,1-16-16V168H40a16,16,0,0,1-16-16V104A16,16,0,0,1,40,88H88V40a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V88h48A16,16,0,0,1,232,104Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M96,160H40a8,8,0,0,1-8-8V104a8,8,0,0,1,8-8H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8V96h56a8,8,0,0,1,8,8v48a8,8,0,0,1-8,8H160v56a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V160Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `fingerprint` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.fingerprint />
  <Heroicons.fingerprint class="w-4 h-4" />
  <Heroicons.fingerprint solid />
  <Heroicons.fingerprint mini />
  <Heroicons.fingerprint outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def fingerprint(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.7,184.9A127.4,127.4,0,0,0,64,128,64.2,64.2,0,0,1,88,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128a191.2,191.2,0,0,1-24,93" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,128a32,32,0,0,1,64,0,222.3,222.3,0,0,1-21.3,95.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.6,184a294.6,294.6,0,0,0,5.4-56,96,96,0,0,0-192,0,94.4,94.4,0,0,1-5.5,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.8,160a161.9,161.9,0,0,1-18.1,47.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,64.5a70.1,70.1,0,0,1,8-.5,64,64,0,0,1,64,64,260.6,260.6,0,0,1-2,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.9,192c-1.5,5.9-3.2,11.8-5.1,17.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M108,128a20,20,0,0,1,40,0,210.5,210.5,0,0,1-25,99.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M128,68a60,60,0,0,1,60,60c0,8.1-.4,16.1-1.1,24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M51.3,192.2A130.4,130.4,0,0,0,68,128,59.7,59.7,0,0,1,88,83.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M103.3,168A168.7,168.7,0,0,1,83,217.3" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M179.8,192a233.4,233.4,0,0,1-8.4,26.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M22.3,160A91.7,91.7,0,0,0,28,128h0a100,100,0,0,1,200,0h0a293.3,293.3,0,0,1-7,64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.7,184.9A127.4,127.4,0,0,0,64,128,64.2,64.2,0,0,1,88,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M128,128a191.2,191.2,0,0,1-24,93" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,128a32,32,0,0,1,64,0,222.3,222.3,0,0,1-21.3,95.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M218.6,184a294.6,294.6,0,0,0,5.4-56,96,96,0,0,0-192,0,94.4,94.4,0,0,1-5.5,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M92.8,160a161.9,161.9,0,0,1-18.1,47.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,64.5a70.1,70.1,0,0,1,8-.5,64,64,0,0,1,64,64,260.6,260.6,0,0,1-2,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M183.9,192c-1.5,5.9-3.2,11.8-5.1,17.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104.2,104.2,0,0,0,24,128a88,88,0,0,1-5,29.3,8.1,8.1,0,0,0,4.9,10.3,8.2,8.2,0,0,0,2.6.4,8.1,8.1,0,0,0,7.6-5.3A104.5,104.5,0,0,0,40,128a88,88,0,0,1,176,0,283.6,283.6,0,0,1-5.3,54.5,8.1,8.1,0,0,0,6.3,9.4h1.6a7.9,7.9,0,0,0,7.8-6.4A299.9,299.9,0,0,0,232,128,104.1,104.1,0,0,0,128,24Z"/><path d="M93,84.3A8,8,0,0,0,83,71.8,71.6,71.6,0,0,0,56,128a118.7,118.7,0,0,1-12.5,53.4,8.1,8.1,0,0,0,3.6,10.7,7.8,7.8,0,0,0,3.6.8,8.1,8.1,0,0,0,7.2-4.4A136.1,136.1,0,0,0,72,128,55.9,55.9,0,0,1,93,84.3Z"/><path d="M128,120a8,8,0,0,0-8,8,183.3,183.3,0,0,1-23,89.1,8.1,8.1,0,0,0,3.2,10.9,7.5,7.5,0,0,0,3.8,1,8,8,0,0,0,7-4.1A199.8,199.8,0,0,0,136,128,8,8,0,0,0,128,120Z"/><path d="M128,88a40.1,40.1,0,0,0-40,40,8,8,0,0,0,16,0,24,24,0,0,1,48,0,214.3,214.3,0,0,1-20.5,92,8,8,0,0,0,3.8,10.7,8.3,8.3,0,0,0,3.4.7,8.1,8.1,0,0,0,7.3-4.6A230,230,0,0,0,168,128,40.1,40.1,0,0,0,128,88Z"/><path d="M94.4,152.2a7.9,7.9,0,0,0-9.4,6.2,154.8,154.8,0,0,1-17.2,45.5,8,8,0,0,0,2.9,10.9,8.3,8.3,0,0,0,4,1.1,8.2,8.2,0,0,0,6.9-4,163.2,163.2,0,0,0,19-50.3A7.9,7.9,0,0,0,94.4,152.2Z"/><path d="M128,56a68,68,0,0,0-9,.6,8,8,0,1,0,2,15.8c2.3-.2,4.7-.4,7-.4a56,56,0,0,1,56,56,245.7,245.7,0,0,1-1.9,31,7.9,7.9,0,0,0,6.9,8.9h1a8.1,8.1,0,0,0,8-7,279.7,279.7,0,0,0,2-33A72.1,72.1,0,0,0,128,56Z"/><path d="M185.9,184.3a7.9,7.9,0,0,0-9.7,5.7c-1.5,5.7-3.2,11.4-5,17a7.9,7.9,0,0,0,5,10.1,7.8,7.8,0,0,0,2.6.4,7.9,7.9,0,0,0,7.5-5.4c2-6,3.8-12,5.4-18.1A8,8,0,0,0,185.9,184.3Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.7,184.9A127.4,127.4,0,0,0,64,128,64.2,64.2,0,0,1,88,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M128,128a191.2,191.2,0,0,1-24,93" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,128a32,32,0,0,1,64,0,222.3,222.3,0,0,1-21.3,95.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M218.6,184a294.6,294.6,0,0,0,5.4-56,96,96,0,0,0-192,0,94.4,94.4,0,0,1-5.5,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M92.8,160a161.9,161.9,0,0,1-18.1,47.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M120,64.5a70.1,70.1,0,0,1,8-.5,64,64,0,0,1,64,64,260.6,260.6,0,0,1-2,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M183.9,192c-1.5,5.9-3.2,11.8-5.1,17.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M50.7,184.9A127.4,127.4,0,0,0,64,128,64.2,64.2,0,0,1,88,78" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M128,128a191.2,191.2,0,0,1-24,93" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,128a32,32,0,0,1,64,0,222.3,222.3,0,0,1-21.3,95.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M218.6,184a294.6,294.6,0,0,0,5.4-56,96,96,0,0,0-192,0,94.4,94.4,0,0,1-5.5,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M92.8,160a161.9,161.9,0,0,1-18.1,47.9" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M120,64.5a70.1,70.1,0,0,1,8-.5,64,64,0,0,1,64,64,260.6,260.6,0,0,1-2,32" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M183.9,192c-1.5,5.9-3.2,11.8-5.1,17.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `shuffle_angular` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.shuffle_angular />
  <Heroicons.shuffle_angular class="w-4 h-4" />
  <Heroicons.shuffle_angular solid />
  <Heroicons.shuffle_angular mini />
  <Heroicons.shuffle_angular outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def shuffle_angular(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H83.9a7.8,7.8,0,0,1,6.5,3.4l75.2,105.2a7.8,7.8,0,0,0,6.5,3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.7,100.5l17.9-25.1a7.8,7.8,0,0,1,6.5-3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184H83.9a7.8,7.8,0,0,0,6.5-3.4l17.9-25.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H83.9a7.8,7.8,0,0,1,6.5,3.4l75.2,105.2a7.8,7.8,0,0,0,6.5,3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M32,184H83.9a7.8,7.8,0,0,0,6.5-3.4l13-18.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M152.6,93.6l13-18.2a7.8,7.8,0,0,1,6.5-3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H83.9a7.8,7.8,0,0,1,6.5,3.4l75.2,105.2a7.8,7.8,0,0,0,6.5,3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M147.7,100.5l17.9-25.1a7.8,7.8,0,0,1,6.5-3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,184H83.9a7.8,7.8,0,0,0,6.5-3.4l17.9-25.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,178.3a8.1,8.1,0,0,1,0,11.4l-24,24A8.3,8.3,0,0,1,208,216a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,200,208V192H172.1a16.1,16.1,0,0,1-13-6.7L83.9,80H32a8,8,0,0,1,0-16H83.9a16.1,16.1,0,0,1,13,6.7L172.1,176H200V160a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7ZM143,107a8,8,0,0,0,11.2-1.9L172.1,80H200V96a8,8,0,0,0,4.9,7.4,8.5,8.5,0,0,0,3.1.6,8.3,8.3,0,0,0,5.7-2.3l24-24a8.1,8.1,0,0,0,0-11.4l-24-24a8.4,8.4,0,0,0-8.8-1.7A8,8,0,0,0,200,48V64H172.1a16.1,16.1,0,0,0-13,6.7L141.2,95.8A8,8,0,0,0,143,107Zm-30,42a8,8,0,0,0-11.2,1.9L83.9,176H32a8,8,0,0,0,0,16H83.9a16.1,16.1,0,0,0,13-6.7l17.9-25.1A8,8,0,0,0,113,149Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H83.9a7.8,7.8,0,0,1,6.5,3.4l75.2,105.2a7.8,7.8,0,0,0,6.5,3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M147.7,100.5l17.9-25.1a7.8,7.8,0,0,1,6.5-3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M32,184H83.9a7.8,7.8,0,0,0,6.5-3.4l17.9-25.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,72H83.9a7.8,7.8,0,0,1,6.5,3.4l75.2,105.2a7.8,7.8,0,0,0,6.5,3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 48 232 72 208 96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="208 160 232 184 208 208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M147.7,100.5l17.9-25.1a7.8,7.8,0,0,1,6.5-3.4H232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M32,184H83.9a7.8,7.8,0,0,0,6.5-3.4l17.9-25.1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `tree_evergreen` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.tree_evergreen />
  <Heroicons.tree_evergreen class="w-4 h-4" />
  <Heroicons.tree_evergreen solid />
  <Heroicons.tree_evergreen mini />
  <Heroicons.tree_evergreen outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def tree_evergreen(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="192" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" opacity="0.2"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="192" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M231.2,195.5A8,8,0,0,1,224,200H136v40a8,8,0,0,1-16,0V200H32a8,8,0,0,1-6.3-12.9L71.6,128H48a8,8,0,0,1-6.3-12.9l80-104a8,8,0,0,1,12.6,0l80,104A8,8,0,0,1,208,128H184.4l45.9,59.1A8,8,0,0,1,231.2,195.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="192" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="128 16 48 120 88 120 32 192 224 192 168 120 208 120 128 16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="192" x2="128" y2="240" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `atom` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.atom />
  <Heroicons.atom class="w-4 h-4" />
  <Heroicons.atom solid />
  <Heroicons.atom mini />
  <Heroicons.atom outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def atom(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="116" ry="44" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><ellipse cx="128" cy="128" rx="116" ry="44" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="128" cy="128" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" opacity="0.2"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><ellipse cx="128" cy="128" rx="116" ry="44" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M196.1,128a195.3,195.3,0,0,0,19.2-32.7c11.1-24.6,11.2-44.2.4-55C198.2,22.9,162.5,35.4,128,60,93.5,35.4,57.8,22.9,40.3,40.3c-10.8,10.8-10.7,30.4.4,55A195.3,195.3,0,0,0,59.9,128a195.3,195.3,0,0,0-19.2,32.7c-11.1,24.6-11.2,44.2-.4,55,5.6,5.6,13.1,8.1,21.9,8.1,18.4,0,42.4-11.1,65.8-27.8,23.4,16.7,47.4,27.8,65.8,27.8,8.8,0,16.3-2.5,21.9-8.1,10.8-10.8,10.7-30.4-.4-55A195.3,195.3,0,0,0,196.1,128Zm-2.3-79.7c4.8,0,8.4,1.1,10.6,3.3,5.6,5.7,4.2,19.5-3.7,37.1a169.7,169.7,0,0,1-14.8,25.9c-6.4-7.9-13.5-15.7-21.1-23.4s-15.4-14.5-23.5-21.1C163.2,55.2,182,48.3,193.8,48.3ZM176.1,128a277.3,277.3,0,0,1-22.6,25.5A314.1,314.1,0,0,1,128,176.2a314.1,314.1,0,0,1-25.5-22.7A277.3,277.3,0,0,1,79.9,128a277.3,277.3,0,0,1,22.6-25.5A314.1,314.1,0,0,1,128,79.8a314.1,314.1,0,0,1,25.5,22.7A277.3,277.3,0,0,1,176.1,128ZM55.3,88.7C47.4,71.1,46,57.3,51.6,51.6c2.2-2.2,5.8-3.3,10.6-3.3,11.8,0,30.6,6.9,52.5,21.8-8.1,6.6-16,13.7-23.5,21.1s-14.7,15.5-21.1,23.4A169.7,169.7,0,0,1,55.3,88.7ZM51.6,204.4c-5.6-5.7-4.2-19.5,3.7-37.1a169.7,169.7,0,0,1,14.8-25.9c6.4,7.9,13.5,15.7,21.1,23.4s15.4,14.5,23.5,21.1C83.9,206.8,59.2,212,51.6,204.4Zm152.8,0c-2.2,2.2-5.8,3.3-10.6,3.3-11.8,0-30.6-6.9-52.5-21.8,8.1-6.6,16-13.7,23.5-21.1s14.7-15.5,21.1-23.4a169.7,169.7,0,0,1,14.8,25.9C208.6,184.9,210,198.7,204.4,204.4ZM140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><ellipse cx="128" cy="128" rx="116" ry="44" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="128" cy="128" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><ellipse cx="128" cy="128" rx="44" ry="116" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><ellipse cx="128" cy="128" rx="116" ry="44" transform="translate(-53 128) rotate(-45)" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="128" cy="128" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_elbow_down_right` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_elbow_down_right />
  <Heroicons.arrow_elbow_down_right class="w-4 h-4" />
  <Heroicons.arrow_elbow_down_right solid />
  <Heroicons.arrow_elbow_down_right mini />
  <Heroicons.arrow_elbow_down_right outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_elbow_down_right(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 176 160 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 32 64 176 208 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 176 160 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="64 32 64 176 208 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 176 160 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="64 32 64 176 208 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M213.7,181.7l-48,48A8.3,8.3,0,0,1,160,232a8.5,8.5,0,0,1-3.1-.6A8,8,0,0,1,152,224V184H64a8,8,0,0,1-8-8V32a8,8,0,0,1,16,0V168h80V128a8,8,0,0,1,4.9-7.4,8.4,8.4,0,0,1,8.8,1.7l48,48A8.1,8.1,0,0,1,213.7,181.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 176 160 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="64 32 64 176 208 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="160 128 208 176 160 224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="64 32 64 176 208 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `sidebar_simple` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.sidebar_simple />
  <Heroicons.sidebar_simple class="w-4 h-4" />
  <Heroicons.sidebar_simple solid />
  <Heroicons.sidebar_simple mini />
  <Heroicons.sidebar_simple outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def sidebar_simple(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M40,208a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H88V208Z" opacity="0.2"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H88V56H216V200Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="88" y1="48" x2="88" y2="208" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="32" y="48" width="192" height="160" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `file_dotted` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.file_dotted />
  <Heroicons.file_dotted class="w-4 h-4" />
  <Heroicons.file_dotted solid />
  <Heroicons.file_dotted mini />
  <Heroicons.file_dotted outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def file_dotted(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,224H56a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 32 152 32 208 88 208 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,64V40a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,176v40a8,8,0,0,1-8,8h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="104" x2="48" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="152" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="148 32 148 92 208 92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M72,224H56a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 32 152 32 208 88 208 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M48,64V40a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M208,176v40a8,8,0,0,1-8,8h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="48" y1="104" x2="48" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="112" y1="224" x2="152" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="152 32 152 88 208 88 152 32" opacity="0.2"/><path d="M72,224H56a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 32 152 32 208 88 208 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,64V40a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,176v40a8,8,0,0,1-8,8h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="104" x2="48" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="224" x2="152" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,224a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V184a8,8,0,0,1,16,0v32H72A8,8,0,0,1,80,224ZM80,24H56A16,16,0,0,0,40,40V64a8,8,0,0,0,16,0V40H80a8,8,0,0,0,0-16ZM216,88a7.8,7.8,0,0,0-2.4-5.7l-55.9-56h-.2l-.4-.4h-.2l-.4-.3c-.1-.1-.2-.1-.2-.2l-.5-.3h-.2l-.5-.3H155l-.7-.3H120a8,8,0,0,0,0,16h24V88a8,8,0,0,0,8,8h48v40a8,8,0,0,0,16,0V88Zm-8,80a8,8,0,0,0-8,8v40h-8a8,8,0,0,0,0,16h8a16,16,0,0,0,16-16V176A8,8,0,0,0,208,168ZM48,152a8,8,0,0,0,8-8V104a8,8,0,0,0-16,0v40A8,8,0,0,0,48,152Zm104,64H112a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,224H56a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 32 152 32 208 88 208 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M48,64V40a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M208,176v40a8,8,0,0,1-8,8h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="48" y1="104" x2="48" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="112" y1="224" x2="152" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M72,224H56a8,8,0,0,1-8-8V184" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 32 152 32 208 88 208 136" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M48,64V40a8,8,0,0,1,8-8H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="152 32 152 88 208 88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M208,176v40a8,8,0,0,1-8,8h-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="48" y1="104" x2="48" y2="144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="112" y1="224" x2="152" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `volleyball` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.volleyball />
  <Heroicons.volleyball class="w-4 h-4" />
  <Heroicons.volleyball solid />
  <Heroicons.volleyball mini />
  <Heroicons.volleyball outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def volleyball(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="44.9" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="211.1" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M116.6,32.7A96.1,96.1,0,0,1,173.1,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M51.1,185.6A96,96,0,0,1,105.5,89" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216.3,165.8A96,96,0,0,1,105.5,167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="44.9" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="211.1" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="128" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M116.6,32.7A96.1,96.1,0,0,1,173.1,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M51.1,185.6A96,96,0,0,1,105.5,89" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M216.3,165.8A96,96,0,0,1,105.5,167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M80,211.2a96.2,96.2,0,0,0,136.3-45.4h0A96,96,0,0,1,105.5,167L80,211.1Z" opacity="0.2"/><path d="M80,211.1a96.3,96.3,0,0,1-28.9-25.5h0A96,96,0,0,1,105.5,89L128,128Z" opacity="0.2"/><path d="M80,44.9a96,96,0,0,1,36.6-12.2h0A96.1,96.1,0,0,1,173.1,128H128Z" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="44.9" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="211.1" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="128" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M116.6,32.7A96.1,96.1,0,0,1,173.1,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M51.1,185.6A96,96,0,0,1,105.5,89" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216.3,165.8A96,96,0,0,1,105.5,167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M232,127.6A104,104,0,1,0,37.9,180c2,3.4,4.2,6.7,6.5,9.9l.5.7a103.9,103.9,0,0,0,178.2-20.7,7.2,7.2,0,0,0,.9-2,105.7,105.7,0,0,0,8-39.3v-1ZM44.5,155.9A88.2,88.2,0,0,1,77.3,56.1L94.4,85.8a104.4,104.4,0,0,0-49.9,70.1Zm32.8,44a84.2,84.2,0,0,1-18.4-17.4,88,88,0,0,1,43.5-82.9L118.8,128Zm132.4-39.3a88.2,88.2,0,0,1-93.5,3.8L132.6,136h83A89.3,89.3,0,0,1,209.7,160.6ZM181.4,120a105,105,0,0,0-35.7-78.2A87.9,87.9,0,0,1,215.6,120Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="44.9" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="211.1" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="128" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M116.6,32.7A96.1,96.1,0,0,1,173.1,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M51.1,185.6A96,96,0,0,1,105.5,89" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M216.3,165.8A96,96,0,0,1,105.5,167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="44.9" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="211.1" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="128" x2="128" y2="128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M116.6,32.7A96.1,96.1,0,0,1,173.1,128" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M51.1,185.6A96,96,0,0,1,105.5,89" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M216.3,165.8A96,96,0,0,1,105.5,167" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_square_five` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_square_five />
  <Heroicons.number_square_five class="w-4 h-4" />
  <Heroicons.number_square_five solid />
  <Heroicons.number_square_five mini />
  <Heroicons.number_square_five outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_square_five(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80H111.8L104,128.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80H111.8L104,128.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><rect x="40" y="40" width="176" height="176" rx="8" opacity="0.2"/><path d="M152,80H111.8L104,128.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm-84.1,80a36,36,0,1,1-25.5,61.5,8,8,0,1,1,11.2-11.4,20.1,20.1,0,0,0,14.3,5.9,19.9,19.9,0,0,0,14.2-5.9,19.8,19.8,0,0,0,0-28.2,19.9,19.9,0,0,0-14.2-5.9,20.1,20.1,0,0,0-14.3,5.9,8,8,0,0,1-13.5-7l7.8-48.2a8,8,0,0,1,7.9-6.7H152a8,8,0,0,1,0,16H118.6l-4.1,25.2A37.3,37.3,0,0,1,123.9,112Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80H111.8L104,128.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M152,80H111.8L104,128.2a28,28,0,1,1,0,39.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `airplane_landing` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.airplane_landing />
  <Heroicons.airplane_landing class="w-4 h-4" />
  <Heroicons.airplane_landing solid />
  <Heroicons.airplane_landing mini />
  <Heroicons.airplane_landing outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def airplane_landing(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" opacity="0.2"/><line x1="96" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M248,216a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16H240A8,8,0,0,1,248,216Zm-24-28a4.1,4.1,0,0,0,2.4-.8A4,4,0,0,0,228,184V148.3a36.1,36.1,0,0,0-26.4-34.7l-46.9-13L123.5,46a4.3,4.3,0,0,0-2.2-1.8l-13.5-4.5A11.9,11.9,0,0,0,97,41.4a11.6,11.6,0,0,0-5,9.7V82.6L66.8,74.7,51.5,46.1a4.1,4.1,0,0,0-2.2-1.9L35.8,39.7A11.9,11.9,0,0,0,25,41.4a11.6,11.6,0,0,0-5,9.7v52.6a36.1,36.1,0,0,0,26.3,34.7l176.6,49.5Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="96" y1="216" x2="240" y2="216" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M24,103.7V51.1a8,8,0,0,1,10.5-7.6L48,48,64,78,96,88V51.1a8,8,0,0,1,10.5-7.6L120,48l32,56,48.6,13.5A31.9,31.9,0,0,1,224,148.3V184L47.4,134.5A31.9,31.9,0,0,1,24,103.7Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `bell_z` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.bell_z />
  <Heroicons.bell_z class="w-4 h-4" />
  <Heroicons.bell_z solid />
  <Heroicons.bell_z mini />
  <Heroicons.bell_z outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def bell_z(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" opacity="0.2"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M220.8,175.9c-5.9-10.2-13-29.6-13-63.9v-7.1c0-44.3-35.5-80.6-79.2-80.9H128a79.9,79.9,0,0,0-79.8,80v8c0,34.3-7.1,53.7-13,63.9a16.2,16.2,0,0,0-.1,16.1A15.9,15.9,0,0,0,49,200H88a40,40,0,0,0,80,0h39a15.9,15.9,0,0,0,13.9-8A16.2,16.2,0,0,0,220.8,175.9ZM128,224a24.1,24.1,0,0,1-24-24h48A24.1,24.1,0,0,1,128,224Zm20-72H108a7.9,7.9,0,0,1-7.2-4.6,7.8,7.8,0,0,1,1.1-8.5l29-34.9H108a8,8,0,0,1,0-16h40a7.9,7.9,0,0,1,7.2,4.6,7.8,7.8,0,0,1-1.1,8.5l-29,34.9H148a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M56.2,104a71.9,71.9,0,0,1,72.3-72c39.6.3,71.3,33.2,71.3,72.9V112c0,35.8,7.5,56.6,14.1,68a8,8,0,0,1-6.9,12H49a8,8,0,0,1-6.9-12c6.6-11.4,14.1-32.2,14.1-68Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M96,192v8a32,32,0,0,0,64,0v-8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="108 96 148 96 108 144 148 144" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `arrow_circle_up_left` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.arrow_circle_up_left />
  <Heroicons.arrow_circle_up_left class="w-4 h-4" />
  <Heroicons.arrow_circle_up_left solid />
  <Heroicons.arrow_circle_up_left mini />
  <Heroicons.arrow_circle_up_left outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def arrow_circle_up_left(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-miterlimit="10" stroke-width="16"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm33.7,137.7a8.2,8.2,0,0,1-11.4,0L108,119.3V148a8,8,0,0,1-16,0V100a8.5,8.5,0,0,1,.6-3.1,8.2,8.2,0,0,1,4.3-4.3A8.5,8.5,0,0,1,100,92h48a8,8,0,0,1,0,16H119.3l42.4,42.3A8.1,8.1,0,0,1,161.7,161.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="148 100 100 100 100 148" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="156" y1="156" x2="100" y2="100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `framer_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.framer_logo />
  <Heroicons.framer_logo class="w-4 h-4" />
  <Heroicons.framer_logo solid />
  <Heroicons.framer_logo mini />
  <Heroicons.framer_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def framer_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" opacity="0.2"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M208,100V32a8,8,0,0,0-8-8H56a8,8,0,0,0-5.5,13.8L107.9,92H56a8,8,0,0,0-8,8v68a7.9,7.9,0,0,0,2.5,5.8l72,68A8.2,8.2,0,0,0,128,244a7.4,7.4,0,0,0,3.2-.7A7.9,7.9,0,0,0,136,236V176h64a8,8,0,0,0,5.5-13.8L148.1,108H200A8,8,0,0,0,208,100Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><polygon points="56 100 56 168 128 236 128 168 200 168 56 32 200 32 200 100 56 100" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `git_merge` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.git_merge />
  <Heroicons.git_merge class="w-4 h-4" />
  <Heroicons.git_merge solid />
  <Heroicons.git_merge mini />
  <Heroicons.git_merge outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def git_merge(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="140" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,144H130.5a47.8,47.8,0,0,1-36.9-17.3L68,96v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="188" cy="140" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M160,144H130.5a47.8,47.8,0,0,1-36.9-17.3L68,96v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="68" r="28" opacity="0.2"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="188" cy="140" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M160,144H130.5a47.8,47.8,0,0,1-36.9-17.3L68,96v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M188,104a36.1,36.1,0,0,0-35.8,32H130.5a40,40,0,0,1-30.8-14.4L82.5,100.9A35.9,35.9,0,1,0,60,103.1v49.8a36,36,0,1,0,16,0V118.1l11.5,13.7a55.4,55.4,0,0,0,43,20.2h23.6A36,36,0,1,0,188,104ZM88,188a20,20,0,1,1-20-20A20.1,20.1,0,0,1,88,188Zm100-28a20,20,0,1,1,20-20A20.1,20.1,0,0,1,188,160Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="188" cy="140" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M160,144H130.5a47.8,47.8,0,0,1-36.9-17.3L68,96v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="68" cy="68" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="188" cy="140" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M160,144H130.5a47.8,47.8,0,0,1-36.9-17.3L68,96v64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `thumbs_down` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.thumbs_down />
  <Heroicons.thumbs_down class="w-4 h-4" />
  <Heroicons.thumbs_down solid />
  <Heroicons.thumbs_down mini />
  <Heroicons.thumbs_down outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def thumbs_down(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,152l40,80a32,32,0,0,0,32-32V176h61.9a15.9,15.9,0,0,0,15.8-18l-12-96a16,16,0,0,0-15.8-14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M80,152l40,80a32,32,0,0,0,32-32V176h61.9a15.9,15.9,0,0,0,15.8-18l-12-96a16,16,0,0,0-15.8-14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8Z" opacity="0.2"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,152l40,80a32,32,0,0,0,32-32V176h61.9a15.9,15.9,0,0,0,15.8-18l-12-96a16,16,0,0,0-15.8-14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M237.7,157l-12-96a24.1,24.1,0,0,0-23.8-21H32A16,16,0,0,0,16,56v88a16,16,0,0,0,16,16H75l37.8,75.6A8.2,8.2,0,0,0,120,240a40.1,40.1,0,0,0,40-40V184h53.9a23.9,23.9,0,0,0,23.8-27ZM72,144H32V56H72Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56A8,8,0,0,1,32,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M80,152l40,80a32,32,0,0,0,32-32V176h61.9a15.9,15.9,0,0,0,15.8-18l-12-96a16,16,0,0,0-15.8-14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M32,48H80a0,0,0,0,1,0,0V152a0,0,0,0,1,0,0H32a8,8,0,0,1-8-8V56A8,8,0,0,1,32,48Z" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M80,152l40,80a32,32,0,0,0,32-32V176h61.9a15.9,15.9,0,0,0,15.8-18l-12-96a16,16,0,0,0-15.8-14H80" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `smiley_wink` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.smiley_wink />
  <Heroicons.smiley_wink class="w-4 h-4" />
  <Heroicons.smiley_wink solid />
  <Heroicons.smiley_wink mini />
  <Heroicons.smiley_wink outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def smiley_wink(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><line x1="152" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="92" cy="108" r="16"/><line x1="152" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="92" cy="108" r="12"/><line x1="152" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM92,96a12,12,0,1,1-12,12A12,12,0,0,1,92,96Zm84.5,60a56,56,0,0,1-97,0,8,8,0,1,1,13.8-8,40.1,40.1,0,0,0,69.4,0,8,8,0,0,1,13.8,8Zm3.5-40H148a8,8,0,0,1,0-16h32a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="92" cy="108" r="10"/><line x1="152" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="92" cy="108" r="8"/><line x1="152" y1="108" x2="176" y2="108" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M169.6,152a48.1,48.1,0,0,1-83.2,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `info` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.info />
  <Heroicons.info class="w-4 h-4" />
  <Heroicons.info solid />
  <Heroicons.info mini />
  <Heroicons.info outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def info(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 120 128 120 128 176 136 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="126" cy="84" r="12"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><polyline points="120 124 128 124 128 176 136 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><circle cx="126" cy="84" r="16"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="120 120 128 120 128 176 136 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="126" cy="84" r="12"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm-2,48a12,12,0,1,1-12,12A12,12,0,0,1,126,72Zm10,112h-8a8,8,0,0,1-8-8V128a8,8,0,0,1,0-16h8a8,8,0,0,1,8,8v48a8,8,0,0,1,0,16Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><polyline points="120 120 128 120 128 176 136 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="126" cy="84" r="10"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><polyline points="120 120 128 120 128 176 136 176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="126" cy="84" r="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_five` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_five />
  <Heroicons.number_five class="w-4 h-4" />
  <Heroicons.number_five solid />
  <Heroicons.number_five mini />
  <Heroicons.number_five outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_five(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32H95.7L80,128.4a56.4,56.4,0,0,1,79.5,0,55.8,55.8,0,0,1,0,79.2,56.4,56.4,0,0,1-79.5,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32H95.7L80,128.4a56.4,56.4,0,0,1,79.5,0,55.8,55.8,0,0,1,0,79.2,56.4,56.4,0,0,1-79.5,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32H95.7L80,128.4a56.4,56.4,0,0,1,79.5,0,55.8,55.8,0,0,1,0,79.2,56.4,56.4,0,0,1-79.5,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M165.2,122.7a64,64,0,0,1,0,90.6,64.5,64.5,0,0,1-90.8,0,8,8,0,1,1,11.2-11.4,48.4,48.4,0,0,0,68.3,0A48,48,0,0,0,119.8,120a48.3,48.3,0,0,0-34.2,14.1,8,8,0,0,1-13.5-7L87.8,30.7A7.9,7.9,0,0,1,95.7,24H176a8,8,0,0,1,0,16H102.5L91,110.8a63,63,0,0,1,28.8-6.8A64.4,64.4,0,0,1,165.2,122.7Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32H95.7L80,128.4a56.4,56.4,0,0,1,79.5,0,55.8,55.8,0,0,1,0,79.2,56.4,56.4,0,0,1-79.5,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M176,32H95.7L80,128.4a56.4,56.4,0,0,1,79.5,0,55.8,55.8,0,0,1,0,79.2,56.4,56.4,0,0,1-79.5,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `google_podcasts_logo` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.google_podcasts_logo />
  <Heroicons.google_podcasts_logo class="w-4 h-4" />
  <Heroicons.google_podcasts_logo solid />
  <Heroicons.google_podcasts_logo mini />
  <Heroicons.google_podcasts_logo outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def google_podcasts_logo(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="68" x2="176" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="68" x2="80" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="124" x2="176" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="116" x2="32" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="164" x2="80" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="116" x2="224" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="68" x2="176" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="88" x2="128" y2="168" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="68" x2="80" y2="124" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="132" x2="176" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="32" y1="116" x2="32" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="80" y1="164" x2="80" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="224" y1="116" x2="224" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="68" x2="176" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="80" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="68" x2="80" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="124" x2="176" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="116" x2="32" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="164" x2="80" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="116" x2="224" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M136,24V48a8,8,0,0,1-16,0V24a8,8,0,0,1,16,0Zm40,36a8,8,0,0,0-8,8V92a8,8,0,0,0,16,0V68A8,8,0,0,0,176,60ZM128,200a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V208A8,8,0,0,0,128,200Zm0-128a8,8,0,0,0-8,8v96a8,8,0,0,0,16,0V80A8,8,0,0,0,128,72ZM80,60a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V68A8,8,0,0,0,80,60Zm96,56a8,8,0,0,0-8,8v64a8,8,0,0,0,16,0V124A8,8,0,0,0,176,116ZM32,108a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V116A8,8,0,0,0,32,108Zm48,48a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V164A8,8,0,0,0,80,156Zm144-48a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V116A8,8,0,0,0,224,108Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="68" x2="176" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="80" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="68" x2="80" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="176" y1="124" x2="176" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="32" y1="116" x2="32" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="80" y1="164" x2="80" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="224" y1="116" x2="224" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><line x1="128" y1="24" x2="128" y2="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="68" x2="176" y2="92" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="208" x2="128" y2="232" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="80" x2="128" y2="176" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="68" x2="80" y2="132" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="176" y1="124" x2="176" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="32" y1="116" x2="32" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="80" y1="164" x2="80" y2="188" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="224" y1="116" x2="224" y2="140" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `user_circle_gear` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.user_circle_gear />
  <Heroicons.user_circle_gear class="w-4 h-4" />
  <Heroicons.user_circle_gear solid />
  <Heroicons.user_circle_gear mini />
  <Heroicons.user_circle_gear outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def user_circle_gear(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="56" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="186.1" y1="48" x2="175.8" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="186.1" y1="64" x2="175.8" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="72" x2="200" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.9" y1="64" x2="224.2" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.9" y1="48" x2="224.2" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M223.3,116.5A87.7,87.7,0,0,1,224,128a96,96,0,1,1-96-96,87,87,0,0,1,8.9.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="200" y2="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="181" y2="49.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="188.2" y2="72.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="211.8" y2="72.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="200" y1="56" x2="219" y2="49.8" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M223.3,116.5A87.7,87.7,0,0,1,224,128a96,96,0,1,1-96-96,87,87,0,0,1,8.9.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M205.3,71.1a15.5,15.5,0,0,1-5.3.9,16,16,0,0,1-16-16,15.5,15.5,0,0,1,.9-5.3A96,96,0,0,0,63.8,199.4h0A72,72,0,0,1,128,160a40,40,0,1,1,40-40,40,40,0,0,1-40,40,72,72,0,0,1,64.2,39.4A96,96,0,0,0,205.3,71.1Z" opacity="0.2"/><circle cx="128" cy="120" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="200" cy="56" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="40" x2="200" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="186.1" y1="48" x2="175.8" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="186.1" y1="64" x2="175.8" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="200" y1="72" x2="200" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.9" y1="64" x2="224.2" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="213.9" y1="48" x2="224.2" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M223.3,116.5A87.7,87.7,0,0,1,224,128a96,96,0,1,1-96-96,87,87,0,0,1,8.9.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,76a44,44,0,1,1-44,44A44,44,0,0,1,128,76Zm103.2-2a8,8,0,0,1-7,4,7.6,7.6,0,0,1-4-1.1l-4.6-2.7a24,24,0,0,1-7.6,4.4V84a8,8,0,0,1-16,0V78.6a24,24,0,0,1-7.6-4.4l-4.6,2.7a7.6,7.6,0,0,1-4,1.1,8,8,0,0,1-4-14.9l4.6-2.7A21.2,21.2,0,0,1,176,56a21.2,21.2,0,0,1,.4-4.4l-4.6-2.7a7.9,7.9,0,0,1-3-10.9,8.1,8.1,0,0,1,11-2.9l4.6,2.7a24,24,0,0,1,7.6-4.4V28a8,8,0,0,1,16,0v5.4a24,24,0,0,1,7.6,4.4l4.6-2.7a8.1,8.1,0,0,1,11,2.9,7.9,7.9,0,0,1-3,10.9l-4.6,2.7A21.2,21.2,0,0,1,224,56a21.2,21.2,0,0,1-.4,4.4l4.6,2.7A7.9,7.9,0,0,1,231.2,74ZM200,64a8,8,0,1,0-8-8A8,8,0,0,0,200,64Zm22.4,44.6a8,8,0,0,0-7,8.8A94.2,94.2,0,0,1,216,128a87.6,87.6,0,0,1-22.2,58.4,81.3,81.3,0,0,0-24.5-23,59.7,59.7,0,0,1-82.6,0,81.3,81.3,0,0,0-24.5,23A88,88,0,0,1,128,40a75,75,0,0,1,8.2.4,8,8,0,1,0,1.4-16c-3.1-.3-6.4-.4-9.6-.4A104,104,0,0,0,57.8,204.7l1.3,1.2a104,104,0,0,0,137.8,0l1.3-1.2A103.7,103.7,0,0,0,232,128a101.9,101.9,0,0,0-.7-12.4A8,8,0,0,0,222.4,108.6Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><circle cx="200" cy="56" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="40" x2="200" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="186.1" y1="48" x2="175.8" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="186.1" y1="64" x2="175.8" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="200" y1="72" x2="200" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="213.9" y1="64" x2="224.2" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="213.9" y1="48" x2="224.2" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M223.3,116.5A87.7,87.7,0,0,1,224,128a96,96,0,1,1-96-96,87,87,0,0,1,8.9.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="120" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M63.8,199.4a72,72,0,0,1,128.4,0" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><circle cx="200" cy="56" r="16" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="40" x2="200" y2="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="186.1" y1="48" x2="175.8" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="186.1" y1="64" x2="175.8" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="200" y1="72" x2="200" y2="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="213.9" y1="64" x2="224.2" y2="70" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="213.9" y1="48" x2="224.2" y2="42" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M223.3,116.5A87.7,87.7,0,0,1,224,128a96,96,0,1,1-96-96,87,87,0,0,1,8.9.4" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `number_two` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.number_two />
  <Heroicons.number_two class="w-4 h-4" />
  <Heroicons.number_two solid />
  <Heroicons.number_two mini />
  <Heroicons.number_two outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def number_two(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.8,61.3A48,48,0,0,1,176,80a47.4,47.4,0,0,1-8.2,26.8h0L80,224h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.8,61.3A48,48,0,0,1,176,80a47.4,47.4,0,0,1-8.2,26.8h0L80,224h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.8,61.3A48,48,0,0,1,176,80a47.4,47.4,0,0,1-8.2,26.8h0L80,224h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M184,224a8,8,0,0,1-8,8H80a7.3,7.3,0,0,1-2.5-.4A8,8,0,0,1,72,224a8,8,0,0,1,1.7-5l87.6-116.8A40,40,0,1,0,91.1,64.4a8,8,0,1,1-14.7-6.2,56,56,0,1,1,98,53.1c0,.1-.1.2-.2.3L96,216h80A8,8,0,0,1,184,224Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.8,61.3A48,48,0,0,1,176,80a47.4,47.4,0,0,1-8.2,26.8h0L80,224h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><path d="M83.8,61.3A48,48,0,0,1,176,80a47.4,47.4,0,0,1-8.2,26.8h0L80,224h96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `planet` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.planet />
  <Heroicons.planet class="w-4 h-4" />
  <Heroicons.planet solid />
  <Heroicons.planet mini />
  <Heroicons.planet outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def planet(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.2,60.3c27.7-7.6,48.5-6.9,54.7,3.7,11,19.1-29.7,63.3-90.9,98.6S28.2,211.1,17.1,192c-6.1-10.6,3.7-29,24.1-49.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="84" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M179.5,61.6c30.1-8.9,52.9-8.8,59.4,2.4,11,19.1-29.7,63.3-90.9,98.6S28.2,211.1,17.1,192c-6.4-11.2,4.9-31,27.7-52.6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" opacity="0.2"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M184.2,60.3c27.7-7.6,48.5-6.9,54.7,3.7,11,19.1-29.7,63.3-90.9,98.6S28.2,211.1,17.1,192c-6.1-10.6,3.7-29,24.1-49.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M223.3,116a117.3,117.3,0,0,1,.7,12A96,96,0,0,1,70,204.5c24.6-6.2,53.5-18.5,82-34.9S205.6,134.2,223.3,116Zm22.5-56c-5.5-9.5-20.3-18.4-59.8-8.5A96,96,0,0,0,32,128a117.3,117.3,0,0,0,.7,12C4.4,169.2,4.8,186.5,10.2,196c3.7,6.4,11.9,12.8,29.8,12.8a121.7,121.7,0,0,0,25.5-3.2l4.5-1.1a105,105,0,0,1-14.2-13.3c-18.7,3.3-29.3,1-31.7-3.2-1.5-2.6-.7-7.5,2.3-13.4A85.7,85.7,0,0,1,37.1,159a95.2,95.2,0,0,0,18.7,32.2l6.2-1.3c24-5.3,53.1-17.5,82-34.2s54-35.8,70.6-53.9a62,62,0,0,0,4.3-4.8,95.2,95.2,0,0,0-18.7-32.2,83.9,83.9,0,0,1,19-1.5c6.6.4,11.2,2.1,12.7,4.7,2.4,4.2-.9,14.5-13,29a107.3,107.3,0,0,1,4.4,19l3.1-3.3C251.7,85.2,250.9,68.9,245.8,60Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M184.2,60.3c27.7-7.6,48.5-6.9,54.7,3.7,11,19.1-29.7,63.3-90.9,98.6S28.2,211.1,17.1,192c-6.1-10.6,3.7-29,24.1-49.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M184.2,60.3c27.7-7.6,48.5-6.9,54.7,3.7,11,19.1-29.7,63.3-90.9,98.6S28.2,211.1,17.1,192c-6.1-10.6,3.7-29,24.1-49.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `at` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.at />
  <Heroicons.at class="w-4 h-4" />
  <Heroicons.at solid />
  <Heroicons.at mini />
  <Heroicons.at outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def at(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.1,208A96,96,0,1,1,224,128c0,22.1-8,40-28,40s-28-17.9-28-40V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><path d="M181.1,208A96,96,0,1,1,224,128c0,22.1-8,40-28,40s-28-17.9-28-40V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" opacity="0.2"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.1,208A96,96,0,1,1,224,128c0,22.1-8,40-28,40s-28-17.9-28-40V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104.1,104.1,0,0,0,24.1,132.1c2.1,54.7,47,98.8,101.8,99.9a104,104,0,0,0,91.4-50.8,4,4,0,0,0-4.1-6,52.5,52.5,0,0,1-9.2.8c-18.3,0-28.5-8-33.9-14.7a43.9,43.9,0,0,1-3.4-5A48,48,0,1,1,128,80a47.4,47.4,0,0,1,32,12.3v-4a8.2,8.2,0,0,1,7.5-8.3,8,8,0,0,1,8.5,8v40c0,14.6,4.9,32,28,32s27.6-16.2,28-30.5V128A104.1,104.1,0,0,0,128,24Z"/><circle cx="128" cy="128" r="32"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><path d="M181.1,208A96,96,0,1,1,224,128c0,22.1-8,40-28,40s-28-17.9-28-40V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="40" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M181.1,208A96,96,0,1,1,224,128c0,22.1-8,40-28,40s-28-17.9-28-40V88" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end

  @doc """
  Renders the `circle_half` icon.

  By default, the outlined (24x24) component is used, but the `solid` or `mini`
  attributes can be provided for alternative styles.

  You may also pass arbitrary HTML attributes to be applied to the svg tag.

  ## Examples

  ```heex
  <Heroicons.circle_half />
  <Heroicons.circle_half class="w-4 h-4" />
  <Heroicons.circle_half solid />
  <Heroicons.circle_half mini />
  <Heroicons.circle_half outline />
  ```
  """
  attr :rest, :global,
    doc: "the arbitrary HTML attributes for the svg container",
    include: ~w(fill stroke stroke-width)

  attr :regular, :boolean, default: true
  attr :bold, :boolean, default: false
  attr :duotone, :boolean, default: false
  attr :fill, :boolean, default: false
  attr :light, :boolean, default: false
  attr :thin, :boolean, default: false

  def circle_half(assigns) do
    svg(
      assign(assigns,
        paths: %{
          regular:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="56.5" x2="192" y2="199.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="37.5" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          bold:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/><line x1="176" y1="44.8" x2="176" y2="211.2" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/>|,
          duotone:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,32a96,96,0,0,1,0,192" opacity="0.2"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>|,
          fill:
            ~S|<rect width="256" height="256" fill="none"/><path d="M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24ZM40,128a88.1,88.1,0,0,1,88-88V216A88.1,88.1,0,0,1,40,128Z"/>|,
          light:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="192" y1="56.5" x2="192" y2="199.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/><line x1="160" y1="37.5" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="12"/>|,
          thin:
            ~S|<rect width="256" height="256" fill="none"/><circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="128" y1="32" x2="128" y2="224" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="192" y1="56.5" x2="192" y2="199.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><line x1="160" y1="37.5" x2="160" y2="218.5" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/>|
        }
      )
    )
  end
end
