diff --git a/.formatter.exs b/.formatter.exs index d2cda26..8b54ee2 100644 --- a/.formatter.exs +++ b/.formatter.exs @@ -1,4 +1,6 @@ # Used by "mix format" [ - inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] + import_deps: [:phoenix], + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"], + plugins: [Phoenix.LiveView.HTMLFormatter] ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e33ac7..aa1fb56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,24 @@ # Changelog +## 0.5.0 + +### Backwards incompatible changes +- Render icons outside HEEx function components has been dropped. Use the function component syntax instead: `` +- The separate modules `Heroicons.Outline|Solid|Mini` have been dropped in favor of a single `Heroicons` module. + By default, this module renders the outline style, but a `solid` or `mini` attribute can be provided to + select styling. + +### Enhancements +- Provide unified interface with `solid`, and `mini` attributes for styling. +- Optimize svg generation for LiveView diffing. + ## 0.4.1 -### Enchancements + +### Enhancements - Further optimize the JIT Phoenix Component compiler ## 0.4.0 -### Enchancements +### Enhancements - Update to Heroicons 2 (https://github.com/mveytsman/heroicons_elixir/pull/12) - Add update task and generate optimized version of icons (https://github.com/mveytsman/heroicons_elixir/pull/13) - Optimize compile times by no longer reading every icon during compliation. @@ -13,7 +26,7 @@ ## 0.3.2 (2022-02-21) -### Enchancements +### Enhancements - Update heroicons to 1.0.5 (https://github.com/mveytsman/heroicons_elixir/pull/8) diff --git a/README.md b/README.md index 22a8dd0..2cc96c9 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,12 @@ # Heroicons -[Heroicons](https://github.com/tailwindlabs/heroicons) are "a set of free MIT-licensed high-quality SVG icons for you to use in your web projects". This package gives you Elixir functions to drop Heroicons into your HTML, styled with arbitrary classes. +[Heroicons](heroicons.com) are "a set of free MIT-licensed high-quality SVG icons for you to use in your web projects". This package gives you Elixir functions to drop Heroicons into your HTML, styled with arbitrary classes. -This library provides optimized svgs for each Heroicon packaged as a Phoenix Component (and as a function for backwards-compatibility). - -In order to provide the best balance of fast compilation times and run-time performance, Phoenix Components are just-in-time compiled on first use and then cached in an ETS-backed cache. +This library provides optimized svgs for each Heroicon packaged as a Phoenix Component. Heroicons are designed by [Steve Schoger](https://twitter.com/steveschoger) -Current Heroicons Version: **2.0.10**. It's possible to configure a different Heroicon version locally, see [mix heroicons.update](https://hexdocs.pm/heroicons/Mix.Tasks.Heroicons.Update.html) +Current Heroicons Version: **2.0.10**. ## Installation @@ -17,7 +15,7 @@ Add Heroicons to your `mix.exs`: ```elixir defp deps do [ - {:heroicons, "~> 0.4.1"} + {:heroicons, "~> 0.5.0"} ] end ``` @@ -26,23 +24,25 @@ After that, run `mix deps.get`. ## Usage -The components are in `Heroicons.Solid`, `Heroicons.Outline`, and `Heroicons.Mini`. Each icon is a Phoenix Component you can use in your HEEx templates. +The components are provided by the `Heroicons` module. Each icon is a Phoenix Component you can use in your HEEx templates. + +By ddefault the outline style is used: ```eex ``` -and style it with some classes +You can render the solid or mini styles by providing the `solid` or `mini` flags: ```eex - + + ``` -There are also function versions of each component: -```eex -<%= Heroicons.Solid.cake() %> +You can also provide arbitrary HTML attributes to the svg tag, such as classes: -<%= Heroicons.Solid.cake(class: "w-6 h-6 text-gray-500") %> +```eex + ``` For a full list of icons see [the docs](https://hexdocs.pm/heroicons/api-reference.html) or [heroicons.com](https://heroicons.com/). diff --git a/assets/heroicons.exs b/assets/heroicons.exs new file mode 100644 index 0000000..91a5ae3 --- /dev/null +++ b/assets/heroicons.exs @@ -0,0 +1,112 @@ +defmodule Heroicons do + @moduledoc """ + Provides precompiled icon compiles from [heroicons.com v<%= @vsn %>](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 + + + + ``` + + You can also pass arbitrary HTML attributes to the components: + + ```heex + + + ``` + + ## 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, outline, solid, mini) do + case assigns do + %{mini: false, solid: false} -> svg_outline(assign(assigns, paths: outline)) + %{solid: true, mini: false} -> svg_solid(assign(assigns, paths: solid)) + %{mini: true, solid: false} -> svg_mini(assign(assigns, paths: mini)) + %{} -> raise ArgumentError, "expected either mini or solid, but got both." + end + end + + defp svg_outline(assigns) do + ~H""" + + """ + end + + defp svg_solid(assigns) do + ~H""" + + """ + end + + defp svg_mini(assigns) do + ~H""" + + """ + end + + <%= for icon <- @icons, {func, [outline, solid, mini]} = icon do %> + @doc """ + Renders the `<%= func %>` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + /> + class="w-4 h-4" /> + solid /> + mini /> + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def <%= func %>(assigns) do + svg(assigns, ~S|<%= outline %>|, ~S|<%= solid %>|, ~S|<%= mini %>|) + end + <% end %> +end diff --git a/priv/icons/mini/academic-cap.svg b/assets/icons/mini/academic-cap.svg similarity index 100% rename from priv/icons/mini/academic-cap.svg rename to assets/icons/mini/academic-cap.svg diff --git a/priv/icons/mini/adjustments-horizontal.svg b/assets/icons/mini/adjustments-horizontal.svg similarity index 100% rename from priv/icons/mini/adjustments-horizontal.svg rename to assets/icons/mini/adjustments-horizontal.svg diff --git a/priv/icons/mini/adjustments-vertical.svg b/assets/icons/mini/adjustments-vertical.svg similarity index 100% rename from priv/icons/mini/adjustments-vertical.svg rename to assets/icons/mini/adjustments-vertical.svg diff --git a/priv/icons/mini/archive-box-arrow-down.svg b/assets/icons/mini/archive-box-arrow-down.svg similarity index 100% rename from priv/icons/mini/archive-box-arrow-down.svg rename to assets/icons/mini/archive-box-arrow-down.svg diff --git a/priv/icons/mini/archive-box-x-mark.svg b/assets/icons/mini/archive-box-x-mark.svg similarity index 100% rename from priv/icons/mini/archive-box-x-mark.svg rename to assets/icons/mini/archive-box-x-mark.svg diff --git a/priv/icons/mini/archive-box.svg b/assets/icons/mini/archive-box.svg similarity index 100% rename from priv/icons/mini/archive-box.svg rename to assets/icons/mini/archive-box.svg diff --git a/priv/icons/mini/arrow-down-circle.svg b/assets/icons/mini/arrow-down-circle.svg similarity index 100% rename from priv/icons/mini/arrow-down-circle.svg rename to assets/icons/mini/arrow-down-circle.svg diff --git a/priv/icons/mini/arrow-down-left.svg b/assets/icons/mini/arrow-down-left.svg similarity index 100% rename from priv/icons/mini/arrow-down-left.svg rename to assets/icons/mini/arrow-down-left.svg diff --git a/priv/icons/mini/arrow-down-on-square-stack.svg b/assets/icons/mini/arrow-down-on-square-stack.svg similarity index 100% rename from priv/icons/mini/arrow-down-on-square-stack.svg rename to assets/icons/mini/arrow-down-on-square-stack.svg diff --git a/priv/icons/mini/arrow-down-on-square.svg b/assets/icons/mini/arrow-down-on-square.svg similarity index 100% rename from priv/icons/mini/arrow-down-on-square.svg rename to assets/icons/mini/arrow-down-on-square.svg diff --git a/priv/icons/mini/arrow-down-right.svg b/assets/icons/mini/arrow-down-right.svg similarity index 100% rename from priv/icons/mini/arrow-down-right.svg rename to assets/icons/mini/arrow-down-right.svg diff --git a/priv/icons/mini/arrow-down-tray.svg b/assets/icons/mini/arrow-down-tray.svg similarity index 100% rename from priv/icons/mini/arrow-down-tray.svg rename to assets/icons/mini/arrow-down-tray.svg diff --git a/priv/icons/mini/arrow-down.svg b/assets/icons/mini/arrow-down.svg similarity index 100% rename from priv/icons/mini/arrow-down.svg rename to assets/icons/mini/arrow-down.svg diff --git a/priv/icons/mini/arrow-left-circle.svg b/assets/icons/mini/arrow-left-circle.svg similarity index 100% rename from priv/icons/mini/arrow-left-circle.svg rename to assets/icons/mini/arrow-left-circle.svg diff --git a/priv/icons/mini/arrow-left-on-rectangle.svg b/assets/icons/mini/arrow-left-on-rectangle.svg similarity index 100% rename from priv/icons/mini/arrow-left-on-rectangle.svg rename to assets/icons/mini/arrow-left-on-rectangle.svg diff --git a/priv/icons/mini/arrow-left.svg b/assets/icons/mini/arrow-left.svg similarity index 100% rename from priv/icons/mini/arrow-left.svg rename to assets/icons/mini/arrow-left.svg diff --git a/priv/icons/mini/arrow-long-down.svg b/assets/icons/mini/arrow-long-down.svg similarity index 100% rename from priv/icons/mini/arrow-long-down.svg rename to assets/icons/mini/arrow-long-down.svg diff --git a/priv/icons/mini/arrow-long-left.svg b/assets/icons/mini/arrow-long-left.svg similarity index 100% rename from priv/icons/mini/arrow-long-left.svg rename to assets/icons/mini/arrow-long-left.svg diff --git a/priv/icons/mini/arrow-long-right.svg b/assets/icons/mini/arrow-long-right.svg similarity index 100% rename from priv/icons/mini/arrow-long-right.svg rename to assets/icons/mini/arrow-long-right.svg diff --git a/priv/icons/mini/arrow-long-up.svg b/assets/icons/mini/arrow-long-up.svg similarity index 100% rename from priv/icons/mini/arrow-long-up.svg rename to assets/icons/mini/arrow-long-up.svg diff --git a/priv/icons/mini/arrow-path-rounded-square.svg b/assets/icons/mini/arrow-path-rounded-square.svg similarity index 100% rename from priv/icons/mini/arrow-path-rounded-square.svg rename to assets/icons/mini/arrow-path-rounded-square.svg diff --git a/priv/icons/mini/arrow-path.svg b/assets/icons/mini/arrow-path.svg similarity index 100% rename from priv/icons/mini/arrow-path.svg rename to assets/icons/mini/arrow-path.svg diff --git a/priv/icons/mini/arrow-right-circle.svg b/assets/icons/mini/arrow-right-circle.svg similarity index 100% rename from priv/icons/mini/arrow-right-circle.svg rename to assets/icons/mini/arrow-right-circle.svg diff --git a/priv/icons/mini/arrow-right-on-rectangle.svg b/assets/icons/mini/arrow-right-on-rectangle.svg similarity index 100% rename from priv/icons/mini/arrow-right-on-rectangle.svg rename to assets/icons/mini/arrow-right-on-rectangle.svg diff --git a/priv/icons/mini/arrow-right.svg b/assets/icons/mini/arrow-right.svg similarity index 100% rename from priv/icons/mini/arrow-right.svg rename to assets/icons/mini/arrow-right.svg diff --git a/priv/icons/mini/arrow-small-down.svg b/assets/icons/mini/arrow-small-down.svg similarity index 100% rename from priv/icons/mini/arrow-small-down.svg rename to assets/icons/mini/arrow-small-down.svg diff --git a/priv/icons/mini/arrow-small-left.svg b/assets/icons/mini/arrow-small-left.svg similarity index 100% rename from priv/icons/mini/arrow-small-left.svg rename to assets/icons/mini/arrow-small-left.svg diff --git a/priv/icons/mini/arrow-small-right.svg b/assets/icons/mini/arrow-small-right.svg similarity index 100% rename from priv/icons/mini/arrow-small-right.svg rename to assets/icons/mini/arrow-small-right.svg diff --git a/priv/icons/mini/arrow-small-up.svg b/assets/icons/mini/arrow-small-up.svg similarity index 100% rename from priv/icons/mini/arrow-small-up.svg rename to assets/icons/mini/arrow-small-up.svg diff --git a/priv/icons/mini/arrow-top-right-on-square.svg b/assets/icons/mini/arrow-top-right-on-square.svg similarity index 100% rename from priv/icons/mini/arrow-top-right-on-square.svg rename to assets/icons/mini/arrow-top-right-on-square.svg diff --git a/priv/icons/mini/arrow-trending-down.svg b/assets/icons/mini/arrow-trending-down.svg similarity index 100% rename from priv/icons/mini/arrow-trending-down.svg rename to assets/icons/mini/arrow-trending-down.svg diff --git a/priv/icons/mini/arrow-trending-up.svg b/assets/icons/mini/arrow-trending-up.svg similarity index 100% rename from priv/icons/mini/arrow-trending-up.svg rename to assets/icons/mini/arrow-trending-up.svg diff --git a/priv/icons/mini/arrow-up-circle.svg b/assets/icons/mini/arrow-up-circle.svg similarity index 100% rename from priv/icons/mini/arrow-up-circle.svg rename to assets/icons/mini/arrow-up-circle.svg diff --git a/priv/icons/mini/arrow-up-left.svg b/assets/icons/mini/arrow-up-left.svg similarity index 100% rename from priv/icons/mini/arrow-up-left.svg rename to assets/icons/mini/arrow-up-left.svg diff --git a/priv/icons/mini/arrow-up-on-square-stack.svg b/assets/icons/mini/arrow-up-on-square-stack.svg similarity index 100% rename from priv/icons/mini/arrow-up-on-square-stack.svg rename to assets/icons/mini/arrow-up-on-square-stack.svg diff --git a/priv/icons/mini/arrow-up-on-square.svg b/assets/icons/mini/arrow-up-on-square.svg similarity index 100% rename from priv/icons/mini/arrow-up-on-square.svg rename to assets/icons/mini/arrow-up-on-square.svg diff --git a/priv/icons/mini/arrow-up-right.svg b/assets/icons/mini/arrow-up-right.svg similarity index 100% rename from priv/icons/mini/arrow-up-right.svg rename to assets/icons/mini/arrow-up-right.svg diff --git a/priv/icons/mini/arrow-up-tray.svg b/assets/icons/mini/arrow-up-tray.svg similarity index 100% rename from priv/icons/mini/arrow-up-tray.svg rename to assets/icons/mini/arrow-up-tray.svg diff --git a/priv/icons/mini/arrow-up.svg b/assets/icons/mini/arrow-up.svg similarity index 100% rename from priv/icons/mini/arrow-up.svg rename to assets/icons/mini/arrow-up.svg diff --git a/priv/icons/mini/arrow-uturn-down.svg b/assets/icons/mini/arrow-uturn-down.svg similarity index 100% rename from priv/icons/mini/arrow-uturn-down.svg rename to assets/icons/mini/arrow-uturn-down.svg diff --git a/priv/icons/mini/arrow-uturn-left.svg b/assets/icons/mini/arrow-uturn-left.svg similarity index 100% rename from priv/icons/mini/arrow-uturn-left.svg rename to assets/icons/mini/arrow-uturn-left.svg diff --git a/priv/icons/mini/arrow-uturn-right.svg b/assets/icons/mini/arrow-uturn-right.svg similarity index 100% rename from priv/icons/mini/arrow-uturn-right.svg rename to assets/icons/mini/arrow-uturn-right.svg diff --git a/priv/icons/mini/arrow-uturn-up.svg b/assets/icons/mini/arrow-uturn-up.svg similarity index 100% rename from priv/icons/mini/arrow-uturn-up.svg rename to assets/icons/mini/arrow-uturn-up.svg diff --git a/priv/icons/mini/arrows-pointing-in.svg b/assets/icons/mini/arrows-pointing-in.svg similarity index 100% rename from priv/icons/mini/arrows-pointing-in.svg rename to assets/icons/mini/arrows-pointing-in.svg diff --git a/priv/icons/mini/arrows-pointing-out.svg b/assets/icons/mini/arrows-pointing-out.svg similarity index 100% rename from priv/icons/mini/arrows-pointing-out.svg rename to assets/icons/mini/arrows-pointing-out.svg diff --git a/priv/icons/mini/arrows-right-left.svg b/assets/icons/mini/arrows-right-left.svg similarity index 100% rename from priv/icons/mini/arrows-right-left.svg rename to assets/icons/mini/arrows-right-left.svg diff --git a/priv/icons/mini/arrows-up-down.svg b/assets/icons/mini/arrows-up-down.svg similarity index 100% rename from priv/icons/mini/arrows-up-down.svg rename to assets/icons/mini/arrows-up-down.svg diff --git a/priv/icons/mini/at-symbol.svg b/assets/icons/mini/at-symbol.svg similarity index 100% rename from priv/icons/mini/at-symbol.svg rename to assets/icons/mini/at-symbol.svg diff --git a/priv/icons/mini/backspace.svg b/assets/icons/mini/backspace.svg similarity index 100% rename from priv/icons/mini/backspace.svg rename to assets/icons/mini/backspace.svg diff --git a/priv/icons/mini/backward.svg b/assets/icons/mini/backward.svg similarity index 100% rename from priv/icons/mini/backward.svg rename to assets/icons/mini/backward.svg diff --git a/priv/icons/mini/banknotes.svg b/assets/icons/mini/banknotes.svg similarity index 100% rename from priv/icons/mini/banknotes.svg rename to assets/icons/mini/banknotes.svg diff --git a/priv/icons/mini/bars-2.svg b/assets/icons/mini/bars-2.svg similarity index 100% rename from priv/icons/mini/bars-2.svg rename to assets/icons/mini/bars-2.svg diff --git a/priv/icons/mini/bars-3-bottom-left.svg b/assets/icons/mini/bars-3-bottom-left.svg similarity index 100% rename from priv/icons/mini/bars-3-bottom-left.svg rename to assets/icons/mini/bars-3-bottom-left.svg diff --git a/priv/icons/mini/bars-3-bottom-right.svg b/assets/icons/mini/bars-3-bottom-right.svg similarity index 100% rename from priv/icons/mini/bars-3-bottom-right.svg rename to assets/icons/mini/bars-3-bottom-right.svg diff --git a/priv/icons/mini/bars-3-center-left.svg b/assets/icons/mini/bars-3-center-left.svg similarity index 100% rename from priv/icons/mini/bars-3-center-left.svg rename to assets/icons/mini/bars-3-center-left.svg diff --git a/priv/icons/mini/bars-3.svg b/assets/icons/mini/bars-3.svg similarity index 100% rename from priv/icons/mini/bars-3.svg rename to assets/icons/mini/bars-3.svg diff --git a/priv/icons/mini/bars-4.svg b/assets/icons/mini/bars-4.svg similarity index 100% rename from priv/icons/mini/bars-4.svg rename to assets/icons/mini/bars-4.svg diff --git a/priv/icons/mini/bars-arrow-down.svg b/assets/icons/mini/bars-arrow-down.svg similarity index 100% rename from priv/icons/mini/bars-arrow-down.svg rename to assets/icons/mini/bars-arrow-down.svg diff --git a/priv/icons/mini/bars-arrow-up.svg b/assets/icons/mini/bars-arrow-up.svg similarity index 100% rename from priv/icons/mini/bars-arrow-up.svg rename to assets/icons/mini/bars-arrow-up.svg diff --git a/priv/icons/mini/battery-0.svg b/assets/icons/mini/battery-0.svg similarity index 100% rename from priv/icons/mini/battery-0.svg rename to assets/icons/mini/battery-0.svg diff --git a/priv/icons/mini/battery-100.svg b/assets/icons/mini/battery-100.svg similarity index 100% rename from priv/icons/mini/battery-100.svg rename to assets/icons/mini/battery-100.svg diff --git a/priv/icons/mini/battery-50.svg b/assets/icons/mini/battery-50.svg similarity index 100% rename from priv/icons/mini/battery-50.svg rename to assets/icons/mini/battery-50.svg diff --git a/priv/icons/mini/beaker.svg b/assets/icons/mini/beaker.svg similarity index 100% rename from priv/icons/mini/beaker.svg rename to assets/icons/mini/beaker.svg diff --git a/priv/icons/mini/bell-alert.svg b/assets/icons/mini/bell-alert.svg similarity index 100% rename from priv/icons/mini/bell-alert.svg rename to assets/icons/mini/bell-alert.svg diff --git a/priv/icons/mini/bell-slash.svg b/assets/icons/mini/bell-slash.svg similarity index 100% rename from priv/icons/mini/bell-slash.svg rename to assets/icons/mini/bell-slash.svg diff --git a/priv/icons/mini/bell-snooze.svg b/assets/icons/mini/bell-snooze.svg similarity index 100% rename from priv/icons/mini/bell-snooze.svg rename to assets/icons/mini/bell-snooze.svg diff --git a/priv/icons/mini/bell.svg b/assets/icons/mini/bell.svg similarity index 100% rename from priv/icons/mini/bell.svg rename to assets/icons/mini/bell.svg diff --git a/priv/icons/mini/bolt-slash.svg b/assets/icons/mini/bolt-slash.svg similarity index 100% rename from priv/icons/mini/bolt-slash.svg rename to assets/icons/mini/bolt-slash.svg diff --git a/priv/icons/mini/bolt.svg b/assets/icons/mini/bolt.svg similarity index 100% rename from priv/icons/mini/bolt.svg rename to assets/icons/mini/bolt.svg diff --git a/priv/icons/mini/book-open.svg b/assets/icons/mini/book-open.svg similarity index 100% rename from priv/icons/mini/book-open.svg rename to assets/icons/mini/book-open.svg diff --git a/priv/icons/mini/bookmark-slash.svg b/assets/icons/mini/bookmark-slash.svg similarity index 100% rename from priv/icons/mini/bookmark-slash.svg rename to assets/icons/mini/bookmark-slash.svg diff --git a/priv/icons/mini/bookmark-square.svg b/assets/icons/mini/bookmark-square.svg similarity index 100% rename from priv/icons/mini/bookmark-square.svg rename to assets/icons/mini/bookmark-square.svg diff --git a/priv/icons/mini/bookmark.svg b/assets/icons/mini/bookmark.svg similarity index 100% rename from priv/icons/mini/bookmark.svg rename to assets/icons/mini/bookmark.svg diff --git a/priv/icons/mini/briefcase.svg b/assets/icons/mini/briefcase.svg similarity index 100% rename from priv/icons/mini/briefcase.svg rename to assets/icons/mini/briefcase.svg diff --git a/priv/icons/mini/building-library.svg b/assets/icons/mini/building-library.svg similarity index 100% rename from priv/icons/mini/building-library.svg rename to assets/icons/mini/building-library.svg diff --git a/priv/icons/mini/building-office-2.svg b/assets/icons/mini/building-office-2.svg similarity index 100% rename from priv/icons/mini/building-office-2.svg rename to assets/icons/mini/building-office-2.svg diff --git a/priv/icons/mini/building-office.svg b/assets/icons/mini/building-office.svg similarity index 100% rename from priv/icons/mini/building-office.svg rename to assets/icons/mini/building-office.svg diff --git a/priv/icons/mini/building-storefront.svg b/assets/icons/mini/building-storefront.svg similarity index 100% rename from priv/icons/mini/building-storefront.svg rename to assets/icons/mini/building-storefront.svg diff --git a/priv/icons/mini/cake.svg b/assets/icons/mini/cake.svg similarity index 100% rename from priv/icons/mini/cake.svg rename to assets/icons/mini/cake.svg diff --git a/priv/icons/mini/calculator.svg b/assets/icons/mini/calculator.svg similarity index 100% rename from priv/icons/mini/calculator.svg rename to assets/icons/mini/calculator.svg diff --git a/priv/icons/mini/calendar-days.svg b/assets/icons/mini/calendar-days.svg similarity index 100% rename from priv/icons/mini/calendar-days.svg rename to assets/icons/mini/calendar-days.svg diff --git a/priv/icons/mini/calendar.svg b/assets/icons/mini/calendar.svg similarity index 100% rename from priv/icons/mini/calendar.svg rename to assets/icons/mini/calendar.svg diff --git a/priv/icons/mini/camera.svg b/assets/icons/mini/camera.svg similarity index 100% rename from priv/icons/mini/camera.svg rename to assets/icons/mini/camera.svg diff --git a/priv/icons/mini/chart-bar-square.svg b/assets/icons/mini/chart-bar-square.svg similarity index 100% rename from priv/icons/mini/chart-bar-square.svg rename to assets/icons/mini/chart-bar-square.svg diff --git a/priv/icons/mini/chart-bar.svg b/assets/icons/mini/chart-bar.svg similarity index 100% rename from priv/icons/mini/chart-bar.svg rename to assets/icons/mini/chart-bar.svg diff --git a/priv/icons/mini/chart-pie.svg b/assets/icons/mini/chart-pie.svg similarity index 100% rename from priv/icons/mini/chart-pie.svg rename to assets/icons/mini/chart-pie.svg diff --git a/priv/icons/mini/chat-bubble-bottom-center-text.svg b/assets/icons/mini/chat-bubble-bottom-center-text.svg similarity index 100% rename from priv/icons/mini/chat-bubble-bottom-center-text.svg rename to assets/icons/mini/chat-bubble-bottom-center-text.svg diff --git a/priv/icons/mini/chat-bubble-bottom-center.svg b/assets/icons/mini/chat-bubble-bottom-center.svg similarity index 100% rename from priv/icons/mini/chat-bubble-bottom-center.svg rename to assets/icons/mini/chat-bubble-bottom-center.svg diff --git a/priv/icons/mini/chat-bubble-left-ellipsis.svg b/assets/icons/mini/chat-bubble-left-ellipsis.svg similarity index 100% rename from priv/icons/mini/chat-bubble-left-ellipsis.svg rename to assets/icons/mini/chat-bubble-left-ellipsis.svg diff --git a/priv/icons/mini/chat-bubble-left-right.svg b/assets/icons/mini/chat-bubble-left-right.svg similarity index 100% rename from priv/icons/mini/chat-bubble-left-right.svg rename to assets/icons/mini/chat-bubble-left-right.svg diff --git a/priv/icons/mini/chat-bubble-left.svg b/assets/icons/mini/chat-bubble-left.svg similarity index 100% rename from priv/icons/mini/chat-bubble-left.svg rename to assets/icons/mini/chat-bubble-left.svg diff --git a/priv/icons/mini/chat-bubble-oval-left-ellipsis.svg b/assets/icons/mini/chat-bubble-oval-left-ellipsis.svg similarity index 100% rename from priv/icons/mini/chat-bubble-oval-left-ellipsis.svg rename to assets/icons/mini/chat-bubble-oval-left-ellipsis.svg diff --git a/priv/icons/mini/chat-bubble-oval-left.svg b/assets/icons/mini/chat-bubble-oval-left.svg similarity index 100% rename from priv/icons/mini/chat-bubble-oval-left.svg rename to assets/icons/mini/chat-bubble-oval-left.svg diff --git a/priv/icons/mini/check-badge.svg b/assets/icons/mini/check-badge.svg similarity index 100% rename from priv/icons/mini/check-badge.svg rename to assets/icons/mini/check-badge.svg diff --git a/priv/icons/mini/check-circle.svg b/assets/icons/mini/check-circle.svg similarity index 100% rename from priv/icons/mini/check-circle.svg rename to assets/icons/mini/check-circle.svg diff --git a/priv/icons/mini/check.svg b/assets/icons/mini/check.svg similarity index 100% rename from priv/icons/mini/check.svg rename to assets/icons/mini/check.svg diff --git a/priv/icons/mini/chevron-double-down.svg b/assets/icons/mini/chevron-double-down.svg similarity index 100% rename from priv/icons/mini/chevron-double-down.svg rename to assets/icons/mini/chevron-double-down.svg diff --git a/priv/icons/mini/chevron-double-left.svg b/assets/icons/mini/chevron-double-left.svg similarity index 100% rename from priv/icons/mini/chevron-double-left.svg rename to assets/icons/mini/chevron-double-left.svg diff --git a/priv/icons/mini/chevron-double-right.svg b/assets/icons/mini/chevron-double-right.svg similarity index 100% rename from priv/icons/mini/chevron-double-right.svg rename to assets/icons/mini/chevron-double-right.svg diff --git a/priv/icons/mini/chevron-double-up.svg b/assets/icons/mini/chevron-double-up.svg similarity index 100% rename from priv/icons/mini/chevron-double-up.svg rename to assets/icons/mini/chevron-double-up.svg diff --git a/priv/icons/mini/chevron-down.svg b/assets/icons/mini/chevron-down.svg similarity index 100% rename from priv/icons/mini/chevron-down.svg rename to assets/icons/mini/chevron-down.svg diff --git a/priv/icons/mini/chevron-left.svg b/assets/icons/mini/chevron-left.svg similarity index 100% rename from priv/icons/mini/chevron-left.svg rename to assets/icons/mini/chevron-left.svg diff --git a/priv/icons/mini/chevron-right.svg b/assets/icons/mini/chevron-right.svg similarity index 100% rename from priv/icons/mini/chevron-right.svg rename to assets/icons/mini/chevron-right.svg diff --git a/priv/icons/mini/chevron-up-down.svg b/assets/icons/mini/chevron-up-down.svg similarity index 100% rename from priv/icons/mini/chevron-up-down.svg rename to assets/icons/mini/chevron-up-down.svg diff --git a/priv/icons/mini/chevron-up.svg b/assets/icons/mini/chevron-up.svg similarity index 100% rename from priv/icons/mini/chevron-up.svg rename to assets/icons/mini/chevron-up.svg diff --git a/priv/icons/mini/circle-stack.svg b/assets/icons/mini/circle-stack.svg similarity index 100% rename from priv/icons/mini/circle-stack.svg rename to assets/icons/mini/circle-stack.svg diff --git a/priv/icons/mini/clipboard-document-check.svg b/assets/icons/mini/clipboard-document-check.svg similarity index 100% rename from priv/icons/mini/clipboard-document-check.svg rename to assets/icons/mini/clipboard-document-check.svg diff --git a/priv/icons/mini/clipboard-document-list.svg b/assets/icons/mini/clipboard-document-list.svg similarity index 100% rename from priv/icons/mini/clipboard-document-list.svg rename to assets/icons/mini/clipboard-document-list.svg diff --git a/priv/icons/mini/clipboard-document.svg b/assets/icons/mini/clipboard-document.svg similarity index 100% rename from priv/icons/mini/clipboard-document.svg rename to assets/icons/mini/clipboard-document.svg diff --git a/priv/icons/mini/clipboard.svg b/assets/icons/mini/clipboard.svg similarity index 100% rename from priv/icons/mini/clipboard.svg rename to assets/icons/mini/clipboard.svg diff --git a/priv/icons/mini/clock.svg b/assets/icons/mini/clock.svg similarity index 100% rename from priv/icons/mini/clock.svg rename to assets/icons/mini/clock.svg diff --git a/priv/icons/mini/cloud-arrow-down.svg b/assets/icons/mini/cloud-arrow-down.svg similarity index 100% rename from priv/icons/mini/cloud-arrow-down.svg rename to assets/icons/mini/cloud-arrow-down.svg diff --git a/priv/icons/mini/cloud-arrow-up.svg b/assets/icons/mini/cloud-arrow-up.svg similarity index 100% rename from priv/icons/mini/cloud-arrow-up.svg rename to assets/icons/mini/cloud-arrow-up.svg diff --git a/priv/icons/mini/cloud.svg b/assets/icons/mini/cloud.svg similarity index 100% rename from priv/icons/mini/cloud.svg rename to assets/icons/mini/cloud.svg diff --git a/priv/icons/mini/code-bracket-square.svg b/assets/icons/mini/code-bracket-square.svg similarity index 100% rename from priv/icons/mini/code-bracket-square.svg rename to assets/icons/mini/code-bracket-square.svg diff --git a/priv/icons/mini/code-bracket.svg b/assets/icons/mini/code-bracket.svg similarity index 100% rename from priv/icons/mini/code-bracket.svg rename to assets/icons/mini/code-bracket.svg diff --git a/priv/icons/mini/cog-6-tooth.svg b/assets/icons/mini/cog-6-tooth.svg similarity index 100% rename from priv/icons/mini/cog-6-tooth.svg rename to assets/icons/mini/cog-6-tooth.svg diff --git a/priv/icons/mini/cog-8-tooth.svg b/assets/icons/mini/cog-8-tooth.svg similarity index 100% rename from priv/icons/mini/cog-8-tooth.svg rename to assets/icons/mini/cog-8-tooth.svg diff --git a/priv/icons/mini/cog.svg b/assets/icons/mini/cog.svg similarity index 100% rename from priv/icons/mini/cog.svg rename to assets/icons/mini/cog.svg diff --git a/priv/icons/mini/command-line.svg b/assets/icons/mini/command-line.svg similarity index 100% rename from priv/icons/mini/command-line.svg rename to assets/icons/mini/command-line.svg diff --git a/priv/icons/mini/computer-desktop.svg b/assets/icons/mini/computer-desktop.svg similarity index 100% rename from priv/icons/mini/computer-desktop.svg rename to assets/icons/mini/computer-desktop.svg diff --git a/priv/icons/mini/cpu-chip.svg b/assets/icons/mini/cpu-chip.svg similarity index 100% rename from priv/icons/mini/cpu-chip.svg rename to assets/icons/mini/cpu-chip.svg diff --git a/priv/icons/mini/credit-card.svg b/assets/icons/mini/credit-card.svg similarity index 100% rename from priv/icons/mini/credit-card.svg rename to assets/icons/mini/credit-card.svg diff --git a/priv/icons/mini/cube-transparent.svg b/assets/icons/mini/cube-transparent.svg similarity index 100% rename from priv/icons/mini/cube-transparent.svg rename to assets/icons/mini/cube-transparent.svg diff --git a/priv/icons/mini/cube.svg b/assets/icons/mini/cube.svg similarity index 100% rename from priv/icons/mini/cube.svg rename to assets/icons/mini/cube.svg diff --git a/priv/icons/mini/currency-bangladeshi.svg b/assets/icons/mini/currency-bangladeshi.svg similarity index 100% rename from priv/icons/mini/currency-bangladeshi.svg rename to assets/icons/mini/currency-bangladeshi.svg diff --git a/priv/icons/mini/currency-dollar.svg b/assets/icons/mini/currency-dollar.svg similarity index 100% rename from priv/icons/mini/currency-dollar.svg rename to assets/icons/mini/currency-dollar.svg diff --git a/priv/icons/mini/currency-euro.svg b/assets/icons/mini/currency-euro.svg similarity index 100% rename from priv/icons/mini/currency-euro.svg rename to assets/icons/mini/currency-euro.svg diff --git a/priv/icons/mini/currency-pound.svg b/assets/icons/mini/currency-pound.svg similarity index 100% rename from priv/icons/mini/currency-pound.svg rename to assets/icons/mini/currency-pound.svg diff --git a/priv/icons/mini/currency-rupee.svg b/assets/icons/mini/currency-rupee.svg similarity index 100% rename from priv/icons/mini/currency-rupee.svg rename to assets/icons/mini/currency-rupee.svg diff --git a/priv/icons/mini/currency-yen.svg b/assets/icons/mini/currency-yen.svg similarity index 100% rename from priv/icons/mini/currency-yen.svg rename to assets/icons/mini/currency-yen.svg diff --git a/priv/icons/mini/cursor-arrow-rays.svg b/assets/icons/mini/cursor-arrow-rays.svg similarity index 100% rename from priv/icons/mini/cursor-arrow-rays.svg rename to assets/icons/mini/cursor-arrow-rays.svg diff --git a/priv/icons/mini/cursor-arrow-ripple.svg b/assets/icons/mini/cursor-arrow-ripple.svg similarity index 100% rename from priv/icons/mini/cursor-arrow-ripple.svg rename to assets/icons/mini/cursor-arrow-ripple.svg diff --git a/priv/icons/mini/device-phone-mobile.svg b/assets/icons/mini/device-phone-mobile.svg similarity index 100% rename from priv/icons/mini/device-phone-mobile.svg rename to assets/icons/mini/device-phone-mobile.svg diff --git a/priv/icons/mini/device-tablet.svg b/assets/icons/mini/device-tablet.svg similarity index 100% rename from priv/icons/mini/device-tablet.svg rename to assets/icons/mini/device-tablet.svg diff --git a/priv/icons/mini/document-arrow-down.svg b/assets/icons/mini/document-arrow-down.svg similarity index 100% rename from priv/icons/mini/document-arrow-down.svg rename to assets/icons/mini/document-arrow-down.svg diff --git a/priv/icons/mini/document-arrow-up.svg b/assets/icons/mini/document-arrow-up.svg similarity index 100% rename from priv/icons/mini/document-arrow-up.svg rename to assets/icons/mini/document-arrow-up.svg diff --git a/priv/icons/mini/document-chart-bar.svg b/assets/icons/mini/document-chart-bar.svg similarity index 100% rename from priv/icons/mini/document-chart-bar.svg rename to assets/icons/mini/document-chart-bar.svg diff --git a/priv/icons/mini/document-check.svg b/assets/icons/mini/document-check.svg similarity index 100% rename from priv/icons/mini/document-check.svg rename to assets/icons/mini/document-check.svg diff --git a/priv/icons/mini/document-duplicate.svg b/assets/icons/mini/document-duplicate.svg similarity index 100% rename from priv/icons/mini/document-duplicate.svg rename to assets/icons/mini/document-duplicate.svg diff --git a/priv/icons/mini/document-magnifying-glass.svg b/assets/icons/mini/document-magnifying-glass.svg similarity index 100% rename from priv/icons/mini/document-magnifying-glass.svg rename to assets/icons/mini/document-magnifying-glass.svg diff --git a/priv/icons/mini/document-minus.svg b/assets/icons/mini/document-minus.svg similarity index 100% rename from priv/icons/mini/document-minus.svg rename to assets/icons/mini/document-minus.svg diff --git a/priv/icons/mini/document-plus.svg b/assets/icons/mini/document-plus.svg similarity index 100% rename from priv/icons/mini/document-plus.svg rename to assets/icons/mini/document-plus.svg diff --git a/priv/icons/mini/document-text.svg b/assets/icons/mini/document-text.svg similarity index 100% rename from priv/icons/mini/document-text.svg rename to assets/icons/mini/document-text.svg diff --git a/priv/icons/mini/document.svg b/assets/icons/mini/document.svg similarity index 100% rename from priv/icons/mini/document.svg rename to assets/icons/mini/document.svg diff --git a/priv/icons/mini/ellipsis-horizontal-circle.svg b/assets/icons/mini/ellipsis-horizontal-circle.svg similarity index 100% rename from priv/icons/mini/ellipsis-horizontal-circle.svg rename to assets/icons/mini/ellipsis-horizontal-circle.svg diff --git a/priv/icons/mini/ellipsis-horizontal.svg b/assets/icons/mini/ellipsis-horizontal.svg similarity index 100% rename from priv/icons/mini/ellipsis-horizontal.svg rename to assets/icons/mini/ellipsis-horizontal.svg diff --git a/priv/icons/mini/ellipsis-vertical.svg b/assets/icons/mini/ellipsis-vertical.svg similarity index 100% rename from priv/icons/mini/ellipsis-vertical.svg rename to assets/icons/mini/ellipsis-vertical.svg diff --git a/priv/icons/mini/envelope-open.svg b/assets/icons/mini/envelope-open.svg similarity index 100% rename from priv/icons/mini/envelope-open.svg rename to assets/icons/mini/envelope-open.svg diff --git a/priv/icons/mini/envelope.svg b/assets/icons/mini/envelope.svg similarity index 100% rename from priv/icons/mini/envelope.svg rename to assets/icons/mini/envelope.svg diff --git a/priv/icons/mini/exclamation-circle.svg b/assets/icons/mini/exclamation-circle.svg similarity index 100% rename from priv/icons/mini/exclamation-circle.svg rename to assets/icons/mini/exclamation-circle.svg diff --git a/priv/icons/mini/exclamation-triangle.svg b/assets/icons/mini/exclamation-triangle.svg similarity index 100% rename from priv/icons/mini/exclamation-triangle.svg rename to assets/icons/mini/exclamation-triangle.svg diff --git a/priv/icons/mini/eye-slash.svg b/assets/icons/mini/eye-slash.svg similarity index 100% rename from priv/icons/mini/eye-slash.svg rename to assets/icons/mini/eye-slash.svg diff --git a/priv/icons/mini/eye.svg b/assets/icons/mini/eye.svg similarity index 100% rename from priv/icons/mini/eye.svg rename to assets/icons/mini/eye.svg diff --git a/priv/icons/mini/face-frown.svg b/assets/icons/mini/face-frown.svg similarity index 100% rename from priv/icons/mini/face-frown.svg rename to assets/icons/mini/face-frown.svg diff --git a/priv/icons/mini/face-smile.svg b/assets/icons/mini/face-smile.svg similarity index 100% rename from priv/icons/mini/face-smile.svg rename to assets/icons/mini/face-smile.svg diff --git a/priv/icons/mini/film.svg b/assets/icons/mini/film.svg similarity index 100% rename from priv/icons/mini/film.svg rename to assets/icons/mini/film.svg diff --git a/priv/icons/mini/finger-print.svg b/assets/icons/mini/finger-print.svg similarity index 100% rename from priv/icons/mini/finger-print.svg rename to assets/icons/mini/finger-print.svg diff --git a/priv/icons/mini/fire.svg b/assets/icons/mini/fire.svg similarity index 100% rename from priv/icons/mini/fire.svg rename to assets/icons/mini/fire.svg diff --git a/priv/icons/mini/flag.svg b/assets/icons/mini/flag.svg similarity index 100% rename from priv/icons/mini/flag.svg rename to assets/icons/mini/flag.svg diff --git a/priv/icons/mini/folder-arrow-down.svg b/assets/icons/mini/folder-arrow-down.svg similarity index 100% rename from priv/icons/mini/folder-arrow-down.svg rename to assets/icons/mini/folder-arrow-down.svg diff --git a/priv/icons/mini/folder-minus.svg b/assets/icons/mini/folder-minus.svg similarity index 100% rename from priv/icons/mini/folder-minus.svg rename to assets/icons/mini/folder-minus.svg diff --git a/priv/icons/mini/folder-open.svg b/assets/icons/mini/folder-open.svg similarity index 100% rename from priv/icons/mini/folder-open.svg rename to assets/icons/mini/folder-open.svg diff --git a/priv/icons/mini/folder-plus.svg b/assets/icons/mini/folder-plus.svg similarity index 100% rename from priv/icons/mini/folder-plus.svg rename to assets/icons/mini/folder-plus.svg diff --git a/priv/icons/mini/folder.svg b/assets/icons/mini/folder.svg similarity index 100% rename from priv/icons/mini/folder.svg rename to assets/icons/mini/folder.svg diff --git a/priv/icons/mini/forward.svg b/assets/icons/mini/forward.svg similarity index 100% rename from priv/icons/mini/forward.svg rename to assets/icons/mini/forward.svg diff --git a/priv/icons/mini/funnel.svg b/assets/icons/mini/funnel.svg similarity index 100% rename from priv/icons/mini/funnel.svg rename to assets/icons/mini/funnel.svg diff --git a/priv/icons/mini/gif.svg b/assets/icons/mini/gif.svg similarity index 100% rename from priv/icons/mini/gif.svg rename to assets/icons/mini/gif.svg diff --git a/priv/icons/mini/gift-top.svg b/assets/icons/mini/gift-top.svg similarity index 100% rename from priv/icons/mini/gift-top.svg rename to assets/icons/mini/gift-top.svg diff --git a/priv/icons/mini/gift.svg b/assets/icons/mini/gift.svg similarity index 100% rename from priv/icons/mini/gift.svg rename to assets/icons/mini/gift.svg diff --git a/priv/icons/mini/globe-alt.svg b/assets/icons/mini/globe-alt.svg similarity index 100% rename from priv/icons/mini/globe-alt.svg rename to assets/icons/mini/globe-alt.svg diff --git a/priv/icons/mini/globe-americas.svg b/assets/icons/mini/globe-americas.svg similarity index 100% rename from priv/icons/mini/globe-americas.svg rename to assets/icons/mini/globe-americas.svg diff --git a/priv/icons/mini/globe-asia-australia.svg b/assets/icons/mini/globe-asia-australia.svg similarity index 100% rename from priv/icons/mini/globe-asia-australia.svg rename to assets/icons/mini/globe-asia-australia.svg diff --git a/priv/icons/mini/globe-europe-africa.svg b/assets/icons/mini/globe-europe-africa.svg similarity index 100% rename from priv/icons/mini/globe-europe-africa.svg rename to assets/icons/mini/globe-europe-africa.svg diff --git a/priv/icons/mini/hand-raised.svg b/assets/icons/mini/hand-raised.svg similarity index 100% rename from priv/icons/mini/hand-raised.svg rename to assets/icons/mini/hand-raised.svg diff --git a/priv/icons/mini/hand-thumb-down.svg b/assets/icons/mini/hand-thumb-down.svg similarity index 100% rename from priv/icons/mini/hand-thumb-down.svg rename to assets/icons/mini/hand-thumb-down.svg diff --git a/priv/icons/mini/hand-thumb-up.svg b/assets/icons/mini/hand-thumb-up.svg similarity index 100% rename from priv/icons/mini/hand-thumb-up.svg rename to assets/icons/mini/hand-thumb-up.svg diff --git a/priv/icons/mini/hashtag.svg b/assets/icons/mini/hashtag.svg similarity index 100% rename from priv/icons/mini/hashtag.svg rename to assets/icons/mini/hashtag.svg diff --git a/priv/icons/mini/heart.svg b/assets/icons/mini/heart.svg similarity index 100% rename from priv/icons/mini/heart.svg rename to assets/icons/mini/heart.svg diff --git a/priv/icons/mini/home-modern.svg b/assets/icons/mini/home-modern.svg similarity index 100% rename from priv/icons/mini/home-modern.svg rename to assets/icons/mini/home-modern.svg diff --git a/priv/icons/mini/home.svg b/assets/icons/mini/home.svg similarity index 100% rename from priv/icons/mini/home.svg rename to assets/icons/mini/home.svg diff --git a/priv/icons/mini/identification.svg b/assets/icons/mini/identification.svg similarity index 100% rename from priv/icons/mini/identification.svg rename to assets/icons/mini/identification.svg diff --git a/priv/icons/mini/inbox-arrow-down.svg b/assets/icons/mini/inbox-arrow-down.svg similarity index 100% rename from priv/icons/mini/inbox-arrow-down.svg rename to assets/icons/mini/inbox-arrow-down.svg diff --git a/priv/icons/mini/inbox-stack.svg b/assets/icons/mini/inbox-stack.svg similarity index 100% rename from priv/icons/mini/inbox-stack.svg rename to assets/icons/mini/inbox-stack.svg diff --git a/priv/icons/mini/inbox.svg b/assets/icons/mini/inbox.svg similarity index 100% rename from priv/icons/mini/inbox.svg rename to assets/icons/mini/inbox.svg diff --git a/priv/icons/mini/information-circle.svg b/assets/icons/mini/information-circle.svg similarity index 100% rename from priv/icons/mini/information-circle.svg rename to assets/icons/mini/information-circle.svg diff --git a/priv/icons/mini/key.svg b/assets/icons/mini/key.svg similarity index 100% rename from priv/icons/mini/key.svg rename to assets/icons/mini/key.svg diff --git a/priv/icons/mini/language.svg b/assets/icons/mini/language.svg similarity index 100% rename from priv/icons/mini/language.svg rename to assets/icons/mini/language.svg diff --git a/priv/icons/mini/lifebuoy.svg b/assets/icons/mini/lifebuoy.svg similarity index 100% rename from priv/icons/mini/lifebuoy.svg rename to assets/icons/mini/lifebuoy.svg diff --git a/priv/icons/mini/light-bulb.svg b/assets/icons/mini/light-bulb.svg similarity index 100% rename from priv/icons/mini/light-bulb.svg rename to assets/icons/mini/light-bulb.svg diff --git a/priv/icons/mini/link.svg b/assets/icons/mini/link.svg similarity index 100% rename from priv/icons/mini/link.svg rename to assets/icons/mini/link.svg diff --git a/priv/icons/mini/list-bullet.svg b/assets/icons/mini/list-bullet.svg similarity index 100% rename from priv/icons/mini/list-bullet.svg rename to assets/icons/mini/list-bullet.svg diff --git a/priv/icons/mini/lock-closed.svg b/assets/icons/mini/lock-closed.svg similarity index 100% rename from priv/icons/mini/lock-closed.svg rename to assets/icons/mini/lock-closed.svg diff --git a/priv/icons/mini/lock-open.svg b/assets/icons/mini/lock-open.svg similarity index 100% rename from priv/icons/mini/lock-open.svg rename to assets/icons/mini/lock-open.svg diff --git a/priv/icons/mini/magnifying-glass-circle.svg b/assets/icons/mini/magnifying-glass-circle.svg similarity index 100% rename from priv/icons/mini/magnifying-glass-circle.svg rename to assets/icons/mini/magnifying-glass-circle.svg diff --git a/priv/icons/mini/magnifying-glass-minus.svg b/assets/icons/mini/magnifying-glass-minus.svg similarity index 100% rename from priv/icons/mini/magnifying-glass-minus.svg rename to assets/icons/mini/magnifying-glass-minus.svg diff --git a/priv/icons/mini/magnifying-glass-plus.svg b/assets/icons/mini/magnifying-glass-plus.svg similarity index 100% rename from priv/icons/mini/magnifying-glass-plus.svg rename to assets/icons/mini/magnifying-glass-plus.svg diff --git a/priv/icons/mini/magnifying-glass.svg b/assets/icons/mini/magnifying-glass.svg similarity index 100% rename from priv/icons/mini/magnifying-glass.svg rename to assets/icons/mini/magnifying-glass.svg diff --git a/priv/icons/mini/map-pin.svg b/assets/icons/mini/map-pin.svg similarity index 100% rename from priv/icons/mini/map-pin.svg rename to assets/icons/mini/map-pin.svg diff --git a/priv/icons/mini/map.svg b/assets/icons/mini/map.svg similarity index 100% rename from priv/icons/mini/map.svg rename to assets/icons/mini/map.svg diff --git a/priv/icons/mini/megaphone.svg b/assets/icons/mini/megaphone.svg similarity index 100% rename from priv/icons/mini/megaphone.svg rename to assets/icons/mini/megaphone.svg diff --git a/priv/icons/mini/microphone.svg b/assets/icons/mini/microphone.svg similarity index 100% rename from priv/icons/mini/microphone.svg rename to assets/icons/mini/microphone.svg diff --git a/priv/icons/mini/minus-circle.svg b/assets/icons/mini/minus-circle.svg similarity index 100% rename from priv/icons/mini/minus-circle.svg rename to assets/icons/mini/minus-circle.svg diff --git a/priv/icons/mini/minus-small.svg b/assets/icons/mini/minus-small.svg similarity index 100% rename from priv/icons/mini/minus-small.svg rename to assets/icons/mini/minus-small.svg diff --git a/priv/icons/mini/minus.svg b/assets/icons/mini/minus.svg similarity index 100% rename from priv/icons/mini/minus.svg rename to assets/icons/mini/minus.svg diff --git a/priv/icons/mini/moon.svg b/assets/icons/mini/moon.svg similarity index 100% rename from priv/icons/mini/moon.svg rename to assets/icons/mini/moon.svg diff --git a/priv/icons/mini/musical-note.svg b/assets/icons/mini/musical-note.svg similarity index 100% rename from priv/icons/mini/musical-note.svg rename to assets/icons/mini/musical-note.svg diff --git a/priv/icons/mini/newspaper.svg b/assets/icons/mini/newspaper.svg similarity index 100% rename from priv/icons/mini/newspaper.svg rename to assets/icons/mini/newspaper.svg diff --git a/priv/icons/mini/no-symbol.svg b/assets/icons/mini/no-symbol.svg similarity index 100% rename from priv/icons/mini/no-symbol.svg rename to assets/icons/mini/no-symbol.svg diff --git a/priv/icons/mini/paint-brush.svg b/assets/icons/mini/paint-brush.svg similarity index 100% rename from priv/icons/mini/paint-brush.svg rename to assets/icons/mini/paint-brush.svg diff --git a/priv/icons/mini/paper-airplane.svg b/assets/icons/mini/paper-airplane.svg similarity index 100% rename from priv/icons/mini/paper-airplane.svg rename to assets/icons/mini/paper-airplane.svg diff --git a/priv/icons/mini/paper-clip.svg b/assets/icons/mini/paper-clip.svg similarity index 100% rename from priv/icons/mini/paper-clip.svg rename to assets/icons/mini/paper-clip.svg diff --git a/priv/icons/mini/pause.svg b/assets/icons/mini/pause.svg similarity index 100% rename from priv/icons/mini/pause.svg rename to assets/icons/mini/pause.svg diff --git a/priv/icons/mini/pencil-square.svg b/assets/icons/mini/pencil-square.svg similarity index 100% rename from priv/icons/mini/pencil-square.svg rename to assets/icons/mini/pencil-square.svg diff --git a/priv/icons/mini/pencil.svg b/assets/icons/mini/pencil.svg similarity index 100% rename from priv/icons/mini/pencil.svg rename to assets/icons/mini/pencil.svg diff --git a/priv/icons/mini/phone-arrow-down-left.svg b/assets/icons/mini/phone-arrow-down-left.svg similarity index 100% rename from priv/icons/mini/phone-arrow-down-left.svg rename to assets/icons/mini/phone-arrow-down-left.svg diff --git a/priv/icons/mini/phone-arrow-up-right.svg b/assets/icons/mini/phone-arrow-up-right.svg similarity index 100% rename from priv/icons/mini/phone-arrow-up-right.svg rename to assets/icons/mini/phone-arrow-up-right.svg diff --git a/priv/icons/mini/phone-x-mark.svg b/assets/icons/mini/phone-x-mark.svg similarity index 100% rename from priv/icons/mini/phone-x-mark.svg rename to assets/icons/mini/phone-x-mark.svg diff --git a/priv/icons/mini/phone.svg b/assets/icons/mini/phone.svg similarity index 100% rename from priv/icons/mini/phone.svg rename to assets/icons/mini/phone.svg diff --git a/priv/icons/mini/photo.svg b/assets/icons/mini/photo.svg similarity index 100% rename from priv/icons/mini/photo.svg rename to assets/icons/mini/photo.svg diff --git a/priv/icons/mini/play-pause.svg b/assets/icons/mini/play-pause.svg similarity index 100% rename from priv/icons/mini/play-pause.svg rename to assets/icons/mini/play-pause.svg diff --git a/priv/icons/mini/play.svg b/assets/icons/mini/play.svg similarity index 100% rename from priv/icons/mini/play.svg rename to assets/icons/mini/play.svg diff --git a/priv/icons/mini/plus-circle.svg b/assets/icons/mini/plus-circle.svg similarity index 100% rename from priv/icons/mini/plus-circle.svg rename to assets/icons/mini/plus-circle.svg diff --git a/priv/icons/mini/plus-small.svg b/assets/icons/mini/plus-small.svg similarity index 100% rename from priv/icons/mini/plus-small.svg rename to assets/icons/mini/plus-small.svg diff --git a/priv/icons/mini/plus.svg b/assets/icons/mini/plus.svg similarity index 100% rename from priv/icons/mini/plus.svg rename to assets/icons/mini/plus.svg diff --git a/priv/icons/mini/presentation-chart-bar.svg b/assets/icons/mini/presentation-chart-bar.svg similarity index 100% rename from priv/icons/mini/presentation-chart-bar.svg rename to assets/icons/mini/presentation-chart-bar.svg diff --git a/priv/icons/mini/presentation-chart-line.svg b/assets/icons/mini/presentation-chart-line.svg similarity index 100% rename from priv/icons/mini/presentation-chart-line.svg rename to assets/icons/mini/presentation-chart-line.svg diff --git a/priv/icons/mini/printer.svg b/assets/icons/mini/printer.svg similarity index 100% rename from priv/icons/mini/printer.svg rename to assets/icons/mini/printer.svg diff --git a/priv/icons/mini/puzzle-piece.svg b/assets/icons/mini/puzzle-piece.svg similarity index 100% rename from priv/icons/mini/puzzle-piece.svg rename to assets/icons/mini/puzzle-piece.svg diff --git a/priv/icons/mini/qr-code.svg b/assets/icons/mini/qr-code.svg similarity index 100% rename from priv/icons/mini/qr-code.svg rename to assets/icons/mini/qr-code.svg diff --git a/priv/icons/mini/question-mark-circle.svg b/assets/icons/mini/question-mark-circle.svg similarity index 100% rename from priv/icons/mini/question-mark-circle.svg rename to assets/icons/mini/question-mark-circle.svg diff --git a/priv/icons/mini/queue-list.svg b/assets/icons/mini/queue-list.svg similarity index 100% rename from priv/icons/mini/queue-list.svg rename to assets/icons/mini/queue-list.svg diff --git a/priv/icons/mini/radio.svg b/assets/icons/mini/radio.svg similarity index 100% rename from priv/icons/mini/radio.svg rename to assets/icons/mini/radio.svg diff --git a/priv/icons/mini/receipt-percent.svg b/assets/icons/mini/receipt-percent.svg similarity index 100% rename from priv/icons/mini/receipt-percent.svg rename to assets/icons/mini/receipt-percent.svg diff --git a/priv/icons/mini/receipt-refund.svg b/assets/icons/mini/receipt-refund.svg similarity index 100% rename from priv/icons/mini/receipt-refund.svg rename to assets/icons/mini/receipt-refund.svg diff --git a/priv/icons/mini/rectangle-group.svg b/assets/icons/mini/rectangle-group.svg similarity index 100% rename from priv/icons/mini/rectangle-group.svg rename to assets/icons/mini/rectangle-group.svg diff --git a/priv/icons/mini/rectangle-stack.svg b/assets/icons/mini/rectangle-stack.svg similarity index 100% rename from priv/icons/mini/rectangle-stack.svg rename to assets/icons/mini/rectangle-stack.svg diff --git a/priv/icons/mini/rss.svg b/assets/icons/mini/rss.svg similarity index 100% rename from priv/icons/mini/rss.svg rename to assets/icons/mini/rss.svg diff --git a/priv/icons/mini/scale.svg b/assets/icons/mini/scale.svg similarity index 100% rename from priv/icons/mini/scale.svg rename to assets/icons/mini/scale.svg diff --git a/priv/icons/mini/scissors.svg b/assets/icons/mini/scissors.svg similarity index 100% rename from priv/icons/mini/scissors.svg rename to assets/icons/mini/scissors.svg diff --git a/priv/icons/mini/server-stack.svg b/assets/icons/mini/server-stack.svg similarity index 100% rename from priv/icons/mini/server-stack.svg rename to assets/icons/mini/server-stack.svg diff --git a/priv/icons/mini/server.svg b/assets/icons/mini/server.svg similarity index 100% rename from priv/icons/mini/server.svg rename to assets/icons/mini/server.svg diff --git a/priv/icons/mini/share.svg b/assets/icons/mini/share.svg similarity index 100% rename from priv/icons/mini/share.svg rename to assets/icons/mini/share.svg diff --git a/priv/icons/mini/shield-check.svg b/assets/icons/mini/shield-check.svg similarity index 100% rename from priv/icons/mini/shield-check.svg rename to assets/icons/mini/shield-check.svg diff --git a/priv/icons/mini/shield-exclamation.svg b/assets/icons/mini/shield-exclamation.svg similarity index 100% rename from priv/icons/mini/shield-exclamation.svg rename to assets/icons/mini/shield-exclamation.svg diff --git a/priv/icons/mini/shopping-bag.svg b/assets/icons/mini/shopping-bag.svg similarity index 100% rename from priv/icons/mini/shopping-bag.svg rename to assets/icons/mini/shopping-bag.svg diff --git a/priv/icons/mini/shopping-cart.svg b/assets/icons/mini/shopping-cart.svg similarity index 100% rename from priv/icons/mini/shopping-cart.svg rename to assets/icons/mini/shopping-cart.svg diff --git a/priv/icons/mini/signal-slash.svg b/assets/icons/mini/signal-slash.svg similarity index 100% rename from priv/icons/mini/signal-slash.svg rename to assets/icons/mini/signal-slash.svg diff --git a/priv/icons/mini/signal.svg b/assets/icons/mini/signal.svg similarity index 100% rename from priv/icons/mini/signal.svg rename to assets/icons/mini/signal.svg diff --git a/priv/icons/mini/sparkles.svg b/assets/icons/mini/sparkles.svg similarity index 100% rename from priv/icons/mini/sparkles.svg rename to assets/icons/mini/sparkles.svg diff --git a/priv/icons/mini/speaker-wave.svg b/assets/icons/mini/speaker-wave.svg similarity index 100% rename from priv/icons/mini/speaker-wave.svg rename to assets/icons/mini/speaker-wave.svg diff --git a/priv/icons/mini/speaker-x-mark.svg b/assets/icons/mini/speaker-x-mark.svg similarity index 100% rename from priv/icons/mini/speaker-x-mark.svg rename to assets/icons/mini/speaker-x-mark.svg diff --git a/priv/icons/mini/square-2-stack.svg b/assets/icons/mini/square-2-stack.svg similarity index 100% rename from priv/icons/mini/square-2-stack.svg rename to assets/icons/mini/square-2-stack.svg diff --git a/priv/icons/mini/squares-2x2.svg b/assets/icons/mini/squares-2x2.svg similarity index 100% rename from priv/icons/mini/squares-2x2.svg rename to assets/icons/mini/squares-2x2.svg diff --git a/priv/icons/mini/squares-plus.svg b/assets/icons/mini/squares-plus.svg similarity index 100% rename from priv/icons/mini/squares-plus.svg rename to assets/icons/mini/squares-plus.svg diff --git a/priv/icons/mini/star.svg b/assets/icons/mini/star.svg similarity index 100% rename from priv/icons/mini/star.svg rename to assets/icons/mini/star.svg diff --git a/priv/icons/mini/stop.svg b/assets/icons/mini/stop.svg similarity index 100% rename from priv/icons/mini/stop.svg rename to assets/icons/mini/stop.svg diff --git a/priv/icons/mini/sun.svg b/assets/icons/mini/sun.svg similarity index 100% rename from priv/icons/mini/sun.svg rename to assets/icons/mini/sun.svg diff --git a/priv/icons/mini/swatch.svg b/assets/icons/mini/swatch.svg similarity index 100% rename from priv/icons/mini/swatch.svg rename to assets/icons/mini/swatch.svg diff --git a/priv/icons/mini/table-cells.svg b/assets/icons/mini/table-cells.svg similarity index 100% rename from priv/icons/mini/table-cells.svg rename to assets/icons/mini/table-cells.svg diff --git a/priv/icons/mini/tag.svg b/assets/icons/mini/tag.svg similarity index 100% rename from priv/icons/mini/tag.svg rename to assets/icons/mini/tag.svg diff --git a/priv/icons/mini/ticket.svg b/assets/icons/mini/ticket.svg similarity index 100% rename from priv/icons/mini/ticket.svg rename to assets/icons/mini/ticket.svg diff --git a/priv/icons/mini/trash.svg b/assets/icons/mini/trash.svg similarity index 100% rename from priv/icons/mini/trash.svg rename to assets/icons/mini/trash.svg diff --git a/priv/icons/mini/truck.svg b/assets/icons/mini/truck.svg similarity index 100% rename from priv/icons/mini/truck.svg rename to assets/icons/mini/truck.svg diff --git a/priv/icons/mini/user-circle.svg b/assets/icons/mini/user-circle.svg similarity index 100% rename from priv/icons/mini/user-circle.svg rename to assets/icons/mini/user-circle.svg diff --git a/priv/icons/mini/user-group.svg b/assets/icons/mini/user-group.svg similarity index 100% rename from priv/icons/mini/user-group.svg rename to assets/icons/mini/user-group.svg diff --git a/priv/icons/mini/user-minus.svg b/assets/icons/mini/user-minus.svg similarity index 100% rename from priv/icons/mini/user-minus.svg rename to assets/icons/mini/user-minus.svg diff --git a/priv/icons/mini/user-plus.svg b/assets/icons/mini/user-plus.svg similarity index 100% rename from priv/icons/mini/user-plus.svg rename to assets/icons/mini/user-plus.svg diff --git a/priv/icons/mini/user.svg b/assets/icons/mini/user.svg similarity index 100% rename from priv/icons/mini/user.svg rename to assets/icons/mini/user.svg diff --git a/priv/icons/mini/users.svg b/assets/icons/mini/users.svg similarity index 100% rename from priv/icons/mini/users.svg rename to assets/icons/mini/users.svg diff --git a/priv/icons/mini/variable.svg b/assets/icons/mini/variable.svg similarity index 100% rename from priv/icons/mini/variable.svg rename to assets/icons/mini/variable.svg diff --git a/priv/icons/mini/video-camera-slash.svg b/assets/icons/mini/video-camera-slash.svg similarity index 100% rename from priv/icons/mini/video-camera-slash.svg rename to assets/icons/mini/video-camera-slash.svg diff --git a/priv/icons/mini/video-camera.svg b/assets/icons/mini/video-camera.svg similarity index 100% rename from priv/icons/mini/video-camera.svg rename to assets/icons/mini/video-camera.svg diff --git a/priv/icons/mini/view-columns.svg b/assets/icons/mini/view-columns.svg similarity index 100% rename from priv/icons/mini/view-columns.svg rename to assets/icons/mini/view-columns.svg diff --git a/priv/icons/mini/wallet.svg b/assets/icons/mini/wallet.svg similarity index 100% rename from priv/icons/mini/wallet.svg rename to assets/icons/mini/wallet.svg diff --git a/priv/icons/mini/wifi.svg b/assets/icons/mini/wifi.svg similarity index 100% rename from priv/icons/mini/wifi.svg rename to assets/icons/mini/wifi.svg diff --git a/priv/icons/mini/wrench-screwdriver.svg b/assets/icons/mini/wrench-screwdriver.svg similarity index 100% rename from priv/icons/mini/wrench-screwdriver.svg rename to assets/icons/mini/wrench-screwdriver.svg diff --git a/priv/icons/mini/wrench.svg b/assets/icons/mini/wrench.svg similarity index 100% rename from priv/icons/mini/wrench.svg rename to assets/icons/mini/wrench.svg diff --git a/priv/icons/mini/x-circle.svg b/assets/icons/mini/x-circle.svg similarity index 100% rename from priv/icons/mini/x-circle.svg rename to assets/icons/mini/x-circle.svg diff --git a/priv/icons/mini/x-mark.svg b/assets/icons/mini/x-mark.svg similarity index 100% rename from priv/icons/mini/x-mark.svg rename to assets/icons/mini/x-mark.svg diff --git a/priv/icons/outline/academic-cap.svg b/assets/icons/outline/academic-cap.svg similarity index 100% rename from priv/icons/outline/academic-cap.svg rename to assets/icons/outline/academic-cap.svg diff --git a/priv/icons/outline/adjustments-horizontal.svg b/assets/icons/outline/adjustments-horizontal.svg similarity index 100% rename from priv/icons/outline/adjustments-horizontal.svg rename to assets/icons/outline/adjustments-horizontal.svg diff --git a/priv/icons/outline/adjustments-vertical.svg b/assets/icons/outline/adjustments-vertical.svg similarity index 100% rename from priv/icons/outline/adjustments-vertical.svg rename to assets/icons/outline/adjustments-vertical.svg diff --git a/priv/icons/outline/archive-box-arrow-down.svg b/assets/icons/outline/archive-box-arrow-down.svg similarity index 100% rename from priv/icons/outline/archive-box-arrow-down.svg rename to assets/icons/outline/archive-box-arrow-down.svg diff --git a/priv/icons/outline/archive-box-x-mark.svg b/assets/icons/outline/archive-box-x-mark.svg similarity index 100% rename from priv/icons/outline/archive-box-x-mark.svg rename to assets/icons/outline/archive-box-x-mark.svg diff --git a/priv/icons/outline/archive-box.svg b/assets/icons/outline/archive-box.svg similarity index 100% rename from priv/icons/outline/archive-box.svg rename to assets/icons/outline/archive-box.svg diff --git a/priv/icons/outline/arrow-down-circle.svg b/assets/icons/outline/arrow-down-circle.svg similarity index 100% rename from priv/icons/outline/arrow-down-circle.svg rename to assets/icons/outline/arrow-down-circle.svg diff --git a/priv/icons/outline/arrow-down-left.svg b/assets/icons/outline/arrow-down-left.svg similarity index 100% rename from priv/icons/outline/arrow-down-left.svg rename to assets/icons/outline/arrow-down-left.svg diff --git a/priv/icons/outline/arrow-down-on-square-stack.svg b/assets/icons/outline/arrow-down-on-square-stack.svg similarity index 100% rename from priv/icons/outline/arrow-down-on-square-stack.svg rename to assets/icons/outline/arrow-down-on-square-stack.svg diff --git a/priv/icons/outline/arrow-down-on-square.svg b/assets/icons/outline/arrow-down-on-square.svg similarity index 100% rename from priv/icons/outline/arrow-down-on-square.svg rename to assets/icons/outline/arrow-down-on-square.svg diff --git a/priv/icons/outline/arrow-down-right.svg b/assets/icons/outline/arrow-down-right.svg similarity index 100% rename from priv/icons/outline/arrow-down-right.svg rename to assets/icons/outline/arrow-down-right.svg diff --git a/priv/icons/outline/arrow-down-tray.svg b/assets/icons/outline/arrow-down-tray.svg similarity index 100% rename from priv/icons/outline/arrow-down-tray.svg rename to assets/icons/outline/arrow-down-tray.svg diff --git a/priv/icons/outline/arrow-down.svg b/assets/icons/outline/arrow-down.svg similarity index 100% rename from priv/icons/outline/arrow-down.svg rename to assets/icons/outline/arrow-down.svg diff --git a/priv/icons/outline/arrow-left-circle.svg b/assets/icons/outline/arrow-left-circle.svg similarity index 100% rename from priv/icons/outline/arrow-left-circle.svg rename to assets/icons/outline/arrow-left-circle.svg diff --git a/priv/icons/outline/arrow-left-on-rectangle.svg b/assets/icons/outline/arrow-left-on-rectangle.svg similarity index 100% rename from priv/icons/outline/arrow-left-on-rectangle.svg rename to assets/icons/outline/arrow-left-on-rectangle.svg diff --git a/priv/icons/outline/arrow-left.svg b/assets/icons/outline/arrow-left.svg similarity index 100% rename from priv/icons/outline/arrow-left.svg rename to assets/icons/outline/arrow-left.svg diff --git a/priv/icons/outline/arrow-long-down.svg b/assets/icons/outline/arrow-long-down.svg similarity index 100% rename from priv/icons/outline/arrow-long-down.svg rename to assets/icons/outline/arrow-long-down.svg diff --git a/priv/icons/outline/arrow-long-left.svg b/assets/icons/outline/arrow-long-left.svg similarity index 100% rename from priv/icons/outline/arrow-long-left.svg rename to assets/icons/outline/arrow-long-left.svg diff --git a/priv/icons/outline/arrow-long-right.svg b/assets/icons/outline/arrow-long-right.svg similarity index 100% rename from priv/icons/outline/arrow-long-right.svg rename to assets/icons/outline/arrow-long-right.svg diff --git a/priv/icons/outline/arrow-long-up.svg b/assets/icons/outline/arrow-long-up.svg similarity index 100% rename from priv/icons/outline/arrow-long-up.svg rename to assets/icons/outline/arrow-long-up.svg diff --git a/priv/icons/outline/arrow-path-rounded-square.svg b/assets/icons/outline/arrow-path-rounded-square.svg similarity index 100% rename from priv/icons/outline/arrow-path-rounded-square.svg rename to assets/icons/outline/arrow-path-rounded-square.svg diff --git a/priv/icons/outline/arrow-path.svg b/assets/icons/outline/arrow-path.svg similarity index 100% rename from priv/icons/outline/arrow-path.svg rename to assets/icons/outline/arrow-path.svg diff --git a/priv/icons/outline/arrow-right-circle.svg b/assets/icons/outline/arrow-right-circle.svg similarity index 100% rename from priv/icons/outline/arrow-right-circle.svg rename to assets/icons/outline/arrow-right-circle.svg diff --git a/priv/icons/outline/arrow-right-on-rectangle.svg b/assets/icons/outline/arrow-right-on-rectangle.svg similarity index 100% rename from priv/icons/outline/arrow-right-on-rectangle.svg rename to assets/icons/outline/arrow-right-on-rectangle.svg diff --git a/priv/icons/outline/arrow-right.svg b/assets/icons/outline/arrow-right.svg similarity index 100% rename from priv/icons/outline/arrow-right.svg rename to assets/icons/outline/arrow-right.svg diff --git a/priv/icons/outline/arrow-small-down.svg b/assets/icons/outline/arrow-small-down.svg similarity index 100% rename from priv/icons/outline/arrow-small-down.svg rename to assets/icons/outline/arrow-small-down.svg diff --git a/priv/icons/outline/arrow-small-left.svg b/assets/icons/outline/arrow-small-left.svg similarity index 100% rename from priv/icons/outline/arrow-small-left.svg rename to assets/icons/outline/arrow-small-left.svg diff --git a/priv/icons/outline/arrow-small-right.svg b/assets/icons/outline/arrow-small-right.svg similarity index 100% rename from priv/icons/outline/arrow-small-right.svg rename to assets/icons/outline/arrow-small-right.svg diff --git a/priv/icons/outline/arrow-small-up.svg b/assets/icons/outline/arrow-small-up.svg similarity index 100% rename from priv/icons/outline/arrow-small-up.svg rename to assets/icons/outline/arrow-small-up.svg diff --git a/priv/icons/outline/arrow-top-right-on-square.svg b/assets/icons/outline/arrow-top-right-on-square.svg similarity index 100% rename from priv/icons/outline/arrow-top-right-on-square.svg rename to assets/icons/outline/arrow-top-right-on-square.svg diff --git a/priv/icons/outline/arrow-trending-down.svg b/assets/icons/outline/arrow-trending-down.svg similarity index 100% rename from priv/icons/outline/arrow-trending-down.svg rename to assets/icons/outline/arrow-trending-down.svg diff --git a/priv/icons/outline/arrow-trending-up.svg b/assets/icons/outline/arrow-trending-up.svg similarity index 100% rename from priv/icons/outline/arrow-trending-up.svg rename to assets/icons/outline/arrow-trending-up.svg diff --git a/priv/icons/outline/arrow-up-circle.svg b/assets/icons/outline/arrow-up-circle.svg similarity index 100% rename from priv/icons/outline/arrow-up-circle.svg rename to assets/icons/outline/arrow-up-circle.svg diff --git a/priv/icons/outline/arrow-up-left.svg b/assets/icons/outline/arrow-up-left.svg similarity index 100% rename from priv/icons/outline/arrow-up-left.svg rename to assets/icons/outline/arrow-up-left.svg diff --git a/priv/icons/outline/arrow-up-on-square-stack.svg b/assets/icons/outline/arrow-up-on-square-stack.svg similarity index 100% rename from priv/icons/outline/arrow-up-on-square-stack.svg rename to assets/icons/outline/arrow-up-on-square-stack.svg diff --git a/priv/icons/outline/arrow-up-on-square.svg b/assets/icons/outline/arrow-up-on-square.svg similarity index 100% rename from priv/icons/outline/arrow-up-on-square.svg rename to assets/icons/outline/arrow-up-on-square.svg diff --git a/priv/icons/outline/arrow-up-right.svg b/assets/icons/outline/arrow-up-right.svg similarity index 100% rename from priv/icons/outline/arrow-up-right.svg rename to assets/icons/outline/arrow-up-right.svg diff --git a/priv/icons/outline/arrow-up-tray.svg b/assets/icons/outline/arrow-up-tray.svg similarity index 100% rename from priv/icons/outline/arrow-up-tray.svg rename to assets/icons/outline/arrow-up-tray.svg diff --git a/priv/icons/outline/arrow-up.svg b/assets/icons/outline/arrow-up.svg similarity index 100% rename from priv/icons/outline/arrow-up.svg rename to assets/icons/outline/arrow-up.svg diff --git a/priv/icons/outline/arrow-uturn-down.svg b/assets/icons/outline/arrow-uturn-down.svg similarity index 100% rename from priv/icons/outline/arrow-uturn-down.svg rename to assets/icons/outline/arrow-uturn-down.svg diff --git a/priv/icons/outline/arrow-uturn-left.svg b/assets/icons/outline/arrow-uturn-left.svg similarity index 100% rename from priv/icons/outline/arrow-uturn-left.svg rename to assets/icons/outline/arrow-uturn-left.svg diff --git a/priv/icons/outline/arrow-uturn-right.svg b/assets/icons/outline/arrow-uturn-right.svg similarity index 100% rename from priv/icons/outline/arrow-uturn-right.svg rename to assets/icons/outline/arrow-uturn-right.svg diff --git a/priv/icons/outline/arrow-uturn-up.svg b/assets/icons/outline/arrow-uturn-up.svg similarity index 100% rename from priv/icons/outline/arrow-uturn-up.svg rename to assets/icons/outline/arrow-uturn-up.svg diff --git a/priv/icons/outline/arrows-pointing-in.svg b/assets/icons/outline/arrows-pointing-in.svg similarity index 100% rename from priv/icons/outline/arrows-pointing-in.svg rename to assets/icons/outline/arrows-pointing-in.svg diff --git a/priv/icons/outline/arrows-pointing-out.svg b/assets/icons/outline/arrows-pointing-out.svg similarity index 100% rename from priv/icons/outline/arrows-pointing-out.svg rename to assets/icons/outline/arrows-pointing-out.svg diff --git a/priv/icons/outline/arrows-right-left.svg b/assets/icons/outline/arrows-right-left.svg similarity index 100% rename from priv/icons/outline/arrows-right-left.svg rename to assets/icons/outline/arrows-right-left.svg diff --git a/priv/icons/outline/arrows-up-down.svg b/assets/icons/outline/arrows-up-down.svg similarity index 100% rename from priv/icons/outline/arrows-up-down.svg rename to assets/icons/outline/arrows-up-down.svg diff --git a/priv/icons/outline/at-symbol.svg b/assets/icons/outline/at-symbol.svg similarity index 100% rename from priv/icons/outline/at-symbol.svg rename to assets/icons/outline/at-symbol.svg diff --git a/priv/icons/outline/backspace.svg b/assets/icons/outline/backspace.svg similarity index 100% rename from priv/icons/outline/backspace.svg rename to assets/icons/outline/backspace.svg diff --git a/priv/icons/outline/backward.svg b/assets/icons/outline/backward.svg similarity index 100% rename from priv/icons/outline/backward.svg rename to assets/icons/outline/backward.svg diff --git a/priv/icons/outline/banknotes.svg b/assets/icons/outline/banknotes.svg similarity index 100% rename from priv/icons/outline/banknotes.svg rename to assets/icons/outline/banknotes.svg diff --git a/priv/icons/outline/bars-2.svg b/assets/icons/outline/bars-2.svg similarity index 100% rename from priv/icons/outline/bars-2.svg rename to assets/icons/outline/bars-2.svg diff --git a/priv/icons/outline/bars-3-bottom-left.svg b/assets/icons/outline/bars-3-bottom-left.svg similarity index 100% rename from priv/icons/outline/bars-3-bottom-left.svg rename to assets/icons/outline/bars-3-bottom-left.svg diff --git a/priv/icons/outline/bars-3-bottom-right.svg b/assets/icons/outline/bars-3-bottom-right.svg similarity index 100% rename from priv/icons/outline/bars-3-bottom-right.svg rename to assets/icons/outline/bars-3-bottom-right.svg diff --git a/priv/icons/outline/bars-3-center-left.svg b/assets/icons/outline/bars-3-center-left.svg similarity index 100% rename from priv/icons/outline/bars-3-center-left.svg rename to assets/icons/outline/bars-3-center-left.svg diff --git a/priv/icons/outline/bars-3.svg b/assets/icons/outline/bars-3.svg similarity index 100% rename from priv/icons/outline/bars-3.svg rename to assets/icons/outline/bars-3.svg diff --git a/priv/icons/outline/bars-4.svg b/assets/icons/outline/bars-4.svg similarity index 100% rename from priv/icons/outline/bars-4.svg rename to assets/icons/outline/bars-4.svg diff --git a/priv/icons/outline/bars-arrow-down.svg b/assets/icons/outline/bars-arrow-down.svg similarity index 100% rename from priv/icons/outline/bars-arrow-down.svg rename to assets/icons/outline/bars-arrow-down.svg diff --git a/priv/icons/outline/bars-arrow-up.svg b/assets/icons/outline/bars-arrow-up.svg similarity index 100% rename from priv/icons/outline/bars-arrow-up.svg rename to assets/icons/outline/bars-arrow-up.svg diff --git a/priv/icons/outline/battery-0.svg b/assets/icons/outline/battery-0.svg similarity index 100% rename from priv/icons/outline/battery-0.svg rename to assets/icons/outline/battery-0.svg diff --git a/priv/icons/outline/battery-100.svg b/assets/icons/outline/battery-100.svg similarity index 100% rename from priv/icons/outline/battery-100.svg rename to assets/icons/outline/battery-100.svg diff --git a/priv/icons/outline/battery-50.svg b/assets/icons/outline/battery-50.svg similarity index 100% rename from priv/icons/outline/battery-50.svg rename to assets/icons/outline/battery-50.svg diff --git a/priv/icons/outline/beaker.svg b/assets/icons/outline/beaker.svg similarity index 100% rename from priv/icons/outline/beaker.svg rename to assets/icons/outline/beaker.svg diff --git a/priv/icons/outline/bell-alert.svg b/assets/icons/outline/bell-alert.svg similarity index 100% rename from priv/icons/outline/bell-alert.svg rename to assets/icons/outline/bell-alert.svg diff --git a/priv/icons/outline/bell-slash.svg b/assets/icons/outline/bell-slash.svg similarity index 100% rename from priv/icons/outline/bell-slash.svg rename to assets/icons/outline/bell-slash.svg diff --git a/priv/icons/outline/bell-snooze.svg b/assets/icons/outline/bell-snooze.svg similarity index 100% rename from priv/icons/outline/bell-snooze.svg rename to assets/icons/outline/bell-snooze.svg diff --git a/priv/icons/outline/bell.svg b/assets/icons/outline/bell.svg similarity index 100% rename from priv/icons/outline/bell.svg rename to assets/icons/outline/bell.svg diff --git a/priv/icons/outline/bolt-slash.svg b/assets/icons/outline/bolt-slash.svg similarity index 100% rename from priv/icons/outline/bolt-slash.svg rename to assets/icons/outline/bolt-slash.svg diff --git a/priv/icons/outline/bolt.svg b/assets/icons/outline/bolt.svg similarity index 100% rename from priv/icons/outline/bolt.svg rename to assets/icons/outline/bolt.svg diff --git a/priv/icons/outline/book-open.svg b/assets/icons/outline/book-open.svg similarity index 100% rename from priv/icons/outline/book-open.svg rename to assets/icons/outline/book-open.svg diff --git a/priv/icons/outline/bookmark-slash.svg b/assets/icons/outline/bookmark-slash.svg similarity index 100% rename from priv/icons/outline/bookmark-slash.svg rename to assets/icons/outline/bookmark-slash.svg diff --git a/priv/icons/outline/bookmark-square.svg b/assets/icons/outline/bookmark-square.svg similarity index 100% rename from priv/icons/outline/bookmark-square.svg rename to assets/icons/outline/bookmark-square.svg diff --git a/priv/icons/outline/bookmark.svg b/assets/icons/outline/bookmark.svg similarity index 100% rename from priv/icons/outline/bookmark.svg rename to assets/icons/outline/bookmark.svg diff --git a/priv/icons/outline/briefcase.svg b/assets/icons/outline/briefcase.svg similarity index 100% rename from priv/icons/outline/briefcase.svg rename to assets/icons/outline/briefcase.svg diff --git a/priv/icons/outline/building-library.svg b/assets/icons/outline/building-library.svg similarity index 100% rename from priv/icons/outline/building-library.svg rename to assets/icons/outline/building-library.svg diff --git a/priv/icons/outline/building-office-2.svg b/assets/icons/outline/building-office-2.svg similarity index 100% rename from priv/icons/outline/building-office-2.svg rename to assets/icons/outline/building-office-2.svg diff --git a/priv/icons/outline/building-office.svg b/assets/icons/outline/building-office.svg similarity index 100% rename from priv/icons/outline/building-office.svg rename to assets/icons/outline/building-office.svg diff --git a/priv/icons/outline/building-storefront.svg b/assets/icons/outline/building-storefront.svg similarity index 100% rename from priv/icons/outline/building-storefront.svg rename to assets/icons/outline/building-storefront.svg diff --git a/priv/icons/outline/cake.svg b/assets/icons/outline/cake.svg similarity index 100% rename from priv/icons/outline/cake.svg rename to assets/icons/outline/cake.svg diff --git a/priv/icons/outline/calculator.svg b/assets/icons/outline/calculator.svg similarity index 100% rename from priv/icons/outline/calculator.svg rename to assets/icons/outline/calculator.svg diff --git a/priv/icons/outline/calendar-days.svg b/assets/icons/outline/calendar-days.svg similarity index 100% rename from priv/icons/outline/calendar-days.svg rename to assets/icons/outline/calendar-days.svg diff --git a/priv/icons/outline/calendar.svg b/assets/icons/outline/calendar.svg similarity index 100% rename from priv/icons/outline/calendar.svg rename to assets/icons/outline/calendar.svg diff --git a/priv/icons/outline/camera.svg b/assets/icons/outline/camera.svg similarity index 100% rename from priv/icons/outline/camera.svg rename to assets/icons/outline/camera.svg diff --git a/priv/icons/outline/chart-bar-square.svg b/assets/icons/outline/chart-bar-square.svg similarity index 100% rename from priv/icons/outline/chart-bar-square.svg rename to assets/icons/outline/chart-bar-square.svg diff --git a/priv/icons/outline/chart-bar.svg b/assets/icons/outline/chart-bar.svg similarity index 100% rename from priv/icons/outline/chart-bar.svg rename to assets/icons/outline/chart-bar.svg diff --git a/priv/icons/outline/chart-pie.svg b/assets/icons/outline/chart-pie.svg similarity index 100% rename from priv/icons/outline/chart-pie.svg rename to assets/icons/outline/chart-pie.svg diff --git a/priv/icons/outline/chat-bubble-bottom-center-text.svg b/assets/icons/outline/chat-bubble-bottom-center-text.svg similarity index 100% rename from priv/icons/outline/chat-bubble-bottom-center-text.svg rename to assets/icons/outline/chat-bubble-bottom-center-text.svg diff --git a/priv/icons/outline/chat-bubble-bottom-center.svg b/assets/icons/outline/chat-bubble-bottom-center.svg similarity index 100% rename from priv/icons/outline/chat-bubble-bottom-center.svg rename to assets/icons/outline/chat-bubble-bottom-center.svg diff --git a/priv/icons/outline/chat-bubble-left-ellipsis.svg b/assets/icons/outline/chat-bubble-left-ellipsis.svg similarity index 100% rename from priv/icons/outline/chat-bubble-left-ellipsis.svg rename to assets/icons/outline/chat-bubble-left-ellipsis.svg diff --git a/priv/icons/outline/chat-bubble-left-right.svg b/assets/icons/outline/chat-bubble-left-right.svg similarity index 100% rename from priv/icons/outline/chat-bubble-left-right.svg rename to assets/icons/outline/chat-bubble-left-right.svg diff --git a/priv/icons/outline/chat-bubble-left.svg b/assets/icons/outline/chat-bubble-left.svg similarity index 100% rename from priv/icons/outline/chat-bubble-left.svg rename to assets/icons/outline/chat-bubble-left.svg diff --git a/priv/icons/outline/chat-bubble-oval-left-ellipsis.svg b/assets/icons/outline/chat-bubble-oval-left-ellipsis.svg similarity index 100% rename from priv/icons/outline/chat-bubble-oval-left-ellipsis.svg rename to assets/icons/outline/chat-bubble-oval-left-ellipsis.svg diff --git a/priv/icons/outline/chat-bubble-oval-left.svg b/assets/icons/outline/chat-bubble-oval-left.svg similarity index 100% rename from priv/icons/outline/chat-bubble-oval-left.svg rename to assets/icons/outline/chat-bubble-oval-left.svg diff --git a/priv/icons/outline/check-badge.svg b/assets/icons/outline/check-badge.svg similarity index 100% rename from priv/icons/outline/check-badge.svg rename to assets/icons/outline/check-badge.svg diff --git a/priv/icons/outline/check-circle.svg b/assets/icons/outline/check-circle.svg similarity index 100% rename from priv/icons/outline/check-circle.svg rename to assets/icons/outline/check-circle.svg diff --git a/priv/icons/outline/check.svg b/assets/icons/outline/check.svg similarity index 100% rename from priv/icons/outline/check.svg rename to assets/icons/outline/check.svg diff --git a/priv/icons/outline/chevron-double-down.svg b/assets/icons/outline/chevron-double-down.svg similarity index 100% rename from priv/icons/outline/chevron-double-down.svg rename to assets/icons/outline/chevron-double-down.svg diff --git a/priv/icons/outline/chevron-double-left.svg b/assets/icons/outline/chevron-double-left.svg similarity index 100% rename from priv/icons/outline/chevron-double-left.svg rename to assets/icons/outline/chevron-double-left.svg diff --git a/priv/icons/outline/chevron-double-right.svg b/assets/icons/outline/chevron-double-right.svg similarity index 100% rename from priv/icons/outline/chevron-double-right.svg rename to assets/icons/outline/chevron-double-right.svg diff --git a/priv/icons/outline/chevron-double-up.svg b/assets/icons/outline/chevron-double-up.svg similarity index 100% rename from priv/icons/outline/chevron-double-up.svg rename to assets/icons/outline/chevron-double-up.svg diff --git a/priv/icons/outline/chevron-down.svg b/assets/icons/outline/chevron-down.svg similarity index 100% rename from priv/icons/outline/chevron-down.svg rename to assets/icons/outline/chevron-down.svg diff --git a/priv/icons/outline/chevron-left.svg b/assets/icons/outline/chevron-left.svg similarity index 100% rename from priv/icons/outline/chevron-left.svg rename to assets/icons/outline/chevron-left.svg diff --git a/priv/icons/outline/chevron-right.svg b/assets/icons/outline/chevron-right.svg similarity index 100% rename from priv/icons/outline/chevron-right.svg rename to assets/icons/outline/chevron-right.svg diff --git a/priv/icons/outline/chevron-up-down.svg b/assets/icons/outline/chevron-up-down.svg similarity index 100% rename from priv/icons/outline/chevron-up-down.svg rename to assets/icons/outline/chevron-up-down.svg diff --git a/priv/icons/outline/chevron-up.svg b/assets/icons/outline/chevron-up.svg similarity index 100% rename from priv/icons/outline/chevron-up.svg rename to assets/icons/outline/chevron-up.svg diff --git a/priv/icons/outline/circle-stack.svg b/assets/icons/outline/circle-stack.svg similarity index 100% rename from priv/icons/outline/circle-stack.svg rename to assets/icons/outline/circle-stack.svg diff --git a/priv/icons/outline/clipboard-document-check.svg b/assets/icons/outline/clipboard-document-check.svg similarity index 100% rename from priv/icons/outline/clipboard-document-check.svg rename to assets/icons/outline/clipboard-document-check.svg diff --git a/priv/icons/outline/clipboard-document-list.svg b/assets/icons/outline/clipboard-document-list.svg similarity index 100% rename from priv/icons/outline/clipboard-document-list.svg rename to assets/icons/outline/clipboard-document-list.svg diff --git a/priv/icons/outline/clipboard-document.svg b/assets/icons/outline/clipboard-document.svg similarity index 100% rename from priv/icons/outline/clipboard-document.svg rename to assets/icons/outline/clipboard-document.svg diff --git a/priv/icons/outline/clipboard.svg b/assets/icons/outline/clipboard.svg similarity index 100% rename from priv/icons/outline/clipboard.svg rename to assets/icons/outline/clipboard.svg diff --git a/priv/icons/outline/clock.svg b/assets/icons/outline/clock.svg similarity index 100% rename from priv/icons/outline/clock.svg rename to assets/icons/outline/clock.svg diff --git a/priv/icons/outline/cloud-arrow-down.svg b/assets/icons/outline/cloud-arrow-down.svg similarity index 100% rename from priv/icons/outline/cloud-arrow-down.svg rename to assets/icons/outline/cloud-arrow-down.svg diff --git a/priv/icons/outline/cloud-arrow-up.svg b/assets/icons/outline/cloud-arrow-up.svg similarity index 100% rename from priv/icons/outline/cloud-arrow-up.svg rename to assets/icons/outline/cloud-arrow-up.svg diff --git a/priv/icons/outline/cloud.svg b/assets/icons/outline/cloud.svg similarity index 100% rename from priv/icons/outline/cloud.svg rename to assets/icons/outline/cloud.svg diff --git a/priv/icons/outline/code-bracket-square.svg b/assets/icons/outline/code-bracket-square.svg similarity index 100% rename from priv/icons/outline/code-bracket-square.svg rename to assets/icons/outline/code-bracket-square.svg diff --git a/priv/icons/outline/code-bracket.svg b/assets/icons/outline/code-bracket.svg similarity index 100% rename from priv/icons/outline/code-bracket.svg rename to assets/icons/outline/code-bracket.svg diff --git a/priv/icons/outline/cog-6-tooth.svg b/assets/icons/outline/cog-6-tooth.svg similarity index 100% rename from priv/icons/outline/cog-6-tooth.svg rename to assets/icons/outline/cog-6-tooth.svg diff --git a/priv/icons/outline/cog-8-tooth.svg b/assets/icons/outline/cog-8-tooth.svg similarity index 100% rename from priv/icons/outline/cog-8-tooth.svg rename to assets/icons/outline/cog-8-tooth.svg diff --git a/priv/icons/outline/cog.svg b/assets/icons/outline/cog.svg similarity index 100% rename from priv/icons/outline/cog.svg rename to assets/icons/outline/cog.svg diff --git a/priv/icons/outline/command-line.svg b/assets/icons/outline/command-line.svg similarity index 100% rename from priv/icons/outline/command-line.svg rename to assets/icons/outline/command-line.svg diff --git a/priv/icons/outline/computer-desktop.svg b/assets/icons/outline/computer-desktop.svg similarity index 100% rename from priv/icons/outline/computer-desktop.svg rename to assets/icons/outline/computer-desktop.svg diff --git a/priv/icons/outline/cpu-chip.svg b/assets/icons/outline/cpu-chip.svg similarity index 100% rename from priv/icons/outline/cpu-chip.svg rename to assets/icons/outline/cpu-chip.svg diff --git a/priv/icons/outline/credit-card.svg b/assets/icons/outline/credit-card.svg similarity index 100% rename from priv/icons/outline/credit-card.svg rename to assets/icons/outline/credit-card.svg diff --git a/priv/icons/outline/cube-transparent.svg b/assets/icons/outline/cube-transparent.svg similarity index 100% rename from priv/icons/outline/cube-transparent.svg rename to assets/icons/outline/cube-transparent.svg diff --git a/priv/icons/outline/cube.svg b/assets/icons/outline/cube.svg similarity index 100% rename from priv/icons/outline/cube.svg rename to assets/icons/outline/cube.svg diff --git a/priv/icons/outline/currency-bangladeshi.svg b/assets/icons/outline/currency-bangladeshi.svg similarity index 100% rename from priv/icons/outline/currency-bangladeshi.svg rename to assets/icons/outline/currency-bangladeshi.svg diff --git a/priv/icons/outline/currency-dollar.svg b/assets/icons/outline/currency-dollar.svg similarity index 100% rename from priv/icons/outline/currency-dollar.svg rename to assets/icons/outline/currency-dollar.svg diff --git a/priv/icons/outline/currency-euro.svg b/assets/icons/outline/currency-euro.svg similarity index 100% rename from priv/icons/outline/currency-euro.svg rename to assets/icons/outline/currency-euro.svg diff --git a/priv/icons/outline/currency-pound.svg b/assets/icons/outline/currency-pound.svg similarity index 100% rename from priv/icons/outline/currency-pound.svg rename to assets/icons/outline/currency-pound.svg diff --git a/priv/icons/outline/currency-rupee.svg b/assets/icons/outline/currency-rupee.svg similarity index 100% rename from priv/icons/outline/currency-rupee.svg rename to assets/icons/outline/currency-rupee.svg diff --git a/priv/icons/outline/currency-yen.svg b/assets/icons/outline/currency-yen.svg similarity index 100% rename from priv/icons/outline/currency-yen.svg rename to assets/icons/outline/currency-yen.svg diff --git a/priv/icons/outline/cursor-arrow-rays.svg b/assets/icons/outline/cursor-arrow-rays.svg similarity index 100% rename from priv/icons/outline/cursor-arrow-rays.svg rename to assets/icons/outline/cursor-arrow-rays.svg diff --git a/priv/icons/outline/cursor-arrow-ripple.svg b/assets/icons/outline/cursor-arrow-ripple.svg similarity index 100% rename from priv/icons/outline/cursor-arrow-ripple.svg rename to assets/icons/outline/cursor-arrow-ripple.svg diff --git a/priv/icons/outline/device-phone-mobile.svg b/assets/icons/outline/device-phone-mobile.svg similarity index 100% rename from priv/icons/outline/device-phone-mobile.svg rename to assets/icons/outline/device-phone-mobile.svg diff --git a/priv/icons/outline/device-tablet.svg b/assets/icons/outline/device-tablet.svg similarity index 100% rename from priv/icons/outline/device-tablet.svg rename to assets/icons/outline/device-tablet.svg diff --git a/priv/icons/outline/document-arrow-down.svg b/assets/icons/outline/document-arrow-down.svg similarity index 100% rename from priv/icons/outline/document-arrow-down.svg rename to assets/icons/outline/document-arrow-down.svg diff --git a/priv/icons/outline/document-arrow-up.svg b/assets/icons/outline/document-arrow-up.svg similarity index 100% rename from priv/icons/outline/document-arrow-up.svg rename to assets/icons/outline/document-arrow-up.svg diff --git a/priv/icons/outline/document-chart-bar.svg b/assets/icons/outline/document-chart-bar.svg similarity index 100% rename from priv/icons/outline/document-chart-bar.svg rename to assets/icons/outline/document-chart-bar.svg diff --git a/priv/icons/outline/document-check.svg b/assets/icons/outline/document-check.svg similarity index 100% rename from priv/icons/outline/document-check.svg rename to assets/icons/outline/document-check.svg diff --git a/priv/icons/outline/document-duplicate.svg b/assets/icons/outline/document-duplicate.svg similarity index 100% rename from priv/icons/outline/document-duplicate.svg rename to assets/icons/outline/document-duplicate.svg diff --git a/priv/icons/outline/document-magnifying-glass.svg b/assets/icons/outline/document-magnifying-glass.svg similarity index 100% rename from priv/icons/outline/document-magnifying-glass.svg rename to assets/icons/outline/document-magnifying-glass.svg diff --git a/priv/icons/outline/document-minus.svg b/assets/icons/outline/document-minus.svg similarity index 100% rename from priv/icons/outline/document-minus.svg rename to assets/icons/outline/document-minus.svg diff --git a/priv/icons/outline/document-plus.svg b/assets/icons/outline/document-plus.svg similarity index 100% rename from priv/icons/outline/document-plus.svg rename to assets/icons/outline/document-plus.svg diff --git a/priv/icons/outline/document-text.svg b/assets/icons/outline/document-text.svg similarity index 100% rename from priv/icons/outline/document-text.svg rename to assets/icons/outline/document-text.svg diff --git a/priv/icons/outline/document.svg b/assets/icons/outline/document.svg similarity index 100% rename from priv/icons/outline/document.svg rename to assets/icons/outline/document.svg diff --git a/priv/icons/outline/ellipsis-horizontal-circle.svg b/assets/icons/outline/ellipsis-horizontal-circle.svg similarity index 100% rename from priv/icons/outline/ellipsis-horizontal-circle.svg rename to assets/icons/outline/ellipsis-horizontal-circle.svg diff --git a/priv/icons/outline/ellipsis-horizontal.svg b/assets/icons/outline/ellipsis-horizontal.svg similarity index 100% rename from priv/icons/outline/ellipsis-horizontal.svg rename to assets/icons/outline/ellipsis-horizontal.svg diff --git a/priv/icons/outline/ellipsis-vertical.svg b/assets/icons/outline/ellipsis-vertical.svg similarity index 100% rename from priv/icons/outline/ellipsis-vertical.svg rename to assets/icons/outline/ellipsis-vertical.svg diff --git a/priv/icons/outline/envelope-open.svg b/assets/icons/outline/envelope-open.svg similarity index 100% rename from priv/icons/outline/envelope-open.svg rename to assets/icons/outline/envelope-open.svg diff --git a/priv/icons/outline/envelope.svg b/assets/icons/outline/envelope.svg similarity index 100% rename from priv/icons/outline/envelope.svg rename to assets/icons/outline/envelope.svg diff --git a/priv/icons/outline/exclamation-circle.svg b/assets/icons/outline/exclamation-circle.svg similarity index 100% rename from priv/icons/outline/exclamation-circle.svg rename to assets/icons/outline/exclamation-circle.svg diff --git a/priv/icons/outline/exclamation-triangle.svg b/assets/icons/outline/exclamation-triangle.svg similarity index 100% rename from priv/icons/outline/exclamation-triangle.svg rename to assets/icons/outline/exclamation-triangle.svg diff --git a/priv/icons/outline/eye-slash.svg b/assets/icons/outline/eye-slash.svg similarity index 100% rename from priv/icons/outline/eye-slash.svg rename to assets/icons/outline/eye-slash.svg diff --git a/priv/icons/outline/eye.svg b/assets/icons/outline/eye.svg similarity index 100% rename from priv/icons/outline/eye.svg rename to assets/icons/outline/eye.svg diff --git a/priv/icons/outline/face-frown.svg b/assets/icons/outline/face-frown.svg similarity index 100% rename from priv/icons/outline/face-frown.svg rename to assets/icons/outline/face-frown.svg diff --git a/priv/icons/outline/face-smile.svg b/assets/icons/outline/face-smile.svg similarity index 100% rename from priv/icons/outline/face-smile.svg rename to assets/icons/outline/face-smile.svg diff --git a/priv/icons/outline/film.svg b/assets/icons/outline/film.svg similarity index 100% rename from priv/icons/outline/film.svg rename to assets/icons/outline/film.svg diff --git a/priv/icons/outline/finger-print.svg b/assets/icons/outline/finger-print.svg similarity index 100% rename from priv/icons/outline/finger-print.svg rename to assets/icons/outline/finger-print.svg diff --git a/priv/icons/outline/fire.svg b/assets/icons/outline/fire.svg similarity index 100% rename from priv/icons/outline/fire.svg rename to assets/icons/outline/fire.svg diff --git a/priv/icons/outline/flag.svg b/assets/icons/outline/flag.svg similarity index 100% rename from priv/icons/outline/flag.svg rename to assets/icons/outline/flag.svg diff --git a/priv/icons/outline/folder-arrow-down.svg b/assets/icons/outline/folder-arrow-down.svg similarity index 100% rename from priv/icons/outline/folder-arrow-down.svg rename to assets/icons/outline/folder-arrow-down.svg diff --git a/priv/icons/outline/folder-minus.svg b/assets/icons/outline/folder-minus.svg similarity index 100% rename from priv/icons/outline/folder-minus.svg rename to assets/icons/outline/folder-minus.svg diff --git a/priv/icons/outline/folder-open.svg b/assets/icons/outline/folder-open.svg similarity index 100% rename from priv/icons/outline/folder-open.svg rename to assets/icons/outline/folder-open.svg diff --git a/priv/icons/outline/folder-plus.svg b/assets/icons/outline/folder-plus.svg similarity index 100% rename from priv/icons/outline/folder-plus.svg rename to assets/icons/outline/folder-plus.svg diff --git a/priv/icons/outline/folder.svg b/assets/icons/outline/folder.svg similarity index 100% rename from priv/icons/outline/folder.svg rename to assets/icons/outline/folder.svg diff --git a/priv/icons/outline/forward.svg b/assets/icons/outline/forward.svg similarity index 100% rename from priv/icons/outline/forward.svg rename to assets/icons/outline/forward.svg diff --git a/priv/icons/outline/funnel.svg b/assets/icons/outline/funnel.svg similarity index 100% rename from priv/icons/outline/funnel.svg rename to assets/icons/outline/funnel.svg diff --git a/priv/icons/outline/gif.svg b/assets/icons/outline/gif.svg similarity index 100% rename from priv/icons/outline/gif.svg rename to assets/icons/outline/gif.svg diff --git a/priv/icons/outline/gift-top.svg b/assets/icons/outline/gift-top.svg similarity index 100% rename from priv/icons/outline/gift-top.svg rename to assets/icons/outline/gift-top.svg diff --git a/priv/icons/outline/gift.svg b/assets/icons/outline/gift.svg similarity index 100% rename from priv/icons/outline/gift.svg rename to assets/icons/outline/gift.svg diff --git a/priv/icons/outline/globe-alt.svg b/assets/icons/outline/globe-alt.svg similarity index 100% rename from priv/icons/outline/globe-alt.svg rename to assets/icons/outline/globe-alt.svg diff --git a/priv/icons/outline/globe-americas.svg b/assets/icons/outline/globe-americas.svg similarity index 100% rename from priv/icons/outline/globe-americas.svg rename to assets/icons/outline/globe-americas.svg diff --git a/priv/icons/outline/globe-asia-australia.svg b/assets/icons/outline/globe-asia-australia.svg similarity index 100% rename from priv/icons/outline/globe-asia-australia.svg rename to assets/icons/outline/globe-asia-australia.svg diff --git a/priv/icons/outline/globe-europe-africa.svg b/assets/icons/outline/globe-europe-africa.svg similarity index 100% rename from priv/icons/outline/globe-europe-africa.svg rename to assets/icons/outline/globe-europe-africa.svg diff --git a/priv/icons/outline/hand-raised.svg b/assets/icons/outline/hand-raised.svg similarity index 100% rename from priv/icons/outline/hand-raised.svg rename to assets/icons/outline/hand-raised.svg diff --git a/priv/icons/outline/hand-thumb-down.svg b/assets/icons/outline/hand-thumb-down.svg similarity index 100% rename from priv/icons/outline/hand-thumb-down.svg rename to assets/icons/outline/hand-thumb-down.svg diff --git a/priv/icons/outline/hand-thumb-up.svg b/assets/icons/outline/hand-thumb-up.svg similarity index 100% rename from priv/icons/outline/hand-thumb-up.svg rename to assets/icons/outline/hand-thumb-up.svg diff --git a/priv/icons/outline/hashtag.svg b/assets/icons/outline/hashtag.svg similarity index 100% rename from priv/icons/outline/hashtag.svg rename to assets/icons/outline/hashtag.svg diff --git a/priv/icons/outline/heart.svg b/assets/icons/outline/heart.svg similarity index 100% rename from priv/icons/outline/heart.svg rename to assets/icons/outline/heart.svg diff --git a/priv/icons/outline/home-modern.svg b/assets/icons/outline/home-modern.svg similarity index 100% rename from priv/icons/outline/home-modern.svg rename to assets/icons/outline/home-modern.svg diff --git a/priv/icons/outline/home.svg b/assets/icons/outline/home.svg similarity index 100% rename from priv/icons/outline/home.svg rename to assets/icons/outline/home.svg diff --git a/priv/icons/outline/identification.svg b/assets/icons/outline/identification.svg similarity index 100% rename from priv/icons/outline/identification.svg rename to assets/icons/outline/identification.svg diff --git a/priv/icons/outline/inbox-arrow-down.svg b/assets/icons/outline/inbox-arrow-down.svg similarity index 100% rename from priv/icons/outline/inbox-arrow-down.svg rename to assets/icons/outline/inbox-arrow-down.svg diff --git a/priv/icons/outline/inbox-stack.svg b/assets/icons/outline/inbox-stack.svg similarity index 100% rename from priv/icons/outline/inbox-stack.svg rename to assets/icons/outline/inbox-stack.svg diff --git a/priv/icons/outline/inbox.svg b/assets/icons/outline/inbox.svg similarity index 100% rename from priv/icons/outline/inbox.svg rename to assets/icons/outline/inbox.svg diff --git a/priv/icons/outline/information-circle.svg b/assets/icons/outline/information-circle.svg similarity index 100% rename from priv/icons/outline/information-circle.svg rename to assets/icons/outline/information-circle.svg diff --git a/priv/icons/outline/key.svg b/assets/icons/outline/key.svg similarity index 100% rename from priv/icons/outline/key.svg rename to assets/icons/outline/key.svg diff --git a/priv/icons/outline/language.svg b/assets/icons/outline/language.svg similarity index 100% rename from priv/icons/outline/language.svg rename to assets/icons/outline/language.svg diff --git a/priv/icons/outline/lifebuoy.svg b/assets/icons/outline/lifebuoy.svg similarity index 100% rename from priv/icons/outline/lifebuoy.svg rename to assets/icons/outline/lifebuoy.svg diff --git a/priv/icons/outline/light-bulb.svg b/assets/icons/outline/light-bulb.svg similarity index 100% rename from priv/icons/outline/light-bulb.svg rename to assets/icons/outline/light-bulb.svg diff --git a/priv/icons/outline/link.svg b/assets/icons/outline/link.svg similarity index 100% rename from priv/icons/outline/link.svg rename to assets/icons/outline/link.svg diff --git a/priv/icons/outline/list-bullet.svg b/assets/icons/outline/list-bullet.svg similarity index 100% rename from priv/icons/outline/list-bullet.svg rename to assets/icons/outline/list-bullet.svg diff --git a/priv/icons/outline/lock-closed.svg b/assets/icons/outline/lock-closed.svg similarity index 100% rename from priv/icons/outline/lock-closed.svg rename to assets/icons/outline/lock-closed.svg diff --git a/priv/icons/outline/lock-open.svg b/assets/icons/outline/lock-open.svg similarity index 100% rename from priv/icons/outline/lock-open.svg rename to assets/icons/outline/lock-open.svg diff --git a/priv/icons/outline/magnifying-glass-circle.svg b/assets/icons/outline/magnifying-glass-circle.svg similarity index 100% rename from priv/icons/outline/magnifying-glass-circle.svg rename to assets/icons/outline/magnifying-glass-circle.svg diff --git a/priv/icons/outline/magnifying-glass-minus.svg b/assets/icons/outline/magnifying-glass-minus.svg similarity index 100% rename from priv/icons/outline/magnifying-glass-minus.svg rename to assets/icons/outline/magnifying-glass-minus.svg diff --git a/priv/icons/outline/magnifying-glass-plus.svg b/assets/icons/outline/magnifying-glass-plus.svg similarity index 100% rename from priv/icons/outline/magnifying-glass-plus.svg rename to assets/icons/outline/magnifying-glass-plus.svg diff --git a/priv/icons/outline/magnifying-glass.svg b/assets/icons/outline/magnifying-glass.svg similarity index 100% rename from priv/icons/outline/magnifying-glass.svg rename to assets/icons/outline/magnifying-glass.svg diff --git a/priv/icons/outline/map-pin.svg b/assets/icons/outline/map-pin.svg similarity index 100% rename from priv/icons/outline/map-pin.svg rename to assets/icons/outline/map-pin.svg diff --git a/priv/icons/outline/map.svg b/assets/icons/outline/map.svg similarity index 100% rename from priv/icons/outline/map.svg rename to assets/icons/outline/map.svg diff --git a/priv/icons/outline/megaphone.svg b/assets/icons/outline/megaphone.svg similarity index 100% rename from priv/icons/outline/megaphone.svg rename to assets/icons/outline/megaphone.svg diff --git a/priv/icons/outline/microphone.svg b/assets/icons/outline/microphone.svg similarity index 100% rename from priv/icons/outline/microphone.svg rename to assets/icons/outline/microphone.svg diff --git a/priv/icons/outline/minus-circle.svg b/assets/icons/outline/minus-circle.svg similarity index 100% rename from priv/icons/outline/minus-circle.svg rename to assets/icons/outline/minus-circle.svg diff --git a/priv/icons/outline/minus-small.svg b/assets/icons/outline/minus-small.svg similarity index 100% rename from priv/icons/outline/minus-small.svg rename to assets/icons/outline/minus-small.svg diff --git a/priv/icons/outline/minus.svg b/assets/icons/outline/minus.svg similarity index 100% rename from priv/icons/outline/minus.svg rename to assets/icons/outline/minus.svg diff --git a/priv/icons/outline/moon.svg b/assets/icons/outline/moon.svg similarity index 100% rename from priv/icons/outline/moon.svg rename to assets/icons/outline/moon.svg diff --git a/priv/icons/outline/musical-note.svg b/assets/icons/outline/musical-note.svg similarity index 100% rename from priv/icons/outline/musical-note.svg rename to assets/icons/outline/musical-note.svg diff --git a/priv/icons/outline/newspaper.svg b/assets/icons/outline/newspaper.svg similarity index 100% rename from priv/icons/outline/newspaper.svg rename to assets/icons/outline/newspaper.svg diff --git a/priv/icons/outline/no-symbol.svg b/assets/icons/outline/no-symbol.svg similarity index 100% rename from priv/icons/outline/no-symbol.svg rename to assets/icons/outline/no-symbol.svg diff --git a/priv/icons/outline/paint-brush.svg b/assets/icons/outline/paint-brush.svg similarity index 100% rename from priv/icons/outline/paint-brush.svg rename to assets/icons/outline/paint-brush.svg diff --git a/priv/icons/outline/paper-airplane.svg b/assets/icons/outline/paper-airplane.svg similarity index 100% rename from priv/icons/outline/paper-airplane.svg rename to assets/icons/outline/paper-airplane.svg diff --git a/priv/icons/outline/paper-clip.svg b/assets/icons/outline/paper-clip.svg similarity index 100% rename from priv/icons/outline/paper-clip.svg rename to assets/icons/outline/paper-clip.svg diff --git a/priv/icons/outline/pause.svg b/assets/icons/outline/pause.svg similarity index 100% rename from priv/icons/outline/pause.svg rename to assets/icons/outline/pause.svg diff --git a/priv/icons/outline/pencil-square.svg b/assets/icons/outline/pencil-square.svg similarity index 100% rename from priv/icons/outline/pencil-square.svg rename to assets/icons/outline/pencil-square.svg diff --git a/priv/icons/outline/pencil.svg b/assets/icons/outline/pencil.svg similarity index 100% rename from priv/icons/outline/pencil.svg rename to assets/icons/outline/pencil.svg diff --git a/priv/icons/outline/phone-arrow-down-left.svg b/assets/icons/outline/phone-arrow-down-left.svg similarity index 100% rename from priv/icons/outline/phone-arrow-down-left.svg rename to assets/icons/outline/phone-arrow-down-left.svg diff --git a/priv/icons/outline/phone-arrow-up-right.svg b/assets/icons/outline/phone-arrow-up-right.svg similarity index 100% rename from priv/icons/outline/phone-arrow-up-right.svg rename to assets/icons/outline/phone-arrow-up-right.svg diff --git a/priv/icons/outline/phone-x-mark.svg b/assets/icons/outline/phone-x-mark.svg similarity index 100% rename from priv/icons/outline/phone-x-mark.svg rename to assets/icons/outline/phone-x-mark.svg diff --git a/priv/icons/outline/phone.svg b/assets/icons/outline/phone.svg similarity index 100% rename from priv/icons/outline/phone.svg rename to assets/icons/outline/phone.svg diff --git a/priv/icons/outline/photo.svg b/assets/icons/outline/photo.svg similarity index 100% rename from priv/icons/outline/photo.svg rename to assets/icons/outline/photo.svg diff --git a/priv/icons/outline/play-pause.svg b/assets/icons/outline/play-pause.svg similarity index 100% rename from priv/icons/outline/play-pause.svg rename to assets/icons/outline/play-pause.svg diff --git a/priv/icons/outline/play.svg b/assets/icons/outline/play.svg similarity index 100% rename from priv/icons/outline/play.svg rename to assets/icons/outline/play.svg diff --git a/priv/icons/outline/plus-circle.svg b/assets/icons/outline/plus-circle.svg similarity index 100% rename from priv/icons/outline/plus-circle.svg rename to assets/icons/outline/plus-circle.svg diff --git a/priv/icons/outline/plus-small.svg b/assets/icons/outline/plus-small.svg similarity index 100% rename from priv/icons/outline/plus-small.svg rename to assets/icons/outline/plus-small.svg diff --git a/priv/icons/outline/plus.svg b/assets/icons/outline/plus.svg similarity index 100% rename from priv/icons/outline/plus.svg rename to assets/icons/outline/plus.svg diff --git a/priv/icons/outline/presentation-chart-bar.svg b/assets/icons/outline/presentation-chart-bar.svg similarity index 100% rename from priv/icons/outline/presentation-chart-bar.svg rename to assets/icons/outline/presentation-chart-bar.svg diff --git a/priv/icons/outline/presentation-chart-line.svg b/assets/icons/outline/presentation-chart-line.svg similarity index 100% rename from priv/icons/outline/presentation-chart-line.svg rename to assets/icons/outline/presentation-chart-line.svg diff --git a/priv/icons/outline/printer.svg b/assets/icons/outline/printer.svg similarity index 100% rename from priv/icons/outline/printer.svg rename to assets/icons/outline/printer.svg diff --git a/priv/icons/outline/puzzle-piece.svg b/assets/icons/outline/puzzle-piece.svg similarity index 100% rename from priv/icons/outline/puzzle-piece.svg rename to assets/icons/outline/puzzle-piece.svg diff --git a/priv/icons/outline/qr-code.svg b/assets/icons/outline/qr-code.svg similarity index 100% rename from priv/icons/outline/qr-code.svg rename to assets/icons/outline/qr-code.svg diff --git a/priv/icons/outline/question-mark-circle.svg b/assets/icons/outline/question-mark-circle.svg similarity index 100% rename from priv/icons/outline/question-mark-circle.svg rename to assets/icons/outline/question-mark-circle.svg diff --git a/priv/icons/outline/queue-list.svg b/assets/icons/outline/queue-list.svg similarity index 100% rename from priv/icons/outline/queue-list.svg rename to assets/icons/outline/queue-list.svg diff --git a/priv/icons/outline/radio.svg b/assets/icons/outline/radio.svg similarity index 100% rename from priv/icons/outline/radio.svg rename to assets/icons/outline/radio.svg diff --git a/priv/icons/outline/receipt-percent.svg b/assets/icons/outline/receipt-percent.svg similarity index 100% rename from priv/icons/outline/receipt-percent.svg rename to assets/icons/outline/receipt-percent.svg diff --git a/priv/icons/outline/receipt-refund.svg b/assets/icons/outline/receipt-refund.svg similarity index 100% rename from priv/icons/outline/receipt-refund.svg rename to assets/icons/outline/receipt-refund.svg diff --git a/priv/icons/outline/rectangle-group.svg b/assets/icons/outline/rectangle-group.svg similarity index 100% rename from priv/icons/outline/rectangle-group.svg rename to assets/icons/outline/rectangle-group.svg diff --git a/priv/icons/outline/rectangle-stack.svg b/assets/icons/outline/rectangle-stack.svg similarity index 100% rename from priv/icons/outline/rectangle-stack.svg rename to assets/icons/outline/rectangle-stack.svg diff --git a/priv/icons/outline/rss.svg b/assets/icons/outline/rss.svg similarity index 100% rename from priv/icons/outline/rss.svg rename to assets/icons/outline/rss.svg diff --git a/priv/icons/outline/scale.svg b/assets/icons/outline/scale.svg similarity index 100% rename from priv/icons/outline/scale.svg rename to assets/icons/outline/scale.svg diff --git a/priv/icons/outline/scissors.svg b/assets/icons/outline/scissors.svg similarity index 100% rename from priv/icons/outline/scissors.svg rename to assets/icons/outline/scissors.svg diff --git a/priv/icons/outline/server-stack.svg b/assets/icons/outline/server-stack.svg similarity index 100% rename from priv/icons/outline/server-stack.svg rename to assets/icons/outline/server-stack.svg diff --git a/priv/icons/outline/server.svg b/assets/icons/outline/server.svg similarity index 100% rename from priv/icons/outline/server.svg rename to assets/icons/outline/server.svg diff --git a/priv/icons/outline/share.svg b/assets/icons/outline/share.svg similarity index 100% rename from priv/icons/outline/share.svg rename to assets/icons/outline/share.svg diff --git a/priv/icons/outline/shield-check.svg b/assets/icons/outline/shield-check.svg similarity index 100% rename from priv/icons/outline/shield-check.svg rename to assets/icons/outline/shield-check.svg diff --git a/priv/icons/outline/shield-exclamation.svg b/assets/icons/outline/shield-exclamation.svg similarity index 100% rename from priv/icons/outline/shield-exclamation.svg rename to assets/icons/outline/shield-exclamation.svg diff --git a/priv/icons/outline/shopping-bag.svg b/assets/icons/outline/shopping-bag.svg similarity index 100% rename from priv/icons/outline/shopping-bag.svg rename to assets/icons/outline/shopping-bag.svg diff --git a/priv/icons/outline/shopping-cart.svg b/assets/icons/outline/shopping-cart.svg similarity index 100% rename from priv/icons/outline/shopping-cart.svg rename to assets/icons/outline/shopping-cart.svg diff --git a/priv/icons/outline/signal-slash.svg b/assets/icons/outline/signal-slash.svg similarity index 100% rename from priv/icons/outline/signal-slash.svg rename to assets/icons/outline/signal-slash.svg diff --git a/priv/icons/outline/signal.svg b/assets/icons/outline/signal.svg similarity index 100% rename from priv/icons/outline/signal.svg rename to assets/icons/outline/signal.svg diff --git a/priv/icons/outline/sparkles.svg b/assets/icons/outline/sparkles.svg similarity index 100% rename from priv/icons/outline/sparkles.svg rename to assets/icons/outline/sparkles.svg diff --git a/priv/icons/outline/speaker-wave.svg b/assets/icons/outline/speaker-wave.svg similarity index 100% rename from priv/icons/outline/speaker-wave.svg rename to assets/icons/outline/speaker-wave.svg diff --git a/priv/icons/outline/speaker-x-mark.svg b/assets/icons/outline/speaker-x-mark.svg similarity index 100% rename from priv/icons/outline/speaker-x-mark.svg rename to assets/icons/outline/speaker-x-mark.svg diff --git a/priv/icons/outline/square-2-stack.svg b/assets/icons/outline/square-2-stack.svg similarity index 100% rename from priv/icons/outline/square-2-stack.svg rename to assets/icons/outline/square-2-stack.svg diff --git a/priv/icons/outline/squares-2x2.svg b/assets/icons/outline/squares-2x2.svg similarity index 100% rename from priv/icons/outline/squares-2x2.svg rename to assets/icons/outline/squares-2x2.svg diff --git a/priv/icons/outline/squares-plus.svg b/assets/icons/outline/squares-plus.svg similarity index 100% rename from priv/icons/outline/squares-plus.svg rename to assets/icons/outline/squares-plus.svg diff --git a/priv/icons/outline/star.svg b/assets/icons/outline/star.svg similarity index 100% rename from priv/icons/outline/star.svg rename to assets/icons/outline/star.svg diff --git a/priv/icons/outline/stop.svg b/assets/icons/outline/stop.svg similarity index 100% rename from priv/icons/outline/stop.svg rename to assets/icons/outline/stop.svg diff --git a/priv/icons/outline/sun.svg b/assets/icons/outline/sun.svg similarity index 100% rename from priv/icons/outline/sun.svg rename to assets/icons/outline/sun.svg diff --git a/priv/icons/outline/swatch.svg b/assets/icons/outline/swatch.svg similarity index 100% rename from priv/icons/outline/swatch.svg rename to assets/icons/outline/swatch.svg diff --git a/priv/icons/outline/table-cells.svg b/assets/icons/outline/table-cells.svg similarity index 100% rename from priv/icons/outline/table-cells.svg rename to assets/icons/outline/table-cells.svg diff --git a/priv/icons/outline/tag.svg b/assets/icons/outline/tag.svg similarity index 100% rename from priv/icons/outline/tag.svg rename to assets/icons/outline/tag.svg diff --git a/priv/icons/outline/ticket.svg b/assets/icons/outline/ticket.svg similarity index 100% rename from priv/icons/outline/ticket.svg rename to assets/icons/outline/ticket.svg diff --git a/priv/icons/outline/trash.svg b/assets/icons/outline/trash.svg similarity index 100% rename from priv/icons/outline/trash.svg rename to assets/icons/outline/trash.svg diff --git a/priv/icons/outline/truck.svg b/assets/icons/outline/truck.svg similarity index 100% rename from priv/icons/outline/truck.svg rename to assets/icons/outline/truck.svg diff --git a/priv/icons/outline/user-circle.svg b/assets/icons/outline/user-circle.svg similarity index 100% rename from priv/icons/outline/user-circle.svg rename to assets/icons/outline/user-circle.svg diff --git a/priv/icons/outline/user-group.svg b/assets/icons/outline/user-group.svg similarity index 100% rename from priv/icons/outline/user-group.svg rename to assets/icons/outline/user-group.svg diff --git a/priv/icons/outline/user-minus.svg b/assets/icons/outline/user-minus.svg similarity index 100% rename from priv/icons/outline/user-minus.svg rename to assets/icons/outline/user-minus.svg diff --git a/priv/icons/outline/user-plus.svg b/assets/icons/outline/user-plus.svg similarity index 100% rename from priv/icons/outline/user-plus.svg rename to assets/icons/outline/user-plus.svg diff --git a/priv/icons/outline/user.svg b/assets/icons/outline/user.svg similarity index 100% rename from priv/icons/outline/user.svg rename to assets/icons/outline/user.svg diff --git a/priv/icons/outline/users.svg b/assets/icons/outline/users.svg similarity index 100% rename from priv/icons/outline/users.svg rename to assets/icons/outline/users.svg diff --git a/priv/icons/outline/variable.svg b/assets/icons/outline/variable.svg similarity index 100% rename from priv/icons/outline/variable.svg rename to assets/icons/outline/variable.svg diff --git a/priv/icons/outline/video-camera-slash.svg b/assets/icons/outline/video-camera-slash.svg similarity index 100% rename from priv/icons/outline/video-camera-slash.svg rename to assets/icons/outline/video-camera-slash.svg diff --git a/priv/icons/outline/video-camera.svg b/assets/icons/outline/video-camera.svg similarity index 100% rename from priv/icons/outline/video-camera.svg rename to assets/icons/outline/video-camera.svg diff --git a/priv/icons/outline/view-columns.svg b/assets/icons/outline/view-columns.svg similarity index 100% rename from priv/icons/outline/view-columns.svg rename to assets/icons/outline/view-columns.svg diff --git a/priv/icons/outline/wallet.svg b/assets/icons/outline/wallet.svg similarity index 100% rename from priv/icons/outline/wallet.svg rename to assets/icons/outline/wallet.svg diff --git a/priv/icons/outline/wifi.svg b/assets/icons/outline/wifi.svg similarity index 100% rename from priv/icons/outline/wifi.svg rename to assets/icons/outline/wifi.svg diff --git a/priv/icons/outline/wrench-screwdriver.svg b/assets/icons/outline/wrench-screwdriver.svg similarity index 100% rename from priv/icons/outline/wrench-screwdriver.svg rename to assets/icons/outline/wrench-screwdriver.svg diff --git a/priv/icons/outline/wrench.svg b/assets/icons/outline/wrench.svg similarity index 100% rename from priv/icons/outline/wrench.svg rename to assets/icons/outline/wrench.svg diff --git a/priv/icons/outline/x-circle.svg b/assets/icons/outline/x-circle.svg similarity index 100% rename from priv/icons/outline/x-circle.svg rename to assets/icons/outline/x-circle.svg diff --git a/priv/icons/outline/x-mark.svg b/assets/icons/outline/x-mark.svg similarity index 100% rename from priv/icons/outline/x-mark.svg rename to assets/icons/outline/x-mark.svg diff --git a/priv/icons/solid/academic-cap.svg b/assets/icons/solid/academic-cap.svg similarity index 100% rename from priv/icons/solid/academic-cap.svg rename to assets/icons/solid/academic-cap.svg diff --git a/priv/icons/solid/adjustments-horizontal.svg b/assets/icons/solid/adjustments-horizontal.svg similarity index 100% rename from priv/icons/solid/adjustments-horizontal.svg rename to assets/icons/solid/adjustments-horizontal.svg diff --git a/priv/icons/solid/adjustments-vertical.svg b/assets/icons/solid/adjustments-vertical.svg similarity index 100% rename from priv/icons/solid/adjustments-vertical.svg rename to assets/icons/solid/adjustments-vertical.svg diff --git a/priv/icons/solid/archive-box-arrow-down.svg b/assets/icons/solid/archive-box-arrow-down.svg similarity index 100% rename from priv/icons/solid/archive-box-arrow-down.svg rename to assets/icons/solid/archive-box-arrow-down.svg diff --git a/priv/icons/solid/archive-box-x-mark.svg b/assets/icons/solid/archive-box-x-mark.svg similarity index 100% rename from priv/icons/solid/archive-box-x-mark.svg rename to assets/icons/solid/archive-box-x-mark.svg diff --git a/priv/icons/solid/archive-box.svg b/assets/icons/solid/archive-box.svg similarity index 100% rename from priv/icons/solid/archive-box.svg rename to assets/icons/solid/archive-box.svg diff --git a/priv/icons/solid/arrow-down-circle.svg b/assets/icons/solid/arrow-down-circle.svg similarity index 100% rename from priv/icons/solid/arrow-down-circle.svg rename to assets/icons/solid/arrow-down-circle.svg diff --git a/priv/icons/solid/arrow-down-left.svg b/assets/icons/solid/arrow-down-left.svg similarity index 100% rename from priv/icons/solid/arrow-down-left.svg rename to assets/icons/solid/arrow-down-left.svg diff --git a/priv/icons/solid/arrow-down-on-square-stack.svg b/assets/icons/solid/arrow-down-on-square-stack.svg similarity index 100% rename from priv/icons/solid/arrow-down-on-square-stack.svg rename to assets/icons/solid/arrow-down-on-square-stack.svg diff --git a/priv/icons/solid/arrow-down-on-square.svg b/assets/icons/solid/arrow-down-on-square.svg similarity index 100% rename from priv/icons/solid/arrow-down-on-square.svg rename to assets/icons/solid/arrow-down-on-square.svg diff --git a/priv/icons/solid/arrow-down-right.svg b/assets/icons/solid/arrow-down-right.svg similarity index 100% rename from priv/icons/solid/arrow-down-right.svg rename to assets/icons/solid/arrow-down-right.svg diff --git a/priv/icons/solid/arrow-down-tray.svg b/assets/icons/solid/arrow-down-tray.svg similarity index 100% rename from priv/icons/solid/arrow-down-tray.svg rename to assets/icons/solid/arrow-down-tray.svg diff --git a/priv/icons/solid/arrow-down.svg b/assets/icons/solid/arrow-down.svg similarity index 100% rename from priv/icons/solid/arrow-down.svg rename to assets/icons/solid/arrow-down.svg diff --git a/priv/icons/solid/arrow-left-circle.svg b/assets/icons/solid/arrow-left-circle.svg similarity index 100% rename from priv/icons/solid/arrow-left-circle.svg rename to assets/icons/solid/arrow-left-circle.svg diff --git a/priv/icons/solid/arrow-left-on-rectangle.svg b/assets/icons/solid/arrow-left-on-rectangle.svg similarity index 100% rename from priv/icons/solid/arrow-left-on-rectangle.svg rename to assets/icons/solid/arrow-left-on-rectangle.svg diff --git a/priv/icons/solid/arrow-left.svg b/assets/icons/solid/arrow-left.svg similarity index 100% rename from priv/icons/solid/arrow-left.svg rename to assets/icons/solid/arrow-left.svg diff --git a/priv/icons/solid/arrow-long-down.svg b/assets/icons/solid/arrow-long-down.svg similarity index 100% rename from priv/icons/solid/arrow-long-down.svg rename to assets/icons/solid/arrow-long-down.svg diff --git a/priv/icons/solid/arrow-long-left.svg b/assets/icons/solid/arrow-long-left.svg similarity index 100% rename from priv/icons/solid/arrow-long-left.svg rename to assets/icons/solid/arrow-long-left.svg diff --git a/priv/icons/solid/arrow-long-right.svg b/assets/icons/solid/arrow-long-right.svg similarity index 100% rename from priv/icons/solid/arrow-long-right.svg rename to assets/icons/solid/arrow-long-right.svg diff --git a/priv/icons/solid/arrow-long-up.svg b/assets/icons/solid/arrow-long-up.svg similarity index 100% rename from priv/icons/solid/arrow-long-up.svg rename to assets/icons/solid/arrow-long-up.svg diff --git a/priv/icons/solid/arrow-path-rounded-square.svg b/assets/icons/solid/arrow-path-rounded-square.svg similarity index 100% rename from priv/icons/solid/arrow-path-rounded-square.svg rename to assets/icons/solid/arrow-path-rounded-square.svg diff --git a/priv/icons/solid/arrow-path.svg b/assets/icons/solid/arrow-path.svg similarity index 100% rename from priv/icons/solid/arrow-path.svg rename to assets/icons/solid/arrow-path.svg diff --git a/priv/icons/solid/arrow-right-circle.svg b/assets/icons/solid/arrow-right-circle.svg similarity index 100% rename from priv/icons/solid/arrow-right-circle.svg rename to assets/icons/solid/arrow-right-circle.svg diff --git a/priv/icons/solid/arrow-right-on-rectangle.svg b/assets/icons/solid/arrow-right-on-rectangle.svg similarity index 100% rename from priv/icons/solid/arrow-right-on-rectangle.svg rename to assets/icons/solid/arrow-right-on-rectangle.svg diff --git a/priv/icons/solid/arrow-right.svg b/assets/icons/solid/arrow-right.svg similarity index 100% rename from priv/icons/solid/arrow-right.svg rename to assets/icons/solid/arrow-right.svg diff --git a/priv/icons/solid/arrow-small-down.svg b/assets/icons/solid/arrow-small-down.svg similarity index 100% rename from priv/icons/solid/arrow-small-down.svg rename to assets/icons/solid/arrow-small-down.svg diff --git a/priv/icons/solid/arrow-small-left.svg b/assets/icons/solid/arrow-small-left.svg similarity index 100% rename from priv/icons/solid/arrow-small-left.svg rename to assets/icons/solid/arrow-small-left.svg diff --git a/priv/icons/solid/arrow-small-right.svg b/assets/icons/solid/arrow-small-right.svg similarity index 100% rename from priv/icons/solid/arrow-small-right.svg rename to assets/icons/solid/arrow-small-right.svg diff --git a/priv/icons/solid/arrow-small-up.svg b/assets/icons/solid/arrow-small-up.svg similarity index 100% rename from priv/icons/solid/arrow-small-up.svg rename to assets/icons/solid/arrow-small-up.svg diff --git a/priv/icons/solid/arrow-top-right-on-square.svg b/assets/icons/solid/arrow-top-right-on-square.svg similarity index 100% rename from priv/icons/solid/arrow-top-right-on-square.svg rename to assets/icons/solid/arrow-top-right-on-square.svg diff --git a/priv/icons/solid/arrow-trending-down.svg b/assets/icons/solid/arrow-trending-down.svg similarity index 100% rename from priv/icons/solid/arrow-trending-down.svg rename to assets/icons/solid/arrow-trending-down.svg diff --git a/priv/icons/solid/arrow-trending-up.svg b/assets/icons/solid/arrow-trending-up.svg similarity index 100% rename from priv/icons/solid/arrow-trending-up.svg rename to assets/icons/solid/arrow-trending-up.svg diff --git a/priv/icons/solid/arrow-up-circle.svg b/assets/icons/solid/arrow-up-circle.svg similarity index 100% rename from priv/icons/solid/arrow-up-circle.svg rename to assets/icons/solid/arrow-up-circle.svg diff --git a/priv/icons/solid/arrow-up-left.svg b/assets/icons/solid/arrow-up-left.svg similarity index 100% rename from priv/icons/solid/arrow-up-left.svg rename to assets/icons/solid/arrow-up-left.svg diff --git a/priv/icons/solid/arrow-up-on-square-stack.svg b/assets/icons/solid/arrow-up-on-square-stack.svg similarity index 100% rename from priv/icons/solid/arrow-up-on-square-stack.svg rename to assets/icons/solid/arrow-up-on-square-stack.svg diff --git a/priv/icons/solid/arrow-up-on-square.svg b/assets/icons/solid/arrow-up-on-square.svg similarity index 100% rename from priv/icons/solid/arrow-up-on-square.svg rename to assets/icons/solid/arrow-up-on-square.svg diff --git a/priv/icons/solid/arrow-up-right.svg b/assets/icons/solid/arrow-up-right.svg similarity index 100% rename from priv/icons/solid/arrow-up-right.svg rename to assets/icons/solid/arrow-up-right.svg diff --git a/priv/icons/solid/arrow-up-tray.svg b/assets/icons/solid/arrow-up-tray.svg similarity index 100% rename from priv/icons/solid/arrow-up-tray.svg rename to assets/icons/solid/arrow-up-tray.svg diff --git a/priv/icons/solid/arrow-up.svg b/assets/icons/solid/arrow-up.svg similarity index 100% rename from priv/icons/solid/arrow-up.svg rename to assets/icons/solid/arrow-up.svg diff --git a/priv/icons/solid/arrow-uturn-down.svg b/assets/icons/solid/arrow-uturn-down.svg similarity index 100% rename from priv/icons/solid/arrow-uturn-down.svg rename to assets/icons/solid/arrow-uturn-down.svg diff --git a/priv/icons/solid/arrow-uturn-left.svg b/assets/icons/solid/arrow-uturn-left.svg similarity index 100% rename from priv/icons/solid/arrow-uturn-left.svg rename to assets/icons/solid/arrow-uturn-left.svg diff --git a/priv/icons/solid/arrow-uturn-right.svg b/assets/icons/solid/arrow-uturn-right.svg similarity index 100% rename from priv/icons/solid/arrow-uturn-right.svg rename to assets/icons/solid/arrow-uturn-right.svg diff --git a/priv/icons/solid/arrow-uturn-up.svg b/assets/icons/solid/arrow-uturn-up.svg similarity index 100% rename from priv/icons/solid/arrow-uturn-up.svg rename to assets/icons/solid/arrow-uturn-up.svg diff --git a/priv/icons/solid/arrows-pointing-in.svg b/assets/icons/solid/arrows-pointing-in.svg similarity index 100% rename from priv/icons/solid/arrows-pointing-in.svg rename to assets/icons/solid/arrows-pointing-in.svg diff --git a/priv/icons/solid/arrows-pointing-out.svg b/assets/icons/solid/arrows-pointing-out.svg similarity index 100% rename from priv/icons/solid/arrows-pointing-out.svg rename to assets/icons/solid/arrows-pointing-out.svg diff --git a/priv/icons/solid/arrows-right-left.svg b/assets/icons/solid/arrows-right-left.svg similarity index 100% rename from priv/icons/solid/arrows-right-left.svg rename to assets/icons/solid/arrows-right-left.svg diff --git a/priv/icons/solid/arrows-up-down.svg b/assets/icons/solid/arrows-up-down.svg similarity index 100% rename from priv/icons/solid/arrows-up-down.svg rename to assets/icons/solid/arrows-up-down.svg diff --git a/priv/icons/solid/at-symbol.svg b/assets/icons/solid/at-symbol.svg similarity index 100% rename from priv/icons/solid/at-symbol.svg rename to assets/icons/solid/at-symbol.svg diff --git a/priv/icons/solid/backspace.svg b/assets/icons/solid/backspace.svg similarity index 100% rename from priv/icons/solid/backspace.svg rename to assets/icons/solid/backspace.svg diff --git a/priv/icons/solid/backward.svg b/assets/icons/solid/backward.svg similarity index 100% rename from priv/icons/solid/backward.svg rename to assets/icons/solid/backward.svg diff --git a/priv/icons/solid/banknotes.svg b/assets/icons/solid/banknotes.svg similarity index 100% rename from priv/icons/solid/banknotes.svg rename to assets/icons/solid/banknotes.svg diff --git a/priv/icons/solid/bars-2.svg b/assets/icons/solid/bars-2.svg similarity index 100% rename from priv/icons/solid/bars-2.svg rename to assets/icons/solid/bars-2.svg diff --git a/priv/icons/solid/bars-3-bottom-left.svg b/assets/icons/solid/bars-3-bottom-left.svg similarity index 100% rename from priv/icons/solid/bars-3-bottom-left.svg rename to assets/icons/solid/bars-3-bottom-left.svg diff --git a/priv/icons/solid/bars-3-bottom-right.svg b/assets/icons/solid/bars-3-bottom-right.svg similarity index 100% rename from priv/icons/solid/bars-3-bottom-right.svg rename to assets/icons/solid/bars-3-bottom-right.svg diff --git a/priv/icons/solid/bars-3-center-left.svg b/assets/icons/solid/bars-3-center-left.svg similarity index 100% rename from priv/icons/solid/bars-3-center-left.svg rename to assets/icons/solid/bars-3-center-left.svg diff --git a/priv/icons/solid/bars-3.svg b/assets/icons/solid/bars-3.svg similarity index 100% rename from priv/icons/solid/bars-3.svg rename to assets/icons/solid/bars-3.svg diff --git a/priv/icons/solid/bars-4.svg b/assets/icons/solid/bars-4.svg similarity index 100% rename from priv/icons/solid/bars-4.svg rename to assets/icons/solid/bars-4.svg diff --git a/priv/icons/solid/bars-arrow-down.svg b/assets/icons/solid/bars-arrow-down.svg similarity index 100% rename from priv/icons/solid/bars-arrow-down.svg rename to assets/icons/solid/bars-arrow-down.svg diff --git a/priv/icons/solid/bars-arrow-up.svg b/assets/icons/solid/bars-arrow-up.svg similarity index 100% rename from priv/icons/solid/bars-arrow-up.svg rename to assets/icons/solid/bars-arrow-up.svg diff --git a/priv/icons/solid/battery-0.svg b/assets/icons/solid/battery-0.svg similarity index 100% rename from priv/icons/solid/battery-0.svg rename to assets/icons/solid/battery-0.svg diff --git a/priv/icons/solid/battery-100.svg b/assets/icons/solid/battery-100.svg similarity index 100% rename from priv/icons/solid/battery-100.svg rename to assets/icons/solid/battery-100.svg diff --git a/priv/icons/solid/battery-50.svg b/assets/icons/solid/battery-50.svg similarity index 100% rename from priv/icons/solid/battery-50.svg rename to assets/icons/solid/battery-50.svg diff --git a/priv/icons/solid/beaker.svg b/assets/icons/solid/beaker.svg similarity index 100% rename from priv/icons/solid/beaker.svg rename to assets/icons/solid/beaker.svg diff --git a/priv/icons/solid/bell-alert.svg b/assets/icons/solid/bell-alert.svg similarity index 100% rename from priv/icons/solid/bell-alert.svg rename to assets/icons/solid/bell-alert.svg diff --git a/priv/icons/solid/bell-slash.svg b/assets/icons/solid/bell-slash.svg similarity index 100% rename from priv/icons/solid/bell-slash.svg rename to assets/icons/solid/bell-slash.svg diff --git a/priv/icons/solid/bell-snooze.svg b/assets/icons/solid/bell-snooze.svg similarity index 100% rename from priv/icons/solid/bell-snooze.svg rename to assets/icons/solid/bell-snooze.svg diff --git a/priv/icons/solid/bell.svg b/assets/icons/solid/bell.svg similarity index 100% rename from priv/icons/solid/bell.svg rename to assets/icons/solid/bell.svg diff --git a/priv/icons/solid/bolt-slash.svg b/assets/icons/solid/bolt-slash.svg similarity index 100% rename from priv/icons/solid/bolt-slash.svg rename to assets/icons/solid/bolt-slash.svg diff --git a/priv/icons/solid/bolt.svg b/assets/icons/solid/bolt.svg similarity index 100% rename from priv/icons/solid/bolt.svg rename to assets/icons/solid/bolt.svg diff --git a/priv/icons/solid/book-open.svg b/assets/icons/solid/book-open.svg similarity index 100% rename from priv/icons/solid/book-open.svg rename to assets/icons/solid/book-open.svg diff --git a/priv/icons/solid/bookmark-slash.svg b/assets/icons/solid/bookmark-slash.svg similarity index 100% rename from priv/icons/solid/bookmark-slash.svg rename to assets/icons/solid/bookmark-slash.svg diff --git a/priv/icons/solid/bookmark-square.svg b/assets/icons/solid/bookmark-square.svg similarity index 100% rename from priv/icons/solid/bookmark-square.svg rename to assets/icons/solid/bookmark-square.svg diff --git a/priv/icons/solid/bookmark.svg b/assets/icons/solid/bookmark.svg similarity index 100% rename from priv/icons/solid/bookmark.svg rename to assets/icons/solid/bookmark.svg diff --git a/priv/icons/solid/briefcase.svg b/assets/icons/solid/briefcase.svg similarity index 100% rename from priv/icons/solid/briefcase.svg rename to assets/icons/solid/briefcase.svg diff --git a/priv/icons/solid/building-library.svg b/assets/icons/solid/building-library.svg similarity index 100% rename from priv/icons/solid/building-library.svg rename to assets/icons/solid/building-library.svg diff --git a/priv/icons/solid/building-office-2.svg b/assets/icons/solid/building-office-2.svg similarity index 100% rename from priv/icons/solid/building-office-2.svg rename to assets/icons/solid/building-office-2.svg diff --git a/priv/icons/solid/building-office.svg b/assets/icons/solid/building-office.svg similarity index 100% rename from priv/icons/solid/building-office.svg rename to assets/icons/solid/building-office.svg diff --git a/priv/icons/solid/building-storefront.svg b/assets/icons/solid/building-storefront.svg similarity index 100% rename from priv/icons/solid/building-storefront.svg rename to assets/icons/solid/building-storefront.svg diff --git a/priv/icons/solid/cake.svg b/assets/icons/solid/cake.svg similarity index 100% rename from priv/icons/solid/cake.svg rename to assets/icons/solid/cake.svg diff --git a/priv/icons/solid/calculator.svg b/assets/icons/solid/calculator.svg similarity index 100% rename from priv/icons/solid/calculator.svg rename to assets/icons/solid/calculator.svg diff --git a/priv/icons/solid/calendar-days.svg b/assets/icons/solid/calendar-days.svg similarity index 100% rename from priv/icons/solid/calendar-days.svg rename to assets/icons/solid/calendar-days.svg diff --git a/priv/icons/solid/calendar.svg b/assets/icons/solid/calendar.svg similarity index 100% rename from priv/icons/solid/calendar.svg rename to assets/icons/solid/calendar.svg diff --git a/priv/icons/solid/camera.svg b/assets/icons/solid/camera.svg similarity index 100% rename from priv/icons/solid/camera.svg rename to assets/icons/solid/camera.svg diff --git a/priv/icons/solid/chart-bar-square.svg b/assets/icons/solid/chart-bar-square.svg similarity index 100% rename from priv/icons/solid/chart-bar-square.svg rename to assets/icons/solid/chart-bar-square.svg diff --git a/priv/icons/solid/chart-bar.svg b/assets/icons/solid/chart-bar.svg similarity index 100% rename from priv/icons/solid/chart-bar.svg rename to assets/icons/solid/chart-bar.svg diff --git a/priv/icons/solid/chart-pie.svg b/assets/icons/solid/chart-pie.svg similarity index 100% rename from priv/icons/solid/chart-pie.svg rename to assets/icons/solid/chart-pie.svg diff --git a/priv/icons/solid/chat-bubble-bottom-center-text.svg b/assets/icons/solid/chat-bubble-bottom-center-text.svg similarity index 100% rename from priv/icons/solid/chat-bubble-bottom-center-text.svg rename to assets/icons/solid/chat-bubble-bottom-center-text.svg diff --git a/priv/icons/solid/chat-bubble-bottom-center.svg b/assets/icons/solid/chat-bubble-bottom-center.svg similarity index 100% rename from priv/icons/solid/chat-bubble-bottom-center.svg rename to assets/icons/solid/chat-bubble-bottom-center.svg diff --git a/priv/icons/solid/chat-bubble-left-ellipsis.svg b/assets/icons/solid/chat-bubble-left-ellipsis.svg similarity index 100% rename from priv/icons/solid/chat-bubble-left-ellipsis.svg rename to assets/icons/solid/chat-bubble-left-ellipsis.svg diff --git a/priv/icons/solid/chat-bubble-left-right.svg b/assets/icons/solid/chat-bubble-left-right.svg similarity index 100% rename from priv/icons/solid/chat-bubble-left-right.svg rename to assets/icons/solid/chat-bubble-left-right.svg diff --git a/priv/icons/solid/chat-bubble-left.svg b/assets/icons/solid/chat-bubble-left.svg similarity index 100% rename from priv/icons/solid/chat-bubble-left.svg rename to assets/icons/solid/chat-bubble-left.svg diff --git a/priv/icons/solid/chat-bubble-oval-left-ellipsis.svg b/assets/icons/solid/chat-bubble-oval-left-ellipsis.svg similarity index 100% rename from priv/icons/solid/chat-bubble-oval-left-ellipsis.svg rename to assets/icons/solid/chat-bubble-oval-left-ellipsis.svg diff --git a/priv/icons/solid/chat-bubble-oval-left.svg b/assets/icons/solid/chat-bubble-oval-left.svg similarity index 100% rename from priv/icons/solid/chat-bubble-oval-left.svg rename to assets/icons/solid/chat-bubble-oval-left.svg diff --git a/priv/icons/solid/check-badge.svg b/assets/icons/solid/check-badge.svg similarity index 100% rename from priv/icons/solid/check-badge.svg rename to assets/icons/solid/check-badge.svg diff --git a/priv/icons/solid/check-circle.svg b/assets/icons/solid/check-circle.svg similarity index 100% rename from priv/icons/solid/check-circle.svg rename to assets/icons/solid/check-circle.svg diff --git a/priv/icons/solid/check.svg b/assets/icons/solid/check.svg similarity index 100% rename from priv/icons/solid/check.svg rename to assets/icons/solid/check.svg diff --git a/priv/icons/solid/chevron-double-down.svg b/assets/icons/solid/chevron-double-down.svg similarity index 100% rename from priv/icons/solid/chevron-double-down.svg rename to assets/icons/solid/chevron-double-down.svg diff --git a/priv/icons/solid/chevron-double-left.svg b/assets/icons/solid/chevron-double-left.svg similarity index 100% rename from priv/icons/solid/chevron-double-left.svg rename to assets/icons/solid/chevron-double-left.svg diff --git a/priv/icons/solid/chevron-double-right.svg b/assets/icons/solid/chevron-double-right.svg similarity index 100% rename from priv/icons/solid/chevron-double-right.svg rename to assets/icons/solid/chevron-double-right.svg diff --git a/priv/icons/solid/chevron-double-up.svg b/assets/icons/solid/chevron-double-up.svg similarity index 100% rename from priv/icons/solid/chevron-double-up.svg rename to assets/icons/solid/chevron-double-up.svg diff --git a/priv/icons/solid/chevron-down.svg b/assets/icons/solid/chevron-down.svg similarity index 100% rename from priv/icons/solid/chevron-down.svg rename to assets/icons/solid/chevron-down.svg diff --git a/priv/icons/solid/chevron-left.svg b/assets/icons/solid/chevron-left.svg similarity index 100% rename from priv/icons/solid/chevron-left.svg rename to assets/icons/solid/chevron-left.svg diff --git a/priv/icons/solid/chevron-right.svg b/assets/icons/solid/chevron-right.svg similarity index 100% rename from priv/icons/solid/chevron-right.svg rename to assets/icons/solid/chevron-right.svg diff --git a/priv/icons/solid/chevron-up-down.svg b/assets/icons/solid/chevron-up-down.svg similarity index 100% rename from priv/icons/solid/chevron-up-down.svg rename to assets/icons/solid/chevron-up-down.svg diff --git a/priv/icons/solid/chevron-up.svg b/assets/icons/solid/chevron-up.svg similarity index 100% rename from priv/icons/solid/chevron-up.svg rename to assets/icons/solid/chevron-up.svg diff --git a/priv/icons/solid/circle-stack.svg b/assets/icons/solid/circle-stack.svg similarity index 100% rename from priv/icons/solid/circle-stack.svg rename to assets/icons/solid/circle-stack.svg diff --git a/priv/icons/solid/clipboard-document-check.svg b/assets/icons/solid/clipboard-document-check.svg similarity index 100% rename from priv/icons/solid/clipboard-document-check.svg rename to assets/icons/solid/clipboard-document-check.svg diff --git a/priv/icons/solid/clipboard-document-list.svg b/assets/icons/solid/clipboard-document-list.svg similarity index 100% rename from priv/icons/solid/clipboard-document-list.svg rename to assets/icons/solid/clipboard-document-list.svg diff --git a/priv/icons/solid/clipboard-document.svg b/assets/icons/solid/clipboard-document.svg similarity index 100% rename from priv/icons/solid/clipboard-document.svg rename to assets/icons/solid/clipboard-document.svg diff --git a/priv/icons/solid/clipboard.svg b/assets/icons/solid/clipboard.svg similarity index 100% rename from priv/icons/solid/clipboard.svg rename to assets/icons/solid/clipboard.svg diff --git a/priv/icons/solid/clock.svg b/assets/icons/solid/clock.svg similarity index 100% rename from priv/icons/solid/clock.svg rename to assets/icons/solid/clock.svg diff --git a/priv/icons/solid/cloud-arrow-down.svg b/assets/icons/solid/cloud-arrow-down.svg similarity index 100% rename from priv/icons/solid/cloud-arrow-down.svg rename to assets/icons/solid/cloud-arrow-down.svg diff --git a/priv/icons/solid/cloud-arrow-up.svg b/assets/icons/solid/cloud-arrow-up.svg similarity index 100% rename from priv/icons/solid/cloud-arrow-up.svg rename to assets/icons/solid/cloud-arrow-up.svg diff --git a/priv/icons/solid/cloud.svg b/assets/icons/solid/cloud.svg similarity index 100% rename from priv/icons/solid/cloud.svg rename to assets/icons/solid/cloud.svg diff --git a/priv/icons/solid/code-bracket-square.svg b/assets/icons/solid/code-bracket-square.svg similarity index 100% rename from priv/icons/solid/code-bracket-square.svg rename to assets/icons/solid/code-bracket-square.svg diff --git a/priv/icons/solid/code-bracket.svg b/assets/icons/solid/code-bracket.svg similarity index 100% rename from priv/icons/solid/code-bracket.svg rename to assets/icons/solid/code-bracket.svg diff --git a/priv/icons/solid/cog-6-tooth.svg b/assets/icons/solid/cog-6-tooth.svg similarity index 100% rename from priv/icons/solid/cog-6-tooth.svg rename to assets/icons/solid/cog-6-tooth.svg diff --git a/priv/icons/solid/cog-8-tooth.svg b/assets/icons/solid/cog-8-tooth.svg similarity index 100% rename from priv/icons/solid/cog-8-tooth.svg rename to assets/icons/solid/cog-8-tooth.svg diff --git a/priv/icons/solid/cog.svg b/assets/icons/solid/cog.svg similarity index 100% rename from priv/icons/solid/cog.svg rename to assets/icons/solid/cog.svg diff --git a/priv/icons/solid/command-line.svg b/assets/icons/solid/command-line.svg similarity index 100% rename from priv/icons/solid/command-line.svg rename to assets/icons/solid/command-line.svg diff --git a/priv/icons/solid/computer-desktop.svg b/assets/icons/solid/computer-desktop.svg similarity index 100% rename from priv/icons/solid/computer-desktop.svg rename to assets/icons/solid/computer-desktop.svg diff --git a/priv/icons/solid/cpu-chip.svg b/assets/icons/solid/cpu-chip.svg similarity index 100% rename from priv/icons/solid/cpu-chip.svg rename to assets/icons/solid/cpu-chip.svg diff --git a/priv/icons/solid/credit-card.svg b/assets/icons/solid/credit-card.svg similarity index 100% rename from priv/icons/solid/credit-card.svg rename to assets/icons/solid/credit-card.svg diff --git a/priv/icons/solid/cube-transparent.svg b/assets/icons/solid/cube-transparent.svg similarity index 100% rename from priv/icons/solid/cube-transparent.svg rename to assets/icons/solid/cube-transparent.svg diff --git a/priv/icons/solid/cube.svg b/assets/icons/solid/cube.svg similarity index 100% rename from priv/icons/solid/cube.svg rename to assets/icons/solid/cube.svg diff --git a/priv/icons/solid/currency-bangladeshi.svg b/assets/icons/solid/currency-bangladeshi.svg similarity index 100% rename from priv/icons/solid/currency-bangladeshi.svg rename to assets/icons/solid/currency-bangladeshi.svg diff --git a/priv/icons/solid/currency-dollar.svg b/assets/icons/solid/currency-dollar.svg similarity index 100% rename from priv/icons/solid/currency-dollar.svg rename to assets/icons/solid/currency-dollar.svg diff --git a/priv/icons/solid/currency-euro.svg b/assets/icons/solid/currency-euro.svg similarity index 100% rename from priv/icons/solid/currency-euro.svg rename to assets/icons/solid/currency-euro.svg diff --git a/priv/icons/solid/currency-pound.svg b/assets/icons/solid/currency-pound.svg similarity index 100% rename from priv/icons/solid/currency-pound.svg rename to assets/icons/solid/currency-pound.svg diff --git a/priv/icons/solid/currency-rupee.svg b/assets/icons/solid/currency-rupee.svg similarity index 100% rename from priv/icons/solid/currency-rupee.svg rename to assets/icons/solid/currency-rupee.svg diff --git a/priv/icons/solid/currency-yen.svg b/assets/icons/solid/currency-yen.svg similarity index 100% rename from priv/icons/solid/currency-yen.svg rename to assets/icons/solid/currency-yen.svg diff --git a/priv/icons/solid/cursor-arrow-rays.svg b/assets/icons/solid/cursor-arrow-rays.svg similarity index 100% rename from priv/icons/solid/cursor-arrow-rays.svg rename to assets/icons/solid/cursor-arrow-rays.svg diff --git a/priv/icons/solid/cursor-arrow-ripple.svg b/assets/icons/solid/cursor-arrow-ripple.svg similarity index 100% rename from priv/icons/solid/cursor-arrow-ripple.svg rename to assets/icons/solid/cursor-arrow-ripple.svg diff --git a/priv/icons/solid/device-phone-mobile.svg b/assets/icons/solid/device-phone-mobile.svg similarity index 100% rename from priv/icons/solid/device-phone-mobile.svg rename to assets/icons/solid/device-phone-mobile.svg diff --git a/priv/icons/solid/device-tablet.svg b/assets/icons/solid/device-tablet.svg similarity index 100% rename from priv/icons/solid/device-tablet.svg rename to assets/icons/solid/device-tablet.svg diff --git a/priv/icons/solid/document-arrow-down.svg b/assets/icons/solid/document-arrow-down.svg similarity index 100% rename from priv/icons/solid/document-arrow-down.svg rename to assets/icons/solid/document-arrow-down.svg diff --git a/priv/icons/solid/document-arrow-up.svg b/assets/icons/solid/document-arrow-up.svg similarity index 100% rename from priv/icons/solid/document-arrow-up.svg rename to assets/icons/solid/document-arrow-up.svg diff --git a/priv/icons/solid/document-chart-bar.svg b/assets/icons/solid/document-chart-bar.svg similarity index 100% rename from priv/icons/solid/document-chart-bar.svg rename to assets/icons/solid/document-chart-bar.svg diff --git a/priv/icons/solid/document-check.svg b/assets/icons/solid/document-check.svg similarity index 100% rename from priv/icons/solid/document-check.svg rename to assets/icons/solid/document-check.svg diff --git a/priv/icons/solid/document-duplicate.svg b/assets/icons/solid/document-duplicate.svg similarity index 100% rename from priv/icons/solid/document-duplicate.svg rename to assets/icons/solid/document-duplicate.svg diff --git a/priv/icons/solid/document-magnifying-glass.svg b/assets/icons/solid/document-magnifying-glass.svg similarity index 100% rename from priv/icons/solid/document-magnifying-glass.svg rename to assets/icons/solid/document-magnifying-glass.svg diff --git a/priv/icons/solid/document-minus.svg b/assets/icons/solid/document-minus.svg similarity index 100% rename from priv/icons/solid/document-minus.svg rename to assets/icons/solid/document-minus.svg diff --git a/priv/icons/solid/document-plus.svg b/assets/icons/solid/document-plus.svg similarity index 100% rename from priv/icons/solid/document-plus.svg rename to assets/icons/solid/document-plus.svg diff --git a/priv/icons/solid/document-text.svg b/assets/icons/solid/document-text.svg similarity index 100% rename from priv/icons/solid/document-text.svg rename to assets/icons/solid/document-text.svg diff --git a/priv/icons/solid/document.svg b/assets/icons/solid/document.svg similarity index 100% rename from priv/icons/solid/document.svg rename to assets/icons/solid/document.svg diff --git a/priv/icons/solid/ellipsis-horizontal-circle.svg b/assets/icons/solid/ellipsis-horizontal-circle.svg similarity index 100% rename from priv/icons/solid/ellipsis-horizontal-circle.svg rename to assets/icons/solid/ellipsis-horizontal-circle.svg diff --git a/priv/icons/solid/ellipsis-horizontal.svg b/assets/icons/solid/ellipsis-horizontal.svg similarity index 100% rename from priv/icons/solid/ellipsis-horizontal.svg rename to assets/icons/solid/ellipsis-horizontal.svg diff --git a/priv/icons/solid/ellipsis-vertical.svg b/assets/icons/solid/ellipsis-vertical.svg similarity index 100% rename from priv/icons/solid/ellipsis-vertical.svg rename to assets/icons/solid/ellipsis-vertical.svg diff --git a/priv/icons/solid/envelope-open.svg b/assets/icons/solid/envelope-open.svg similarity index 100% rename from priv/icons/solid/envelope-open.svg rename to assets/icons/solid/envelope-open.svg diff --git a/priv/icons/solid/envelope.svg b/assets/icons/solid/envelope.svg similarity index 100% rename from priv/icons/solid/envelope.svg rename to assets/icons/solid/envelope.svg diff --git a/priv/icons/solid/exclamation-circle.svg b/assets/icons/solid/exclamation-circle.svg similarity index 100% rename from priv/icons/solid/exclamation-circle.svg rename to assets/icons/solid/exclamation-circle.svg diff --git a/priv/icons/solid/exclamation-triangle.svg b/assets/icons/solid/exclamation-triangle.svg similarity index 100% rename from priv/icons/solid/exclamation-triangle.svg rename to assets/icons/solid/exclamation-triangle.svg diff --git a/priv/icons/solid/eye-slash.svg b/assets/icons/solid/eye-slash.svg similarity index 100% rename from priv/icons/solid/eye-slash.svg rename to assets/icons/solid/eye-slash.svg diff --git a/priv/icons/solid/eye.svg b/assets/icons/solid/eye.svg similarity index 100% rename from priv/icons/solid/eye.svg rename to assets/icons/solid/eye.svg diff --git a/priv/icons/solid/face-frown.svg b/assets/icons/solid/face-frown.svg similarity index 100% rename from priv/icons/solid/face-frown.svg rename to assets/icons/solid/face-frown.svg diff --git a/priv/icons/solid/face-smile.svg b/assets/icons/solid/face-smile.svg similarity index 100% rename from priv/icons/solid/face-smile.svg rename to assets/icons/solid/face-smile.svg diff --git a/priv/icons/solid/film.svg b/assets/icons/solid/film.svg similarity index 100% rename from priv/icons/solid/film.svg rename to assets/icons/solid/film.svg diff --git a/priv/icons/solid/finger-print.svg b/assets/icons/solid/finger-print.svg similarity index 100% rename from priv/icons/solid/finger-print.svg rename to assets/icons/solid/finger-print.svg diff --git a/priv/icons/solid/fire.svg b/assets/icons/solid/fire.svg similarity index 100% rename from priv/icons/solid/fire.svg rename to assets/icons/solid/fire.svg diff --git a/priv/icons/solid/flag.svg b/assets/icons/solid/flag.svg similarity index 100% rename from priv/icons/solid/flag.svg rename to assets/icons/solid/flag.svg diff --git a/priv/icons/solid/folder-arrow-down.svg b/assets/icons/solid/folder-arrow-down.svg similarity index 100% rename from priv/icons/solid/folder-arrow-down.svg rename to assets/icons/solid/folder-arrow-down.svg diff --git a/priv/icons/solid/folder-minus.svg b/assets/icons/solid/folder-minus.svg similarity index 100% rename from priv/icons/solid/folder-minus.svg rename to assets/icons/solid/folder-minus.svg diff --git a/priv/icons/solid/folder-open.svg b/assets/icons/solid/folder-open.svg similarity index 100% rename from priv/icons/solid/folder-open.svg rename to assets/icons/solid/folder-open.svg diff --git a/priv/icons/solid/folder-plus.svg b/assets/icons/solid/folder-plus.svg similarity index 100% rename from priv/icons/solid/folder-plus.svg rename to assets/icons/solid/folder-plus.svg diff --git a/priv/icons/solid/folder.svg b/assets/icons/solid/folder.svg similarity index 100% rename from priv/icons/solid/folder.svg rename to assets/icons/solid/folder.svg diff --git a/priv/icons/solid/forward.svg b/assets/icons/solid/forward.svg similarity index 100% rename from priv/icons/solid/forward.svg rename to assets/icons/solid/forward.svg diff --git a/priv/icons/solid/funnel.svg b/assets/icons/solid/funnel.svg similarity index 100% rename from priv/icons/solid/funnel.svg rename to assets/icons/solid/funnel.svg diff --git a/priv/icons/solid/gif.svg b/assets/icons/solid/gif.svg similarity index 100% rename from priv/icons/solid/gif.svg rename to assets/icons/solid/gif.svg diff --git a/priv/icons/solid/gift-top.svg b/assets/icons/solid/gift-top.svg similarity index 100% rename from priv/icons/solid/gift-top.svg rename to assets/icons/solid/gift-top.svg diff --git a/priv/icons/solid/gift.svg b/assets/icons/solid/gift.svg similarity index 100% rename from priv/icons/solid/gift.svg rename to assets/icons/solid/gift.svg diff --git a/priv/icons/solid/globe-alt.svg b/assets/icons/solid/globe-alt.svg similarity index 100% rename from priv/icons/solid/globe-alt.svg rename to assets/icons/solid/globe-alt.svg diff --git a/priv/icons/solid/globe-americas.svg b/assets/icons/solid/globe-americas.svg similarity index 100% rename from priv/icons/solid/globe-americas.svg rename to assets/icons/solid/globe-americas.svg diff --git a/priv/icons/solid/globe-asia-australia.svg b/assets/icons/solid/globe-asia-australia.svg similarity index 100% rename from priv/icons/solid/globe-asia-australia.svg rename to assets/icons/solid/globe-asia-australia.svg diff --git a/priv/icons/solid/globe-europe-africa.svg b/assets/icons/solid/globe-europe-africa.svg similarity index 100% rename from priv/icons/solid/globe-europe-africa.svg rename to assets/icons/solid/globe-europe-africa.svg diff --git a/priv/icons/solid/hand-raised.svg b/assets/icons/solid/hand-raised.svg similarity index 100% rename from priv/icons/solid/hand-raised.svg rename to assets/icons/solid/hand-raised.svg diff --git a/priv/icons/solid/hand-thumb-down.svg b/assets/icons/solid/hand-thumb-down.svg similarity index 100% rename from priv/icons/solid/hand-thumb-down.svg rename to assets/icons/solid/hand-thumb-down.svg diff --git a/priv/icons/solid/hand-thumb-up.svg b/assets/icons/solid/hand-thumb-up.svg similarity index 100% rename from priv/icons/solid/hand-thumb-up.svg rename to assets/icons/solid/hand-thumb-up.svg diff --git a/priv/icons/solid/hashtag.svg b/assets/icons/solid/hashtag.svg similarity index 100% rename from priv/icons/solid/hashtag.svg rename to assets/icons/solid/hashtag.svg diff --git a/priv/icons/solid/heart.svg b/assets/icons/solid/heart.svg similarity index 100% rename from priv/icons/solid/heart.svg rename to assets/icons/solid/heart.svg diff --git a/priv/icons/solid/home-modern.svg b/assets/icons/solid/home-modern.svg similarity index 100% rename from priv/icons/solid/home-modern.svg rename to assets/icons/solid/home-modern.svg diff --git a/priv/icons/solid/home.svg b/assets/icons/solid/home.svg similarity index 100% rename from priv/icons/solid/home.svg rename to assets/icons/solid/home.svg diff --git a/priv/icons/solid/identification.svg b/assets/icons/solid/identification.svg similarity index 100% rename from priv/icons/solid/identification.svg rename to assets/icons/solid/identification.svg diff --git a/priv/icons/solid/inbox-arrow-down.svg b/assets/icons/solid/inbox-arrow-down.svg similarity index 100% rename from priv/icons/solid/inbox-arrow-down.svg rename to assets/icons/solid/inbox-arrow-down.svg diff --git a/priv/icons/solid/inbox-stack.svg b/assets/icons/solid/inbox-stack.svg similarity index 100% rename from priv/icons/solid/inbox-stack.svg rename to assets/icons/solid/inbox-stack.svg diff --git a/priv/icons/solid/inbox.svg b/assets/icons/solid/inbox.svg similarity index 100% rename from priv/icons/solid/inbox.svg rename to assets/icons/solid/inbox.svg diff --git a/priv/icons/solid/information-circle.svg b/assets/icons/solid/information-circle.svg similarity index 100% rename from priv/icons/solid/information-circle.svg rename to assets/icons/solid/information-circle.svg diff --git a/priv/icons/solid/key.svg b/assets/icons/solid/key.svg similarity index 100% rename from priv/icons/solid/key.svg rename to assets/icons/solid/key.svg diff --git a/priv/icons/solid/language.svg b/assets/icons/solid/language.svg similarity index 100% rename from priv/icons/solid/language.svg rename to assets/icons/solid/language.svg diff --git a/priv/icons/solid/lifebuoy.svg b/assets/icons/solid/lifebuoy.svg similarity index 100% rename from priv/icons/solid/lifebuoy.svg rename to assets/icons/solid/lifebuoy.svg diff --git a/priv/icons/solid/light-bulb.svg b/assets/icons/solid/light-bulb.svg similarity index 100% rename from priv/icons/solid/light-bulb.svg rename to assets/icons/solid/light-bulb.svg diff --git a/priv/icons/solid/link.svg b/assets/icons/solid/link.svg similarity index 100% rename from priv/icons/solid/link.svg rename to assets/icons/solid/link.svg diff --git a/priv/icons/solid/list-bullet.svg b/assets/icons/solid/list-bullet.svg similarity index 100% rename from priv/icons/solid/list-bullet.svg rename to assets/icons/solid/list-bullet.svg diff --git a/priv/icons/solid/lock-closed.svg b/assets/icons/solid/lock-closed.svg similarity index 100% rename from priv/icons/solid/lock-closed.svg rename to assets/icons/solid/lock-closed.svg diff --git a/priv/icons/solid/lock-open.svg b/assets/icons/solid/lock-open.svg similarity index 100% rename from priv/icons/solid/lock-open.svg rename to assets/icons/solid/lock-open.svg diff --git a/priv/icons/solid/magnifying-glass-circle.svg b/assets/icons/solid/magnifying-glass-circle.svg similarity index 100% rename from priv/icons/solid/magnifying-glass-circle.svg rename to assets/icons/solid/magnifying-glass-circle.svg diff --git a/priv/icons/solid/magnifying-glass-minus.svg b/assets/icons/solid/magnifying-glass-minus.svg similarity index 100% rename from priv/icons/solid/magnifying-glass-minus.svg rename to assets/icons/solid/magnifying-glass-minus.svg diff --git a/priv/icons/solid/magnifying-glass-plus.svg b/assets/icons/solid/magnifying-glass-plus.svg similarity index 100% rename from priv/icons/solid/magnifying-glass-plus.svg rename to assets/icons/solid/magnifying-glass-plus.svg diff --git a/priv/icons/solid/magnifying-glass.svg b/assets/icons/solid/magnifying-glass.svg similarity index 100% rename from priv/icons/solid/magnifying-glass.svg rename to assets/icons/solid/magnifying-glass.svg diff --git a/priv/icons/solid/map-pin.svg b/assets/icons/solid/map-pin.svg similarity index 100% rename from priv/icons/solid/map-pin.svg rename to assets/icons/solid/map-pin.svg diff --git a/priv/icons/solid/map.svg b/assets/icons/solid/map.svg similarity index 100% rename from priv/icons/solid/map.svg rename to assets/icons/solid/map.svg diff --git a/priv/icons/solid/megaphone.svg b/assets/icons/solid/megaphone.svg similarity index 100% rename from priv/icons/solid/megaphone.svg rename to assets/icons/solid/megaphone.svg diff --git a/priv/icons/solid/microphone.svg b/assets/icons/solid/microphone.svg similarity index 100% rename from priv/icons/solid/microphone.svg rename to assets/icons/solid/microphone.svg diff --git a/priv/icons/solid/minus-circle.svg b/assets/icons/solid/minus-circle.svg similarity index 100% rename from priv/icons/solid/minus-circle.svg rename to assets/icons/solid/minus-circle.svg diff --git a/priv/icons/solid/minus-small.svg b/assets/icons/solid/minus-small.svg similarity index 100% rename from priv/icons/solid/minus-small.svg rename to assets/icons/solid/minus-small.svg diff --git a/priv/icons/solid/minus.svg b/assets/icons/solid/minus.svg similarity index 100% rename from priv/icons/solid/minus.svg rename to assets/icons/solid/minus.svg diff --git a/priv/icons/solid/moon.svg b/assets/icons/solid/moon.svg similarity index 100% rename from priv/icons/solid/moon.svg rename to assets/icons/solid/moon.svg diff --git a/priv/icons/solid/musical-note.svg b/assets/icons/solid/musical-note.svg similarity index 100% rename from priv/icons/solid/musical-note.svg rename to assets/icons/solid/musical-note.svg diff --git a/priv/icons/solid/newspaper.svg b/assets/icons/solid/newspaper.svg similarity index 100% rename from priv/icons/solid/newspaper.svg rename to assets/icons/solid/newspaper.svg diff --git a/priv/icons/solid/no-symbol.svg b/assets/icons/solid/no-symbol.svg similarity index 100% rename from priv/icons/solid/no-symbol.svg rename to assets/icons/solid/no-symbol.svg diff --git a/priv/icons/solid/paint-brush.svg b/assets/icons/solid/paint-brush.svg similarity index 100% rename from priv/icons/solid/paint-brush.svg rename to assets/icons/solid/paint-brush.svg diff --git a/priv/icons/solid/paper-airplane.svg b/assets/icons/solid/paper-airplane.svg similarity index 100% rename from priv/icons/solid/paper-airplane.svg rename to assets/icons/solid/paper-airplane.svg diff --git a/priv/icons/solid/paper-clip.svg b/assets/icons/solid/paper-clip.svg similarity index 100% rename from priv/icons/solid/paper-clip.svg rename to assets/icons/solid/paper-clip.svg diff --git a/priv/icons/solid/pause.svg b/assets/icons/solid/pause.svg similarity index 100% rename from priv/icons/solid/pause.svg rename to assets/icons/solid/pause.svg diff --git a/priv/icons/solid/pencil-square.svg b/assets/icons/solid/pencil-square.svg similarity index 100% rename from priv/icons/solid/pencil-square.svg rename to assets/icons/solid/pencil-square.svg diff --git a/priv/icons/solid/pencil.svg b/assets/icons/solid/pencil.svg similarity index 100% rename from priv/icons/solid/pencil.svg rename to assets/icons/solid/pencil.svg diff --git a/priv/icons/solid/phone-arrow-down-left.svg b/assets/icons/solid/phone-arrow-down-left.svg similarity index 100% rename from priv/icons/solid/phone-arrow-down-left.svg rename to assets/icons/solid/phone-arrow-down-left.svg diff --git a/priv/icons/solid/phone-arrow-up-right.svg b/assets/icons/solid/phone-arrow-up-right.svg similarity index 100% rename from priv/icons/solid/phone-arrow-up-right.svg rename to assets/icons/solid/phone-arrow-up-right.svg diff --git a/priv/icons/solid/phone-x-mark.svg b/assets/icons/solid/phone-x-mark.svg similarity index 100% rename from priv/icons/solid/phone-x-mark.svg rename to assets/icons/solid/phone-x-mark.svg diff --git a/priv/icons/solid/phone.svg b/assets/icons/solid/phone.svg similarity index 100% rename from priv/icons/solid/phone.svg rename to assets/icons/solid/phone.svg diff --git a/priv/icons/solid/photo.svg b/assets/icons/solid/photo.svg similarity index 100% rename from priv/icons/solid/photo.svg rename to assets/icons/solid/photo.svg diff --git a/priv/icons/solid/play-pause.svg b/assets/icons/solid/play-pause.svg similarity index 100% rename from priv/icons/solid/play-pause.svg rename to assets/icons/solid/play-pause.svg diff --git a/priv/icons/solid/play.svg b/assets/icons/solid/play.svg similarity index 100% rename from priv/icons/solid/play.svg rename to assets/icons/solid/play.svg diff --git a/priv/icons/solid/plus-circle.svg b/assets/icons/solid/plus-circle.svg similarity index 100% rename from priv/icons/solid/plus-circle.svg rename to assets/icons/solid/plus-circle.svg diff --git a/priv/icons/solid/plus-small.svg b/assets/icons/solid/plus-small.svg similarity index 100% rename from priv/icons/solid/plus-small.svg rename to assets/icons/solid/plus-small.svg diff --git a/priv/icons/solid/plus.svg b/assets/icons/solid/plus.svg similarity index 100% rename from priv/icons/solid/plus.svg rename to assets/icons/solid/plus.svg diff --git a/priv/icons/solid/presentation-chart-bar.svg b/assets/icons/solid/presentation-chart-bar.svg similarity index 100% rename from priv/icons/solid/presentation-chart-bar.svg rename to assets/icons/solid/presentation-chart-bar.svg diff --git a/priv/icons/solid/presentation-chart-line.svg b/assets/icons/solid/presentation-chart-line.svg similarity index 100% rename from priv/icons/solid/presentation-chart-line.svg rename to assets/icons/solid/presentation-chart-line.svg diff --git a/priv/icons/solid/printer.svg b/assets/icons/solid/printer.svg similarity index 100% rename from priv/icons/solid/printer.svg rename to assets/icons/solid/printer.svg diff --git a/priv/icons/solid/puzzle-piece.svg b/assets/icons/solid/puzzle-piece.svg similarity index 100% rename from priv/icons/solid/puzzle-piece.svg rename to assets/icons/solid/puzzle-piece.svg diff --git a/priv/icons/solid/qr-code.svg b/assets/icons/solid/qr-code.svg similarity index 100% rename from priv/icons/solid/qr-code.svg rename to assets/icons/solid/qr-code.svg diff --git a/priv/icons/solid/question-mark-circle.svg b/assets/icons/solid/question-mark-circle.svg similarity index 100% rename from priv/icons/solid/question-mark-circle.svg rename to assets/icons/solid/question-mark-circle.svg diff --git a/priv/icons/solid/queue-list.svg b/assets/icons/solid/queue-list.svg similarity index 100% rename from priv/icons/solid/queue-list.svg rename to assets/icons/solid/queue-list.svg diff --git a/priv/icons/solid/radio.svg b/assets/icons/solid/radio.svg similarity index 100% rename from priv/icons/solid/radio.svg rename to assets/icons/solid/radio.svg diff --git a/priv/icons/solid/receipt-percent.svg b/assets/icons/solid/receipt-percent.svg similarity index 100% rename from priv/icons/solid/receipt-percent.svg rename to assets/icons/solid/receipt-percent.svg diff --git a/priv/icons/solid/receipt-refund.svg b/assets/icons/solid/receipt-refund.svg similarity index 100% rename from priv/icons/solid/receipt-refund.svg rename to assets/icons/solid/receipt-refund.svg diff --git a/priv/icons/solid/rectangle-group.svg b/assets/icons/solid/rectangle-group.svg similarity index 100% rename from priv/icons/solid/rectangle-group.svg rename to assets/icons/solid/rectangle-group.svg diff --git a/priv/icons/solid/rectangle-stack.svg b/assets/icons/solid/rectangle-stack.svg similarity index 100% rename from priv/icons/solid/rectangle-stack.svg rename to assets/icons/solid/rectangle-stack.svg diff --git a/priv/icons/solid/rss.svg b/assets/icons/solid/rss.svg similarity index 100% rename from priv/icons/solid/rss.svg rename to assets/icons/solid/rss.svg diff --git a/priv/icons/solid/scale.svg b/assets/icons/solid/scale.svg similarity index 100% rename from priv/icons/solid/scale.svg rename to assets/icons/solid/scale.svg diff --git a/priv/icons/solid/scissors.svg b/assets/icons/solid/scissors.svg similarity index 100% rename from priv/icons/solid/scissors.svg rename to assets/icons/solid/scissors.svg diff --git a/priv/icons/solid/server-stack.svg b/assets/icons/solid/server-stack.svg similarity index 100% rename from priv/icons/solid/server-stack.svg rename to assets/icons/solid/server-stack.svg diff --git a/priv/icons/solid/server.svg b/assets/icons/solid/server.svg similarity index 100% rename from priv/icons/solid/server.svg rename to assets/icons/solid/server.svg diff --git a/priv/icons/solid/share.svg b/assets/icons/solid/share.svg similarity index 100% rename from priv/icons/solid/share.svg rename to assets/icons/solid/share.svg diff --git a/priv/icons/solid/shield-check.svg b/assets/icons/solid/shield-check.svg similarity index 100% rename from priv/icons/solid/shield-check.svg rename to assets/icons/solid/shield-check.svg diff --git a/priv/icons/solid/shield-exclamation.svg b/assets/icons/solid/shield-exclamation.svg similarity index 100% rename from priv/icons/solid/shield-exclamation.svg rename to assets/icons/solid/shield-exclamation.svg diff --git a/priv/icons/solid/shopping-bag.svg b/assets/icons/solid/shopping-bag.svg similarity index 100% rename from priv/icons/solid/shopping-bag.svg rename to assets/icons/solid/shopping-bag.svg diff --git a/priv/icons/solid/shopping-cart.svg b/assets/icons/solid/shopping-cart.svg similarity index 100% rename from priv/icons/solid/shopping-cart.svg rename to assets/icons/solid/shopping-cart.svg diff --git a/priv/icons/solid/signal-slash.svg b/assets/icons/solid/signal-slash.svg similarity index 100% rename from priv/icons/solid/signal-slash.svg rename to assets/icons/solid/signal-slash.svg diff --git a/priv/icons/solid/signal.svg b/assets/icons/solid/signal.svg similarity index 100% rename from priv/icons/solid/signal.svg rename to assets/icons/solid/signal.svg diff --git a/priv/icons/solid/sparkles.svg b/assets/icons/solid/sparkles.svg similarity index 100% rename from priv/icons/solid/sparkles.svg rename to assets/icons/solid/sparkles.svg diff --git a/priv/icons/solid/speaker-wave.svg b/assets/icons/solid/speaker-wave.svg similarity index 100% rename from priv/icons/solid/speaker-wave.svg rename to assets/icons/solid/speaker-wave.svg diff --git a/priv/icons/solid/speaker-x-mark.svg b/assets/icons/solid/speaker-x-mark.svg similarity index 100% rename from priv/icons/solid/speaker-x-mark.svg rename to assets/icons/solid/speaker-x-mark.svg diff --git a/priv/icons/solid/square-2-stack.svg b/assets/icons/solid/square-2-stack.svg similarity index 100% rename from priv/icons/solid/square-2-stack.svg rename to assets/icons/solid/square-2-stack.svg diff --git a/priv/icons/solid/squares-2x2.svg b/assets/icons/solid/squares-2x2.svg similarity index 100% rename from priv/icons/solid/squares-2x2.svg rename to assets/icons/solid/squares-2x2.svg diff --git a/priv/icons/solid/squares-plus.svg b/assets/icons/solid/squares-plus.svg similarity index 100% rename from priv/icons/solid/squares-plus.svg rename to assets/icons/solid/squares-plus.svg diff --git a/priv/icons/solid/star.svg b/assets/icons/solid/star.svg similarity index 100% rename from priv/icons/solid/star.svg rename to assets/icons/solid/star.svg diff --git a/priv/icons/solid/stop.svg b/assets/icons/solid/stop.svg similarity index 100% rename from priv/icons/solid/stop.svg rename to assets/icons/solid/stop.svg diff --git a/priv/icons/solid/sun.svg b/assets/icons/solid/sun.svg similarity index 100% rename from priv/icons/solid/sun.svg rename to assets/icons/solid/sun.svg diff --git a/priv/icons/solid/swatch.svg b/assets/icons/solid/swatch.svg similarity index 100% rename from priv/icons/solid/swatch.svg rename to assets/icons/solid/swatch.svg diff --git a/priv/icons/solid/table-cells.svg b/assets/icons/solid/table-cells.svg similarity index 100% rename from priv/icons/solid/table-cells.svg rename to assets/icons/solid/table-cells.svg diff --git a/priv/icons/solid/tag.svg b/assets/icons/solid/tag.svg similarity index 100% rename from priv/icons/solid/tag.svg rename to assets/icons/solid/tag.svg diff --git a/priv/icons/solid/ticket.svg b/assets/icons/solid/ticket.svg similarity index 100% rename from priv/icons/solid/ticket.svg rename to assets/icons/solid/ticket.svg diff --git a/priv/icons/solid/trash.svg b/assets/icons/solid/trash.svg similarity index 100% rename from priv/icons/solid/trash.svg rename to assets/icons/solid/trash.svg diff --git a/priv/icons/solid/truck.svg b/assets/icons/solid/truck.svg similarity index 100% rename from priv/icons/solid/truck.svg rename to assets/icons/solid/truck.svg diff --git a/priv/icons/solid/user-circle.svg b/assets/icons/solid/user-circle.svg similarity index 100% rename from priv/icons/solid/user-circle.svg rename to assets/icons/solid/user-circle.svg diff --git a/priv/icons/solid/user-group.svg b/assets/icons/solid/user-group.svg similarity index 100% rename from priv/icons/solid/user-group.svg rename to assets/icons/solid/user-group.svg diff --git a/priv/icons/solid/user-minus.svg b/assets/icons/solid/user-minus.svg similarity index 100% rename from priv/icons/solid/user-minus.svg rename to assets/icons/solid/user-minus.svg diff --git a/priv/icons/solid/user-plus.svg b/assets/icons/solid/user-plus.svg similarity index 100% rename from priv/icons/solid/user-plus.svg rename to assets/icons/solid/user-plus.svg diff --git a/priv/icons/solid/user.svg b/assets/icons/solid/user.svg similarity index 100% rename from priv/icons/solid/user.svg rename to assets/icons/solid/user.svg diff --git a/priv/icons/solid/users.svg b/assets/icons/solid/users.svg similarity index 100% rename from priv/icons/solid/users.svg rename to assets/icons/solid/users.svg diff --git a/priv/icons/solid/variable.svg b/assets/icons/solid/variable.svg similarity index 100% rename from priv/icons/solid/variable.svg rename to assets/icons/solid/variable.svg diff --git a/priv/icons/solid/video-camera-slash.svg b/assets/icons/solid/video-camera-slash.svg similarity index 100% rename from priv/icons/solid/video-camera-slash.svg rename to assets/icons/solid/video-camera-slash.svg diff --git a/priv/icons/solid/video-camera.svg b/assets/icons/solid/video-camera.svg similarity index 100% rename from priv/icons/solid/video-camera.svg rename to assets/icons/solid/video-camera.svg diff --git a/priv/icons/solid/view-columns.svg b/assets/icons/solid/view-columns.svg similarity index 100% rename from priv/icons/solid/view-columns.svg rename to assets/icons/solid/view-columns.svg diff --git a/priv/icons/solid/wallet.svg b/assets/icons/solid/wallet.svg similarity index 100% rename from priv/icons/solid/wallet.svg rename to assets/icons/solid/wallet.svg diff --git a/priv/icons/solid/wifi.svg b/assets/icons/solid/wifi.svg similarity index 100% rename from priv/icons/solid/wifi.svg rename to assets/icons/solid/wifi.svg diff --git a/priv/icons/solid/wrench-screwdriver.svg b/assets/icons/solid/wrench-screwdriver.svg similarity index 100% rename from priv/icons/solid/wrench-screwdriver.svg rename to assets/icons/solid/wrench-screwdriver.svg diff --git a/priv/icons/solid/wrench.svg b/assets/icons/solid/wrench.svg similarity index 100% rename from priv/icons/solid/wrench.svg rename to assets/icons/solid/wrench.svg diff --git a/priv/icons/solid/x-circle.svg b/assets/icons/solid/x-circle.svg similarity index 100% rename from priv/icons/solid/x-circle.svg rename to assets/icons/solid/x-circle.svg diff --git a/priv/icons/solid/x-mark.svg b/assets/icons/solid/x-mark.svg similarity index 100% rename from priv/icons/solid/x-mark.svg rename to assets/icons/solid/x-mark.svg diff --git a/config/config.exs b/config/config.exs index 9f64544..d194573 100644 --- a/config/config.exs +++ b/config/config.exs @@ -1,7 +1,4 @@ import Config -config :heroicons, - version: "2.0.10", - another: [ - args: ["--version"] - ] +# silence phoenix warnings +config :phoenix, :json_library, Heroicons diff --git a/lib/heroicons.ex b/lib/heroicons.ex index 5d63584..7739896 100644 --- a/lib/heroicons.ex +++ b/lib/heroicons.ex @@ -1,160 +1,8507 @@ defmodule Heroicons do - @latest_version "2.0.10" - @moduledoc """ - This library provides Phoenix Components for every [Heroicon](https://github.com/tailwindlabs/heroicons). - See `Heroicons.Outline`, `Heroicons.Solid` and `Heroicons.Mini` for the three styles of icon. - - ## Examples - - - - - - - Can also be used as a function - - <%= Heroicons.Outline.adjustments_vertical() %> - - <%= Heroicons.Solid.arrow_right_circle(class: "w-6 h-6") /> - - <%= Heroicons.Mini.bell(class: "w-4 h-4") /> - - - This library comes pre-packaged with the icons from Heroicons version `#{@latest_version}`, - but can be locally configured and updated. See `Mix.Tasks.Heroicons.Update` for details + Provides precompiled icon compiles from [heroicons.com v2.0.10](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 + + + + ``` + + You can also pass arbitrary HTML attributes to the components: + + ```heex + + + ``` + + ## 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 - # https://github.com/tailwindlabs/heroicons/releases - - @tmp_dir_name "heroicons-elixir" - use Application - require Logger - - @doc false - def start(_type, _args) do - children = [ - {Heroicons.Cache, []} - ] - - opts = [strategy: :one_for_one, name: Heroicons.Supervisor] - Supervisor.start_link(children, opts) + defp svg(assigns, outline, solid, mini) do + case assigns do + %{mini: false, solid: false} -> svg_outline(assign(assigns, paths: outline)) + %{solid: true, mini: false} -> svg_solid(assign(assigns, paths: solid)) + %{mini: true, solid: false} -> svg_mini(assign(assigns, paths: mini)) + %{} -> raise ArgumentError, "expected either mini or solid, but got both." + end end - @doc false - # Latest known version at the time of publishing. - def latest_version, do: @latest_version + defp svg_outline(assigns) do + ~H""" + + """ + end + + defp svg_solid(assigns) do + ~H""" + + """ + end + + defp svg_mini(assigns) do + ~H""" + + """ + end @doc """ - Returns the configured Heroicons version. + Renders the `swatch` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` """ - def configured_version do - Application.get_env(:heroicons, :version, latest_version()) + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def swatch(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - @doc false - def svgs_path, do: Path.join(:code.priv_dir(:heroicons), "icons") + @doc """ + Renders the `photo` icon. - def update do - version = configured_version() - tmp_dir = Path.join(System.tmp_dir!(), @tmp_dir_name) - svgs_dir = Path.join([tmp_dir, "heroicons-#{version}", "optimized"]) + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. - File.rm_rf!(tmp_dir) - File.mkdir_p!(tmp_dir) + You may also pass arbitrary HTML attributes to be applied to the svg tag. - url = "https://github.com/tailwindlabs/heroicons/archive/refs/tags/v#{version}.zip" - archive = fetch_body!(url) + ## Examples - case unpack_archive(".zip", archive, tmp_dir) do - :ok -> :ok - other -> raise "couldn't unpack archive: #{inspect(other)}" - end + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false - # Copy icon styles, mini, outline and solid, to priv folder - svgs_dir - |> File.ls!() - |> Enum.each(fn size -> - case size do - "20" -> - copy_svg_files(Path.join([svgs_dir, size, "solid"]), "mini") - - "24" -> - Path.join(svgs_dir, size) - |> File.ls!() - |> Enum.each(fn style -> copy_svg_files(Path.join([svgs_dir, size, style]), style) end) - - _ -> - true - end - end) + def photo(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - defp copy_svg_files(src_dir, style) do - dest_dir = Path.join(svgs_path(), style) - File.rm_rf!(dest_dir) - File.mkdir_p!(dest_dir) - File.cp_r!(src_dir, dest_dir) + @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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - defp fetch_body!(url) do - url = String.to_charlist(url) - Logger.debug("Downloading heroicons from #{url}") + @doc """ + Renders the `folder_plus` icon. - {:ok, _} = Application.ensure_all_started(:inets) - {:ok, _} = Application.ensure_all_started(:ssl) + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. - if proxy = System.get_env("HTTP_PROXY") || System.get_env("http_proxy") do - Logger.debug("Using HTTP_PROXY: #{proxy}") - %{host: host, port: port} = URI.parse(proxy) - :httpc.set_options([{:proxy, {{String.to_charlist(host), port}, []}}]) - end + You may also pass arbitrary HTML attributes to be applied to the svg tag. - if proxy = System.get_env("HTTPS_PROXY") || System.get_env("https_proxy") do - Logger.debug("Using HTTPS_PROXY: #{proxy}") - %{host: host, port: port} = URI.parse(proxy) - :httpc.set_options([{:https_proxy, {{String.to_charlist(host), port}, []}}]) - end + ## Examples - # https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/inets - cacertfile = CAStore.file_path() |> String.to_charlist() + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false - http_options = [ - ssl: [ - verify: :verify_peer, - cacertfile: cacertfile, - depth: 2, - customize_hostname_check: [ - match_fun: :public_key.pkix_verify_hostname_match_fun(:https) - ], - versions: protocol_versions() - ] - ] - - options = [body_format: :binary] - - case :httpc.request(:get, {url, []}, http_options, options) do - {:ok, {{_, 200, _}, _headers, body}} -> - body - - other -> - raise "couldn't fetch #{url}: #{inspect(other)}" - end + def folder_plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - defp protocol_versions do - if otp_version() < 25, do: [:"tlsv1.2"], else: [:"tlsv1.2", :"tlsv1.3"] + @doc """ + Renders the `arrow_down_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_tray(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - defp otp_version, do: :erlang.system_info(:otp_release) |> List.to_integer() + @doc """ + Renders the `cpu_chip` icon. - defp unpack_archive(".zip", zip, cwd) do - with {:ok, _} <- :zip.unzip(zip, cwd: to_charlist(cwd)), do: :ok + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cpu_chip(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end - defp unpack_archive(_, tar, cwd) do - :erl_tar.extract({:binary, tar}, [:compressed, cwd: to_charlist(cwd)]) + @doc """ + Renders the `chat_bubble_bottom_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_bottom_center(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `globe_europe_africa` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def globe_europe_africa(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `inbox_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def inbox_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_3_bottom_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_3_bottom_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_uturn_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_uturn_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_left_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_left_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `phone_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def phone_arrow_down_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `speaker_x_mark` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def speaker_x_mark(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `currency_rupee` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_rupee(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_minus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `calendar_days` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def calendar_days(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_left_ellipsis` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_left_ellipsis(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def share(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def minus_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def briefcase(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def check(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_up_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def map_pin(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def rss(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def calendar(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `clipboard_document` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def clipboard_document(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `hashtag` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def hashtag(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `rectangle_group` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def rectangle_group(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def paint_brush(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def moon(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_path(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_up_on_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_on_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def qr_code(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_right_on_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_right_on_rectangle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def backspace(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_3_center_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_3_center_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `user_group` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def user_group(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def radio(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_trending_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_trending_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_dollar(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_long_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_long_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `plus_small` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def plus_small(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `face_smile` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def face_smile(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `map` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def map(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `currency_euro` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_euro(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `building_office_2` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def building_office_2(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_chart_bar(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `identification` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def identification(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cloud_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def megaphone(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_bottom_center_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_bottom_center_text(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `adjustments_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def adjustments_horizontal(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def device_tablet(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `queue_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def queue_list(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `building_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def building_storefront(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `globe_americas` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def globe_americas(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def video_camera_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def play(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def link(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `finger_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def finger_print(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cog_8_tooth` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cog_8_tooth(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `home_modern` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def home_modern(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `inbox` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def inbox(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def folder_open(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `minus_small` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def minus_small(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `phone_x_mark` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def phone_x_mark(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `paper_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def paper_airplane(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `archive_box_x_mark` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def archive_box_x_mark(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bookmark_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bookmark_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `square_2_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def square_2_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bell(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_oval_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_oval_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `banknotes` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def banknotes(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def sun(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `hand_thumb_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def hand_thumb_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bolt` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bolt(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `command_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def command_line(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def funnel(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cake(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def stop(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `exclamation_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def exclamation_triangle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chart_bar(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def forward(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_up_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_up_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def calculator(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def ticket(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `circle_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def circle_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def printer(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `home` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def home(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def credit_card(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `no_symbol` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def no_symbol(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `server_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def server_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def clock(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `globe_asia_australia` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def globe_asia_australia(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cog` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cog(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `squares_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def squares_plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def gif(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def minus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def plus_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cloud_arrow_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_uturn_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_uturn_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def truck(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def camera(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_top_right_on_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_top_right_on_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `hand_raised` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def hand_raised(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_text(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_2` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_2(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def video_camera(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_double_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def envelope(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_small_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_small_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `musical_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def musical_note(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def tag(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_left_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `battery_100` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def battery_100(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_double_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_4` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_4(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chart_pie(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def trash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def magnifying_glass_minus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `ellipsis_horizontal_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def ellipsis_horizontal_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `information_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def information_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def user_minus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def phone(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bell_snooze` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bell_snooze(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_long_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_long_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrows_pointing_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrows_pointing_in(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chart_bar_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chart_bar_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def signal(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def user_plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def eye(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `exclamation_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def exclamation_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `x_mark` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def x_mark(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `pencil_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def pencil_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `wrench_screwdriver` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def wrench_screwdriver(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_down_on_square_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_on_square_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def wrench(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def wallet(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def x_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def archive_box(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bell_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_3_bottom_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_3_bottom_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cube(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def shopping_cart(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_small_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_small_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def heart(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `check_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def check_badge(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `table_cells` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def table_cells(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `variable` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def variable(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `face_frown` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def face_frown(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_down_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_double_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def magnifying_glass(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chevron_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chevron_double_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `ellipsis_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def ellipsis_horizontal(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `language` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def language(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `currency_pound` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_pound(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `adjustments_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def adjustments_vertical(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def newspaper(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `receipt_refund` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def receipt_refund(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `chat_bubble_oval_left_ellipsis` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def chat_bubble_oval_left_ellipsis(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `beaker` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def beaker(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_small_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_small_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `squares_2x2` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def squares_2x2(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_path_rounded_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_path_rounded_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def pause(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_trending_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_trending_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_3` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_3(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def shield_check(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def magnifying_glass_plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `at_symbol` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def at_symbol(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrows_up_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrows_up_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `paper_clip` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def paper_clip(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cog_6_tooth` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cog_6_tooth(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def book_open(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def microphone(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def puzzle_piece(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `currency_bangladeshi` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_bangladeshi(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bell_alert` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bell_alert(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `lock_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def lock_closed(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `presentation_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def presentation_chart_bar(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `battery_50` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def battery_50(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def gift(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrows_pointing_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrows_pointing_out(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `wifi` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def wifi(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def clipboard(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def envelope_open(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def fire(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `view_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def view_columns(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `play_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def play_pause(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `code_bracket` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def code_bracket(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `code_bracket_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def code_bracket_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `device_phone_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def device_phone_mobile(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `server` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def server(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_long_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_long_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `academic_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def academic_cap(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bolt_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bolt_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def star(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_check(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `question_mark_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def question_mark_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `presentation_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def presentation_chart_line(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def key(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def eye_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def user(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `scale` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def scale(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `clipboard_document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def clipboard_document_list(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def folder(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_down_on_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_on_square(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bookmark(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_small_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_small_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `clipboard_document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def clipboard_document_check(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_magnifying_glass(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bars_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bars_arrow_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `sparkles` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def sparkles(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `computer_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def computer_desktop(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `shield_exclamation` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def shield_exclamation(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_up_on_square_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_on_square_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def lifebuoy(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `ellipsis_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def ellipsis_vertical(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def lock_open(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_long_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_long_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `hand_thumb_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def hand_thumb_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `light_bulb` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def light_bulb(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def users(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_left_on_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_left_on_rectangle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def check_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def user_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `list_bullet` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def list_bullet(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_down_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `magnifying_glass_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def magnifying_glass_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `speaker_wave` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def speaker_wave(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def flag(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `rectangle_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def rectangle_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cube_transparent` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cube_transparent(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `film` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def film(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cursor_arrow_ripple` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cursor_arrow_ripple(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `gift_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def gift_top(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `cursor_arrow_rays` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cursor_arrow_rays(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_uturn_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_uturn_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def scissors(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_plus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_uturn_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_uturn_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def shopping_bag(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `folder_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def folder_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def cloud(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `receipt_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def receipt_percent(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_up_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_up_tray(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `inbox_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def inbox_stack(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `bookmark_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def bookmark_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `archive_box_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def archive_box_arrow_down(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `battery_0` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def battery_0(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `backward` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def backward(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def pencil(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrows_right_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrows_right_left(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + 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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def folder_minus(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_duplicate` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_duplicate(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `globe_alt` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def globe_alt(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `currency_yen` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def currency_yen(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `phone_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def phone_arrow_up_right(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `document_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def document_arrow_up(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `building_library` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def building_library(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `building_office` icon. + + By default, the outlined (24x24) component is used, but the `solid` or `mini` + attributes can be provided for alternative styles. + + You may also pass arbitrary HTML attributes to be applied to the svg tag. + + ## Examples + + ```heex + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def building_office(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `arrow_right_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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def arrow_right_circle(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) + end + + @doc """ + Renders the `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 + + + + + ``` + """ + attr :rest, :global, doc: "the arbitrary HTML attributes for the svg container" + attr :solid, :boolean, default: false + attr :mini, :boolean, default: false + + def signal_slash(assigns) do + svg( + assigns, + ~S||, + ~S||, + ~S|| + ) end end diff --git a/lib/heroicons/cache.ex b/lib/heroicons/cache.ex deleted file mode 100644 index 7e83689..0000000 --- a/lib/heroicons/cache.ex +++ /dev/null @@ -1,53 +0,0 @@ -defmodule Heroicons.Cache do - @moduledoc """ - An ETS-backed cache for icons. We cache both pre-compiled Phoenix Components and icon bodies as strings. - - Uses the icon's path on disk as a key. - """ - - use GenServer - - @name __MODULE__ - - @doc false - def start_link(_), do: GenServer.start_link(__MODULE__, [], name: @name) - - @doc "Fetch a icon's body and fingerprint from the cache or disk, given a `path`" - def fetch_icon(path) do - case :ets.lookup(@name, path) do - [{^path, icon_body, fingerprint}] -> - {icon_body, fingerprint} - - [] -> - GenServer.call(@name, {:cache_icon, path}) - end - end - - @impl true - def init(_) do - :ets.new(@name, [:set, :protected, :named_table]) - - {:ok, []} - end - - @impl true - def handle_call({:cache_icon, path}, _ref, state) do - {icon_body, fingerprint} = read_icon(path) - - :ets.insert_new(@name, {path, icon_body, fingerprint}) - - {:reply, {icon_body, fingerprint}, state} - end - - defp read_icon(path) do - icon = - Path.join(:code.priv_dir(:heroicons), path) - |> File.read!() - - <<"> = icon - - <> = :erlang.md5(icon) - - {icon_body, fingerprint} - end -end diff --git a/lib/heroicons/generator.ex b/lib/heroicons/generator.ex deleted file mode 100644 index ae1c9d6..0000000 --- a/lib/heroicons/generator.ex +++ /dev/null @@ -1,142 +0,0 @@ -defmodule Heroicons.Generator do - @moduledoc false - defmacro __using__(icon_dir: icon_dir) do - icon_paths = - Path.absname(icon_dir, :code.priv_dir(:heroicons)) - |> Path.join("*.svg") - |> Path.wildcard() - - require Phoenix.Component - - recompile_quoted = - quote do - @paths_hash :erlang.md5(unquote(icon_paths)) - def __mix_recompile__?() do - icon_paths = - Path.absname(unquote(icon_dir), :code.priv_dir(:heroicons)) - |> Path.join("*.svg") - |> Path.wildcard() - - :erlang.md5(icon_paths) != @paths_hash - end - end - - icons_quoted = - for path <- icon_paths do - generate(path) - end - - [recompile_quoted | icons_quoted] - end - - @doc false - def generate(absolute_path) do - path = Path.relative_to(absolute_path, :code.priv_dir(:heroicons)) - name = Heroicons.Generator.name(path) - - quote do - @external_resource unquote(absolute_path) - - @doc Heroicons.Generator.doc(unquote(name), unquote(path)) - def unquote(name)(assigns_or_opts \\ []) - - def unquote(name)(assigns) when is_map(assigns) do - Heroicons.Generator.icon_component(unquote(path), assigns) - end - - def unquote(name)(opts) when is_list(opts) do - Heroicons.Generator.icon_function(unquote(path), opts) - end - end - end - - @doc false - def name(path) do - Path.basename(path, ".svg") - |> String.replace("-", "_") - |> String.to_atom() - end - - @doc false - def doc(name, path) do - """ - ![](assets/#{path}) {: width=24px} - - ## Examples - - Use as a `Phoenix.Component` - - <.#{name} /> - <.#{name} class="w-6 h-6 text-gray-500" /> - - or as a function - - <%= #{name}() %> - <%= #{name}(class: "w-6 h-6 text-gray-500") %> - """ - end - - if function_exported?(Phoenix.Component, :assigns_to_attributes, 2) do - @assign_mod Phoenix.Component - @assigns_to_attrs_mod Phoenix.Component - else - @assign_mod Phoenix.LiveView - @assigns_to_attrs_mod Phoenix.LiveView.Helpers - end - - @doc false - def icon_component(path, assigns) when is_map(assigns) do - attrs = @assigns_to_attrs_mod.assigns_to_attributes(assigns) - assigns = @assign_mod.assign(assigns, :attrs, attrs) - - dynamic = fn track_changes? -> - changed = - case assigns do - %{__changed__: changed} when track_changes? -> changed - _ -> nil - end - - attrs = - case Phoenix.LiveView.Engine.changed_assign?(changed, :attrs) do - true -> elem(Phoenix.HTML.attributes_escape(assigns.attrs), 1) - false -> nil - end - - [attrs] - end - - {icon_body, fingerprint} = Heroicons.Cache.fetch_icon(path) - - %Phoenix.LiveView.Rendered{ - static: [ - " Atom.to_string() |> String.replace("_", "-") |> Phoenix.HTML.Safe.to_iodata() - - safe_v = v |> Phoenix.HTML.Safe.to_iodata() - - {:safe, [?\s, safe_k, ?=, ?", safe_v, ?"]} - end - - {icon_body, _fingerprint} = Heroicons.Cache.fetch_icon(path) - - {:safe, - [ - " help() - _ -> Mix.raise("Invalid arguments, expected: mix heroicons") - end - end - - defp help() do - Mix.Task.run("app.start") - Mix.shell().info("Heroicons v#{Application.spec(:heroicons, :vsn)}") - Mix.shell().info("Include Heroicons as SVG-strings in your Elixir/Phoenix project!") - Mix.shell().info("\nAvailable tasks:\n") - Mix.Tasks.Help.run(["--search", "heroicons."]) - end -end diff --git a/lib/mix/tasks/heroicons/build.ex b/lib/mix/tasks/heroicons/build.ex new file mode 100644 index 0000000..6632d01 --- /dev/null +++ b/lib/mix/tasks/heroicons/build.ex @@ -0,0 +1,35 @@ +defmodule Mix.Tasks.Heroicons.Build do + # Builds a new lib/heroicons.ex with bundled icon set. + @moduledoc false + @shortdoc false + use Mix.Task + + @target_file "lib/heroicons.ex" + + def run(_args) do + vsn = Mix.Tasks.Heroicons.Update.vsn() + svgs_path = Mix.Tasks.Heroicons.Update.svgs_path() + outlined = Path.wildcard(Path.join(svgs_path, "outline/**/*.svg")) + solid = Path.wildcard(Path.join(svgs_path, "solid/**/*.svg")) + mini = Path.wildcard(Path.join(svgs_path, "mini/**/*.svg")) + ordered_icons = outlined ++ solid ++ mini + + icons = + Enum.group_by(ordered_icons, &function_name(&1), fn file -> + for path <- file |> File.read!() |> String.split("\n"), + path = String.trim(path), + String.starts_with?(path, " Path.basename() |> Path.rootname() |> String.split("-") |> Enum.join("_") + end +end diff --git a/lib/mix/tasks/heroicons/update.ex b/lib/mix/tasks/heroicons/update.ex index 952fe4c..60704ab 100644 --- a/lib/mix/tasks/heroicons/update.ex +++ b/lib/mix/tasks/heroicons/update.ex @@ -1,33 +1,119 @@ defmodule Mix.Tasks.Heroicons.Update do - @moduledoc """ - Update heroicons. + # Updates the icon set via download from github. + @moduledoc false + @shortdoc false - By default, it downloads the latest version but you can configure it - in your config files. + @vsn "2.0.10" + @tmp_dir_name "heroicons-elixir" - Example: - - config :heroicons, :version, "#{Heroicons.latest_version()}" - - Then update with - - $ mix heroicons.update - """ - - @shortdoc "Update heroicons assets" + # Updates the icons in the assets/icons directory use Mix.Task + require Logger + + def vsn, do: @vsn + + def svgs_path, do: Path.join("assets", "icons") @impl true - def run(args) do - {_opts, args} = OptionParser.parse!(args, strict: []) + def run(_args) do + version = @vsn + tmp_dir = Path.join(System.tmp_dir!(), @tmp_dir_name) + svgs_dir = Path.join([tmp_dir, "heroicons-#{version}", "optimized"]) - case args do - [] -> - Heroicons.update() + File.rm_rf!(tmp_dir) + File.mkdir_p!(tmp_dir) - _ -> - Mix.raise("Invalid arguments, expected: mix heroicons.update") + url = "https://github.com/tailwindlabs/heroicons/archive/refs/tags/v#{version}.zip" + archive = fetch_body!(url) + + case unpack_archive(".zip", archive, tmp_dir) do + :ok -> :ok + other -> raise "couldn't unpack archive: #{inspect(other)}" + end + + # Copy icon styles, mini, outline and solid, to priv folder + svgs_dir + |> File.ls!() + |> Enum.each(fn size -> + case size do + "20" -> + copy_svg_files(Path.join([svgs_dir, size, "solid"]), "mini") + + "24" -> + Path.join(svgs_dir, size) + |> File.ls!() + |> Enum.each(fn style -> copy_svg_files(Path.join([svgs_dir, size, style]), style) end) + + _ -> + true + end + end) + end + + defp copy_svg_files(src_dir, style) do + dest_dir = Path.join(svgs_path(), style) + File.rm_rf!(dest_dir) + File.mkdir_p!(dest_dir) + File.cp_r!(src_dir, dest_dir) + end + + defp fetch_body!(url) do + url = String.to_charlist(url) + Logger.debug("Downloading heroicons from #{url}") + + {:ok, _} = Application.ensure_all_started(:inets) + {:ok, _} = Application.ensure_all_started(:ssl) + + if proxy = System.get_env("HTTP_PROXY") || System.get_env("http_proxy") do + Logger.debug("Using HTTP_PROXY: #{proxy}") + %{host: host, port: port} = URI.parse(proxy) + :httpc.set_options([{:proxy, {{String.to_charlist(host), port}, []}}]) + end + + if proxy = System.get_env("HTTPS_PROXY") || System.get_env("https_proxy") do + Logger.debug("Using HTTPS_PROXY: #{proxy}") + %{host: host, port: port} = URI.parse(proxy) + :httpc.set_options([{:https_proxy, {{String.to_charlist(host), port}, []}}]) + end + + # https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/inets + cacertfile = CAStore.file_path() |> String.to_charlist() + + http_options = [ + ssl: [ + verify: :verify_peer, + cacertfile: cacertfile, + depth: 2, + customize_hostname_check: [ + match_fun: :public_key.pkix_verify_hostname_match_fun(:https) + ], + versions: protocol_versions() + ] + ] + + options = [body_format: :binary] + + case :httpc.request(:get, {url, []}, http_options, options) do + {:ok, {{_, 200, _}, _headers, body}} -> + body + + other -> + raise "couldn't fetch #{url}: #{inspect(other)}" end end + + defp protocol_versions do + if otp_version() < 25, do: [:"tlsv1.2"], else: [:"tlsv1.2", :"tlsv1.3"] + end + + defp otp_version, do: :erlang.system_info(:otp_release) |> List.to_integer() + + defp unpack_archive(".zip", zip, cwd) do + with {:ok, _} <- :zip.unzip(zip, cwd: to_charlist(cwd)), do: :ok + end + + defp unpack_archive(_, tar, cwd) do + :erl_tar.extract({:binary, tar}, [:compressed, cwd: to_charlist(cwd)]) + end end diff --git a/mix.exs b/mix.exs index 9cdf858..4f23807 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule HeroiconsElixir.MixProject do def project do [ app: :heroicons, - version: "0.4.1", + version: "0.5.0", elixir: "~> 1.11", start_permanent: Mix.env() == :prod, deps: deps(), @@ -20,16 +20,14 @@ defmodule HeroiconsElixir.MixProject do # Run "mix help compile.app" to learn about applications. def application do [ - extra_applications: [:logger], - mod: {Heroicons, []} + extra_applications: [:logger] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ - {:phoenix_html, "~> 2.14 or ~> 3.0"}, - {:phoenix_live_view, ">= 0.16.0", optional: true}, + {:phoenix_live_view, github: "phoenixframework/phoenix_live_view"}, {:ex_doc, "~> 0.23", only: :dev, runtime: false}, {:castore, ">= 0.0.0"} ] @@ -43,8 +41,6 @@ defmodule HeroiconsElixir.MixProject do end defp docs do - [ - assets: "priv/" - ] + [] end end diff --git a/mix.lock b/mix.lock index 0680130..4f6a1f9 100644 --- a/mix.lock +++ b/mix.lock @@ -8,16 +8,17 @@ "makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"}, "meeseeks": {:hex, :meeseeks, "0.15.1", "148d5d9ea879cdb415b8bc4162ac5528f9a2fe42fbfe1802c681a2842cb1c0a4", [:mix], [{:meeseeks_html5ever, "~> 0.12.1", [hex: :meeseeks_html5ever, repo: "hexpm", optional: false]}], "hexpm", "5589957b7cca75e6683cecc308253d7854f43b07806939d7031b81ca6e8abd98"}, "meeseeks_html5ever": {:hex, :meeseeks_html5ever, "0.12.1", "718fab10d05b83204524a518b2b88caa37ba6a6e02f82e80d6a7bc47552fb54a", [:mix], [{:rustler, "~> 0.21.0", [hex: :rustler, repo: "hexpm", optional: false]}], "hexpm", "11489094637f49a26bad4610a9138352c8d229339d888169cb35b08cdfd8861a"}, - "mime": {:hex, :mime, "1.6.0", "dabde576a497cef4bbdd60aceee8160e02a6c89250d6c0b29e56c0dfb00db3d2", [:mix], [], "hexpm", "31a1a8613f8321143dde1dafc36006a17d28d02bdfecb9e95a880fa7aabd19a7"}, + "mime": {:hex, :mime, "2.0.3", "3676436d3d1f7b81b5a2d2bd8405f412c677558c81b1c92be58c00562bb59095", [:mix], [], "hexpm", "27a30bf0db44d25eecba73755acf4068cbfe26a4372f9eb3e4ea3a45956bff6b"}, "nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"}, - "phoenix": {:hex, :phoenix, "1.5.9", "a6368d36cfd59d917b37c44386e01315bc89f7609a10a45a22f47c007edf2597", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_html, "~> 2.13 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.1.2 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7e4bce20a67c012f1fbb0af90e5da49fa7bf0d34e3a067795703b74aef75427d"}, - "phoenix_html": {:hex, :phoenix_html, "3.1.0", "0b499df05aad27160d697a9362f0e89fa0e24d3c7a9065c2bd9d38b4d1416c09", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "0c0a98a2cefa63433657983a2a594c7dee5927e4391e0f1bfd3a151d1def33fc"}, - "phoenix_live_view": {:hex, :phoenix_live_view, "0.17.5", "63f52a6f9f6983f04e424586ff897c016ecc5e4f8d1e2c22c2887af1c57215d8", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.5.9 or ~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c5586e6a3d4df71b8214c769d4f5eb8ece2b4001711a7ca0f97323c36958b0e3"}, - "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"}, - "plug": {:hex, :plug, "1.11.1", "f2992bac66fdae679453c9e86134a4201f6f43a687d8ff1cd1b2862d53c80259", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "23524e4fefbb587c11f0833b3910bfb414bf2e2534d61928e920f54e3a1b881f"}, - "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"}, + "phoenix": {:hex, :phoenix, "1.6.12", "f8f8ac077600f84419806dd53114b2e77aedde7a502e74181a7d886355aa0643", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2d6cf5583c9c20f7103c40e6014ef802d96553b8e5d6585ad6e627bd5ddb0d12"}, + "phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"}, + "phoenix_live_view": {:git, "https://github.com/phoenixframework/phoenix_live_view.git", "4d57596e0de21e3e3e0a46619f77873ad2bd49cc", []}, + "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"}, + "phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"}, + "plug": {:hex, :plug, "1.13.6", "187beb6b67c6cec50503e940f0434ea4692b19384d47e5fdfd701e93cadb4cc2", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02b9c6b9955bce92c829f31d6284bf53c591ca63c4fb9ff81dfd0418667a34ff"}, + "plug_crypto": {:hex, :plug_crypto, "1.2.3", "8f77d13aeb32bfd9e654cb68f0af517b371fb34c56c9f2b58fe3df1235c1251a", [:mix], [], "hexpm", "b5672099c6ad5c202c45f5a403f21a3411247f164e4a8fab056e5cd8a290f4a2"}, "rustler": {:hex, :rustler, "0.21.1", "5299980be32da997c54382e945bacaa015ed97a60745e1e639beaf6a7b278c65", [:mix], [{:toml, "~> 0.5.2", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "6ee1651e10645b2b2f3bb70502bf180341aa058709177e9bc28c105934094bc6"}, "saxy": {:hex, :saxy, "1.4.0", "c7203ad20001f72eaaad07d08f82be063fa94a40924e6bb39d93d55f979abcba", [:mix], [], "hexpm", "3fe790354d3f2234ad0b5be2d99822a23fa2d4e8ccd6657c672901dac172e9a9"}, - "telemetry": {:hex, :telemetry, "0.4.3", "a06428a514bdbc63293cd9a6263aad00ddeb66f608163bdec7c8995784080818", [:rebar3], [], "hexpm", "eb72b8365ffda5bed68a620d1da88525e326cb82a75ee61354fc24b844768041"}, + "telemetry": {:hex, :telemetry, "1.1.0", "a589817034a27eab11144ad24d5c0f9fab1f58173274b1e9bae7074af9cbee51", [:rebar3], [], "hexpm", "b727b2a1f75614774cff2d7565b64d0dfa5bd52ba517f16543e6fc7efcc0df48"}, "toml": {:hex, :toml, "0.5.2", "e471388a8726d1ce51a6b32f864b8228a1eb8edc907a0edf2bb50eab9321b526", [:mix], [], "hexpm", "f1e3dabef71fb510d015fad18c0e05e7c57281001141504c6b69d94e99750a07"}, } diff --git a/test/heroicons_test.exs b/test/heroicons_test.exs index b9e550c..30d0747 100644 --- a/test/heroicons_test.exs +++ b/test/heroicons_test.exs @@ -3,67 +3,50 @@ defmodule HeroiconsTest do import Phoenix.LiveViewTest - test "generated function" do - result = Phoenix.HTML.safe_to_string(Heroicons.Outline.academic_cap()) - assert result =~ ~s( Phoenix.HTML.safe_to_string() =~ - ~s(class="w-6 h-6 text-gray-500") - - assert Heroicons.Outline.academic_cap(class: "<> \" ") - |> Phoenix.HTML.safe_to_string() =~ - ~s(class="<> " ") - - assert Heroicons.Outline.academic_cap(foo: "bar") - |> Phoenix.HTML.safe_to_string() =~ - ~s(foo="bar") - - assert Heroicons.Outline.academic_cap(multiword_key: "foo") - |> Phoenix.HTML.safe_to_string() =~ - ~s(multiword-key="foo") - - assert Heroicons.Outline.academic_cap(viewBox: "0 0 12 12") - |> Phoenix.HTML.safe_to_string() =~ - ~s(viewBox="0 0 12 12") + setup do + Mix.Task.run("heroicons.build") + {:ok, assigns: %{__changed__: nil}} end - test "generated components" do - outline = render_component(&Heroicons.Outline.academic_cap/1, assigns()) - assert outline =~ ~s(\n \n" - solid = render_component(&Heroicons.Solid.academic_cap/1, assigns()) - assert solid =~ ~s(\n \n" + end - mini = render_component(&Heroicons.Mini.academic_cap/1, assigns()) - assert mini =~ ~s(\n \n" + + class = "w-2" + + assert render_component(&Heroicons.cake/1, %{solid: true, class: class}) == + "\n \n" + end + + test "mini" do + assert render_component(&Heroicons.cake/1, %{mini: true}) == + "\n \n" + + class = "w-2" + + assert render_component(&Heroicons.cake/1, %{mini: true, class: "w-2"}) == + "\n \n" + end + + test "raises on mix styles" do + assert_raise ArgumentError, "expected either mini or solid, but got both.", fn -> + render_component(&Heroicons.cake/1, %{mini: true, solid: true}) + end end test "generated docs" do {:docs_v1, _annotation, _beam_language, _format, _module_doc, _metadata, docs} = - Code.fetch_docs(Heroicons.Outline) + Code.fetch_docs(Heroicons) doc = Enum.find_value(docs, fn @@ -72,24 +55,27 @@ defmodule HeroiconsTest do end) assert doc["en"] == """ - ![](assets/icons/outline/academic-cap.svg) {: width=24px} + Renders the `academic_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 - Use as a `Phoenix.Component` + ```heex + + + + + ``` - <.academic_cap /> - <.academic_cap class="w-6 h-6 text-gray-500" /> + ## Attributes - or as a function - - <%= academic_cap() %> - <%= academic_cap(class: "w-6 h-6 text-gray-500") %> + * `rest` (`:global`) - the arbitrary HTML attributes for the svg container. + * `solid` (`:boolean`) - Defaults to `false`. + * `mini` (`:boolean`) - Defaults to `false`. """ end - - defp assigns(assgns \\ []) do - Map.new(assgns) - |> Map.put_new(:__changed__, %{}) - end end