Packages

phoenix_kit

1.7.61
1.7.208 1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 1.7.8 1.7.7 1.7.6 1.7.5 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 1.6.10 1.6.9 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

Files

Jump to
phoenix_kit lib phoenix_kit utils hero_icons.ex
Raw

lib/phoenix_kit/utils/hero_icons.ex

defmodule PhoenixKit.Utils.HeroIcons do
@moduledoc """
Curated list of Heroicons for use in the application.
Icons are grouped by category for easy browsing.
"""
@doc """
Returns all available icons grouped by category.
"""
def list_icons_by_category do
%{
"General" => [
{"hero-cube", "Cube"},
{"hero-squares-2x2", "Grid"},
{"hero-square-3-stack-3d", "Stack"},
{"hero-cube-transparent", "Cube Transparent"},
{"hero-archive-box", "Archive Box"},
{"hero-inbox", "Inbox"},
{"hero-folder", "Folder"},
{"hero-folder-open", "Folder Open"},
{"hero-document", "Document"},
{"hero-document-text", "Document Text"},
{"hero-clipboard", "Clipboard"},
{"hero-bookmark", "Bookmark"}
],
"Content" => [
{"hero-document-duplicate", "Documents"},
{"hero-newspaper", "Newspaper"},
{"hero-book-open", "Book"},
{"hero-academic-cap", "Academic"},
{"hero-photo", "Photo"},
{"hero-film", "Film"},
{"hero-musical-note", "Music"},
{"hero-microphone", "Microphone"},
{"hero-speaker-wave", "Speaker"},
{"hero-video-camera", "Video"}
],
"Actions" => [
{"hero-plus", "Plus"},
{"hero-minus", "Minus"},
{"hero-pencil", "Pencil"},
{"hero-trash", "Trash"},
{"hero-check", "Check"},
{"hero-check-circle", "Check Circle"},
{"hero-x-mark", "X Mark"},
{"hero-arrow-path", "Refresh"},
{"hero-arrow-down-tray", "Download"},
{"hero-arrow-up-tray", "Upload"},
{"hero-magnifying-glass", "Search"},
{"hero-funnel", "Filter"}
],
"Navigation" => [
{"hero-home", "Home"},
{"hero-arrow-right", "Arrow Right"},
{"hero-arrow-left", "Arrow Left"},
{"hero-arrow-up", "Arrow Up"},
{"hero-arrow-down", "Arrow Down"},
{"hero-chevron-right", "Chevron Right"},
{"hero-chevron-left", "Chevron Left"},
{"hero-chevron-up", "Chevron Up"},
{"hero-chevron-down", "Chevron Down"},
{"hero-bars-3", "Menu"}
],
"Communication" => [
{"hero-envelope", "Email"},
{"hero-chat-bubble-left", "Chat"},
{"hero-bell", "Bell"},
{"hero-megaphone", "Megaphone"},
{"hero-phone", "Phone"},
{"hero-paper-airplane", "Send"},
{"hero-at-symbol", "At Symbol"}
],
"Users" => [
{"hero-user", "User"},
{"hero-user-group", "User Group"},
{"hero-user-circle", "User Circle"},
{"hero-users", "Users"},
{"hero-identification", "ID Card"},
{"hero-shield-check", "Shield"}
],
"Business" => [
{"hero-briefcase", "Briefcase"},
{"hero-building-office", "Office"},
{"hero-building-storefront", "Store"},
{"hero-shopping-cart", "Cart"},
{"hero-shopping-bag", "Shopping Bag"},
{"hero-currency-dollar", "Dollar"},
{"hero-credit-card", "Credit Card"},
{"hero-chart-bar", "Chart"},
{"hero-presentation-chart-line", "Presentation"}
],
"Interface" => [
{"hero-cog-6-tooth", "Settings"},
{"hero-adjustments-horizontal", "Adjustments"},
{"hero-lock-closed", "Lock"},
{"hero-lock-open", "Unlock"},
{"hero-key", "Key"},
{"hero-eye", "Eye"},
{"hero-eye-slash", "Eye Slash"},
{"hero-star", "Star"},
{"hero-heart", "Heart"},
{"hero-flag", "Flag"}
],
"Tech" => [
{"hero-code-bracket", "Code"},
{"hero-command-line", "Terminal"},
{"hero-computer-desktop", "Desktop"},
{"hero-device-phone-mobile", "Mobile"},
{"hero-server", "Server"},
{"hero-cloud", "Cloud"},
{"hero-link", "Link"},
{"hero-wifi", "WiFi"},
{"hero-signal", "Signal"},
{"hero-bolt", "Bolt"}
],
"Status" => [
{"hero-information-circle", "Info"},
{"hero-exclamation-triangle", "Warning"},
{"hero-exclamation-circle", "Exclamation"},
{"hero-question-mark-circle", "Question"},
{"hero-light-bulb", "Idea"},
{"hero-sparkles", "Sparkles"},
{"hero-fire", "Fire"}
]
}
end
@doc """
Returns a flat list of all available icons.
"""
def list_all_icons do
list_icons_by_category()
|> Enum.flat_map(fn {_category, icons} -> icons end)
end
@doc """
Returns all category names.
"""
def list_categories do
list_icons_by_category()
|> Map.keys()
end
@doc """
Searches for icons by name or display name.
"""
def search_icons(query) when is_binary(query) do
query_lower = String.downcase(query)
list_all_icons()
|> Enum.filter(fn {icon_name, display_name} ->
String.contains?(String.downcase(icon_name), query_lower) ||
String.contains?(String.downcase(display_name), query_lower)
end)
end
end