diff --git a/app/components/button_component.html.erb b/app/components/button_component.html.erb index 87268248..75f3853e 100644 --- a/app/components/button_component.html.erb +++ b/app/components/button_component.html.erb @@ -1,6 +1,6 @@ <%= container do %> <% if icon && (icon_position != :right) %> - <%= lucide_icon(icon, class: icon_classes) %> + <%= helpers.icon(icon, size: size, color: icon_color) %> <% end %> <% unless icon_only? %> @@ -8,6 +8,6 @@ <% end %> <% if icon && icon_position == :right %> - <%= lucide_icon(icon, class: icon_classes) %> + <%= helpers.icon(icon, size: size, color: icon_color) %> <% end %> <% end %> diff --git a/app/components/buttonish_component.rb b/app/components/buttonish_component.rb index 4743616e..89e3afda 100644 --- a/app/components/buttonish_component.rb +++ b/app/components/buttonish_component.rb @@ -39,22 +39,19 @@ class ButtonishComponent < ViewComponent::Base container_classes: "px-2 py-1", icon_container_classes: "inline-flex items-center justify-center w-8 h-8", radius_classes: "rounded-md", - text_classes: "text-sm", - icon_classes: "w-4 h-4" + text_classes: "text-sm" }, md: { container_classes: "px-3 py-2", icon_container_classes: "inline-flex items-center justify-center w-9 h-9", radius_classes: "rounded-lg", - text_classes: "text-sm", - icon_classes: "w-5 h-5" + text_classes: "text-sm" }, lg: { container_classes: "px-4 py-3", icon_container_classes: "inline-flex items-center justify-center w-10 h-10", radius_classes: "rounded-xl", - text_classes: "text-base", - icon_classes: "w-6 h-6" + text_classes: "text-base" } }.freeze @@ -92,9 +89,20 @@ class ButtonishComponent < ViewComponent::Base icon_only? ? size_data.dig(:icon_container_classes) : size_data.dig(:container_classes) end + def icon_color + # Map variant to icon color for the icon helper + case variant + when :primary, :icon_inverse + :white + when :destructive, :outline_destructive + :destructive + else + :default + end + end + def icon_classes class_names( - size_data.dig(:icon_classes), variant_data.dig(:icon_classes) ) end diff --git a/app/components/disclosure_component.html.erb b/app/components/disclosure_component.html.erb index 554342d1..38db2d7f 100644 --- a/app/components/disclosure_component.html.erb +++ b/app/components/disclosure_component.html.erb @@ -4,7 +4,7 @@ ) do %>
<% if align == :left %> - <%= lucide_icon "chevron-right", class: "fg-gray w-5 h-5 group-open:transform group-open:rotate-90" %> + <%= helpers.icon "chevron-right", class: "group-open:transform group-open:rotate-90" %> <% end %> <%= tag.span class: class_names("font-medium", align == :left ? "text-sm text-primary" : "text-xs uppercase text-secondary") do %> @@ -13,7 +13,7 @@
<% if align == :right %> - <%= lucide_icon "chevron-down", class: "fg-gray w-5 h-5 group-open:transform group-open:rotate-180" %> + <%= helpers.icon "chevron-down", class: "group-open:transform group-open:rotate-180" %> <% elsif summary_content? %> <%= summary_content %> <% end %> diff --git a/app/components/link_component.html.erb b/app/components/link_component.html.erb index 707c3d9f..c22e873a 100644 --- a/app/components/link_component.html.erb +++ b/app/components/link_component.html.erb @@ -1,6 +1,7 @@ <%= link_to href, **merged_opts do %> <% if icon && (icon_position != "right") %> - <%= lucide_icon(icon, class: icon_classes) %> + <%= helpers.icon(icon, size: size, color: icon_color) %> + <% end %> <% unless icon_only? %> @@ -8,6 +9,7 @@ <% end %> <% if icon && icon_position == "right" %> - <%= lucide_icon(icon, class: icon_classes) %> + <%= helpers.icon(icon, size: size, color: icon_color) %> + <% end %> <% end %> diff --git a/app/components/menu_item_component.html.erb b/app/components/menu_item_component.html.erb index bd62bad7..273c4551 100644 --- a/app/components/menu_item_component.html.erb +++ b/app/components/menu_item_component.html.erb @@ -4,7 +4,7 @@
<%= wrapper do %> <% if icon %> - <%= lucide_icon(icon, class: destructive? ? "text-destructive" : "fg-gray") %> + <%= helpers.icon(icon, color: destructive? ? :destructive : :default) %> <% end %> <%= tag.span(text, class: text_classes) %> <% end %> diff --git a/app/views/transactions/searches/filters/_badge.html.erb b/app/views/transactions/searches/filters/_badge.html.erb index 6f9c919e..e71bf9ee 100644 --- a/app/views/transactions/searches/filters/_badge.html.erb +++ b/app/views/transactions/searches/filters/_badge.html.erb @@ -2,7 +2,7 @@
  • <% if param_key == "start_date" || param_key == "end_date" %>
    - <%= lucide_icon "calendar", class: "w-5 h-5 text-secondary" %> + <%= icon "calendar" %>

    <% if param_key == "start_date" %> <%= t(".on_or_after", date: param_value) %> @@ -13,7 +13,7 @@

    <% elsif param_key == "search" %>
    - <%= lucide_icon "text", class: "w-5 h-5 text-secondary" %> + <%= icon "text" %>

    <%= "\"#{param_value}\"".truncate(20) %>

    <% elsif param_key == "accounts" %> @@ -23,7 +23,7 @@
  • <% elsif param_key == "amount" %>
    - <%= lucide_icon "hash", class: "w-5 h-5 text-secondary" %> + <%= icon "hash" %>

    <%= param_value %>

    <% elsif param_key == "types" %> @@ -45,6 +45,6 @@ method: :delete, data: { turbo: false }, class: "flex items-center cursor-pointer" do %> - <%= lucide_icon "x", class: "w-4 h-4 text-secondary hover:text-primary" %> + <%= icon "x", size: "sm", class: "hover:text-primary" %> <% end %>