defmodule <%= @module %> do @moduledoc """ The `<%= @module %>` module provides a flexible and interactive stepper component for Phoenix LiveView applications. It supports both horizontal and vertical layouts, making it ideal for displaying multi-step processes, such as onboarding, forms, or any workflow that requires users to follow a sequence of steps. This module allows extensive customization options, including size, color themes, border styles, and spacing between steps. Each step can display icons, titles, descriptions, and custom content. The component also offers various step states like `current`, `loading`, `completed`, and `canceled`, enabling a visual indication of the user's progress. The `<%= @module %>` enhances user experience by providing a clear and concise representation of step-by-step workflows, ensuring users can easily track their position and progress within the application. """ use Phoenix.Component <%= if is_nil(@type) or "stepper" in @type do %> @doc """ Renders a customizable `stepper` component that visually represents a multi-step process. This component can be configured to display either horizontally or vertically, with various styling options like color, size, and spacing. ## Examples ```elixir <.stepper color="info" size="extra_large"> <.stepper_section step="current" title="First step" description="Create an account" /> <.stepper_section title="Second Step" description="Verify email" /> <.stepper_section title="Third Step" description="Get full access" /> ``` """ @doc type: :component attr :id, :string, default: nil, doc: "A unique identifier is used to manage state and interaction" attr :size, :string, default: "small", doc: "Determines the overall size of the elements, including padding, font size, and other items" attr :margin, :string, default: "medium", doc: "Determines the element margin" attr :color, :string, default: "base", doc: "Determines color theme" attr :space, :string, default: "", doc: "Space between items" attr :border, :string, default: "extra_small", doc: "Determines border style" attr :font_weight, :string, default: "font-normal", doc: "Determines custom class for the font weight" attr :max_width, :string, default: "", doc: "Determines the style of element max width" attr :seperator_size, :string, default: "extra_small", doc: "Determines the seperator size" attr :variant, :string, default: "base", doc: "Determines the style" attr :vertical, :boolean, default: false, doc: "Determines whether element is vertical" attr :class, :string, default: nil, doc: "Custom CSS class for additional styling" attr :col_step, :boolean, default: false, doc: "Custom CSS class for additional styling" attr :col_step_position, :string, default: "start", doc: "Custom CSS class for additional styling" attr :rest, :global, doc: "Global attributes can define defaults which are merged with attributes provided by the caller" slot :inner_block, required: false, doc: "Inner block that renders HEEx content" @spec stepper(map()) :: Phoenix.LiveView.Rendered.t() def stepper(%{vertical: true} = assigns) do ~H"""
{render_slot(@inner_block)}
""" end def stepper(assigns) do ~H"""
{render_slot(@inner_block)}
""" end <% end %> <%= if is_nil(@type) or "stepper_section" in @type do %> @doc """ Renders a `stepper_section` within the stepper component, representing each individual step of a multi-step process. This section can display information such as the step number, title, description, and an icon. It can also be customized to show different states, such as current, loading, completed, or canceled. ## Examples Horizontal Step Section: ```elixir <.stepper_section step="current" title="First step" description="Create an account" /> <.stepper_section title="Second Step" description="Verify email" /> <.stepper_section title="Third Step" description="Get full access" /> ``` """ @doc type: :component attr :id, :string, default: nil, doc: "A unique identifier is used to manage state and interaction" attr :class, :string, default: nil, doc: "Custom CSS class for additional styling" attr :size, :string, default: "small", doc: "Determines the overall size of the elements, including padding, font size, and other items" attr :step, :string, values: ["none", "current", "loading", "completed", "canceled"], default: "none" attr :icon, :string, default: nil, doc: "Icon displayed alongside of an item" attr :title, :string, default: nil, doc: "Specifies the title of the element" attr :description, :string, default: nil, doc: "Determines a short description" attr :step_number, :integer, default: 1 attr :vertical, :boolean, default: false, doc: "Determines whether element is vertical" attr :clickable, :boolean, default: true, doc: "Determines if the element can be activated on click" attr :reverse, :boolean, default: false, doc: "Switches the order of the element and label" attr :space, :string, default: "small", doc: "Switches the order of the element and label" attr :border, :string, default: "", doc: "Determines border style" slot :inner_block, required: false, doc: "Inner block that renders HEEx content" def stepper_section(%{vertical: true} = assigns) do ~H""" """ end def stepper_section(assigns) do ~H"""
""" end <% end %> defp loader(assigns) do ~H""" """ end defp step_visibility() do [ "[&_.stepper-icon]:hidden", "[&_.stepper-icon]:invisible", "[&_.stepper-icon]:opacity-0", "[&_.stepper-loading-icon]:block", "[&_.stepper-loading-icon]:visible", "[&_.stepper-loading-icon]:opacity-100", "[&_.stepper-completed-step_.stepper-completed-icon]:block", "[&_.stepper-completed-step_.stepper-completed-icon]:visible", "[&_.stepper-completed-step_.stepper-completed-icon]:opacity-100", "[&_.stepper-completed-step_.step-symbol]:hidden", "[&_.stepper-completed-step_.step-symbol]:invisible", "[&_.stepper-completed-step_.step-symbol]:opacity-0", "[&_.stepper-loading-step_.step-symbol]:hidden", "[&_.stepper-loading-step_.step-symbol]:invisible", "[&_.stepper-loading-step_.step-symbol]:opacity-0" ] end defp content_space("extra_small", reverse?) do [ (reverse? && "group-[:not(.col-step)_.stepper-content]:me-1") || "group-[:not(.col-step)_.stepper-content]:ms-1" ] end defp content_space("small", reverse?) do [ (reverse? && "group-[:not(.col-step)_.stepper-content]:me-2") || "group-[:not(.col-step)_.stepper-content]:ms-2" ] end defp content_space("medium", reverse?) do [ (reverse? && "group-[:not(.col-step)_.stepper-content]:me-3") || "group-[:not(.col-step)_.stepper-content]:ms-3" ] end defp content_space("large", reverse?) do [ (reverse? && "group-[:not(.col-step)_.stepper-content]:me-4") || "group-[:not(.col-step)_.stepper-content]:ms-4" ] end defp content_space("extra_large", reverse?) do [ (reverse? && "group-[:not(.col-step)_.stepper-content]:me-5") || "group-[:not(.col-step)_.stepper-content]:ms-5" ] end defp col_step_position("start") do [ "[&.col-step-position>button]:items-start [&.col-step-position>button]:text-start" ] end defp col_step_position("end") do [ "[&.col-step-position>button]:items-end [&.col-step-position>button]:text-end" ] end defp col_step_position("center") do [ "[&.col-step-position>button]:items-center [&.col-step-position>button]:text-center" ] end defp seperator_margin("none") do [ "[&_.stepper-seperator]:mx-0" ] end defp seperator_margin("extra_small") do [ "[&_.stepper-seperator]:mx-1", "xl:[&_.stepper-seperator]:mx-3" ] end defp seperator_margin("small") do [ "[&_.stepper-seperator]:mx-2", "xl:[&_.stepper-seperator]:mx-4" ] end defp seperator_margin("medium") do [ "[&_.stepper-seperator]:mx-2", "xl:[&_.stepper-seperator]:mx-6" ] end defp seperator_margin("large") do [ "[&_.stepper-seperator]:mx-3", "xl:[&_.stepper-seperator]:mx-8" ] end defp seperator_margin("extra_large") do [ "[&_.stepper-seperator]:mx-3", "xl:[&_.stepper-seperator]:mx-10" ] end defp seperator_margin(params) when is_binary(params), do: params defp border_class("extra_small") do [ "[&.vertical-stepper_.stepper-seperator]:border-s", "[&:not(.vertical-stepper)_.stepper-seperator]:border-t" ] end defp border_class("small") do [ "[&.vertical-stepper_.stepper-seperator]:border-s-2", "[&:not(.vertical-stepper)_.stepper-seperator]:border-t-2" ] end defp border_class("medium") do [ "[&.vertical-stepper_.stepper-seperator]:border-s-[3px]", "[&:not(.vertical-stepper)_.stepper-seperator]:border-t-[3px]" ] end defp border_class("large") do [ "[&.vertical-stepper_.stepper-seperator]:border-s-4", "[&:not(.vertical-stepper)_.stepper-seperator]:border-t-4" ] end defp border_class("extra_large") do [ "[&.vertical-stepper_.stepper-seperator]:border-s-[5px]", "[&:not(.vertical-stepper)_.stepper-seperator]:border-t-[5px]" ] end defp border_class(params) when is_binary(params), do: params <%= if is_nil(@space) or "extra_small" in @space do %> defp space_class("extra_small"), do: "space-y-1" <% end %> <%= if is_nil(@space) or "small" in @space do %> defp space_class("small"), do: "space-y-2" <% end %> <%= if is_nil(@space) or "medium" in @space do %> defp space_class("medium"), do: "space-y-3" <% end %> <%= if is_nil(@space) or "large" in @space do %> defp space_class("large"), do: "space-y-4" <% end %> <%= if is_nil(@space) or "extra_large" in @space do %> defp space_class("extra_large"), do: "space-y-5" <% end %> defp space_class(params) when is_binary(params), do: params defp wrapper_width("extra_small"), do: "max-w-1/4" defp wrapper_width("small"), do: "max-w-2/4" defp wrapper_width("medium"), do: "max-w-3/4" defp wrapper_width("large"), do: "max-w-11/12" defp wrapper_width("extra_large"), do: "max-" defp wrapper_width(params) when is_binary(params), do: params <%= if is_nil(@size) or "extra_small" in @size do %> defp size_class("extra_small") do [ "text-xs [&_.stepper-step]:size-7 [&_.stepper-icon]:size-4", "[&_.vertical-step:not(:last-child)]:min-h-10", "[&_.stepper-loading-icon]:w-8", ] end <% end %> <%= if is_nil(@size) or "small" in @size do %> defp size_class("small") do [ "text-sm [&_.stepper-step]:size-8 [&_.stepper-icon]:size-5", "[&_.vertical-step:not(:last-child)]:min-h-12", "[&_.stepper-loading-icon]:w-10", ] end <% end %> <%= if is_nil(@size) or "medium" in @size do %> defp size_class("medium") do [ "text-base [&_.stepper-step]:size-9 [&_.stepper-icon]:size-6", "[&_.vertical-step:not(:last-child)]:min-h-14", "[&_.stepper-loading-icon]:w-11", ] end <% end %> <%= if is_nil(@size) or "large" in @size do %> defp size_class("large") do [ "text-lg [&_.stepper-step]:size-10 [&_.stepper-icon]:size-7", "[&_.vertical-step:not(:last-child)]:min-h-16", "[&_.stepper-loading-icon]:w-12", ] end <% end %> <%= if is_nil(@size) or "extra_large" in @size do %> defp size_class("extra_large") do [ "text-xl [&_.stepper-step]:size-11 [&_.stepper-icon]:size-8", "[&_.vertical-step:not(:last-child)]:min-h-20", "[&_.stepper-loading-icon]:w-14", ] end <% end %> defp size_class(params) when is_binary(params), do: params defp seperator_size("extra_small"), do: "[&_.stepper-seperator]:h-px" defp seperator_size("small"), do: "[&_.stepper-seperator]:h-0.5" defp seperator_size("medium"), do: "[&_.stepper-seperator]:h-1" defp seperator_size("large"), do: "[&_.stepper-seperator]:h-1.5" defp seperator_size("extra_large"), do: "[&_.stepper-seperator]:h-2" defp seperator_size(params) when is_binary(params), do: params # colors # stepper-loading-step, stepper-current-step, stepper-completed-step, stepper-canceled-step <%= if is_nil(@variant) or "base" in @variant do %> <%= if is_nil(@color) or "base" in @color do %> defp color_variant("base", "base") do [ "[&_.stepper-step]:bg-white [&_.stepper-step]:text-[#09090b] [&_.stepper-loading-icon]:fill-[#2563EB]", "[&_.stepper-step]:border-[#e4e4e7] [&_.stepper-current-step_.stepper-step]:border-[#2563EB]", "[&_.stepper-current-step_.stepper-step]:text-[#2563EB]", "[&_.stepper-completed-step_.stepper-step]:bg-[#14B8A6] [&_.stepper-completed-step_.stepper-step]:border-[#14B8A6]", "[&_.stepper-completed-step_.stepper-step]:text-white", "dark:[&_.stepper-step]:bg-[#18181B] dark:[&_.stepper-step]:text-[#FAFAFA] dark:[&_.stepper-step]:border-[#27272a]", "dark:[&_.stepper-current-step_.stepper-step]:text-[#1971C2]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#1971C2]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#099268] dark:[&_.stepper-completed-step_.stepper-step]:border-[#099268]", "dark:[&_.stepper-completed-step_.stepper-step]:text-white", "[&_.stepper-canceled-step_.stepper-step]:bg-[#FA5252] [&_.stepper-canceled-step_.stepper-step]:border-[#FA5252]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#E03131] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#E03131]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-white", "[&_.stepper-seperator]:border-[#e4e4e7] dark:[&_.stepper-seperator]:border-[#27272a]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#14B8A6] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#099268]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#14B8A6]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#099268]" ] end <% end %> <% end %> <%= if is_nil(@variant) or "default" in @variant do %> <%= if is_nil(@color) or "natural" in @color do %> defp color_variant("natural", "default") do [ "[&_.stepper-step]:bg-[#F3F3F3] [&_.stepper-step]:text-[#282828] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#282828]", "[&_.stepper-completed-step_.stepper-step]:bg-[#E8E8E8] [&_.stepper-completed-step_.stepper-step]:border-black", "dark:[&_.stepper-step]:bg-[#4B4B4B] dark:[&_.stepper-step]:text-[#E8E8E8]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#E8E8E8]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#5E5E5E] dark:[&_.stepper-completed-step_.stepper-step]:border-white", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#282828] dark:[&_.stepper-seperator]:border-[#E8E8E8]", "[&_.stepper-completed-step+.stepper-seperator]:border-black dark:[&_.stepper-completed-step+.stepper-seperator]:border-white", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-black", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-white" ] end <% end %> <%= if is_nil(@color) or "primary" in @color do %> defp color_variant("primary", "default") do [ "[&_.stepper-step]:bg-[#E2F8FB] [&_.stepper-step]:text-[#016974] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#016974]", "[&_.stepper-completed-step_.stepper-step]:bg-[#CDEEF3] [&_.stepper-completed-step_.stepper-step]:border-[#1A535A]", "dark:[&_.stepper-step]:bg-[#002D33] dark:[&_.stepper-step]:text-[#77D5E3]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#77D5E3]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#1A535A] dark:[&_.stepper-completed-step_.stepper-step]:border-[#B0E7EF]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#016974] dark:[&_.stepper-seperator]:border-[#77D5E3]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#1A535A] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#B0E7EF]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#1A535A]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#B0E7EF]" ] end <% end %> <%= if is_nil(@color) or "secondary" in @color do %> defp color_variant("secondary", "default") do [ "[&_.stepper-step]:bg-[#EFF4FE] [&_.stepper-step]:text-[#175BCC] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#175BCC]", "[&_.stepper-completed-step_.stepper-step]:bg-[#DEE9FE] [&_.stepper-completed-step_.stepper-step]:border-[#1948A3]", "dark:[&_.stepper-step]:bg-[#002661] dark:[&_.stepper-step]:text-[#A9C9FF]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#A9C9FF]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#1948A3] dark:[&_.stepper-completed-step_.stepper-step]:border-[#CDDEFF]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#175BCC] dark:[&_.stepper-seperator]:border-[#A9C9FF]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#1948A3] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#CDDEFF]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#1948A3]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#CDDEFF]" ] end <% end %> <%= if is_nil(@color) or "success" in @color do %> defp color_variant("success", "default") do [ "[&_.stepper-step]:bg-[#EAF6ED] [&_.stepper-step]:text-[#166C3B] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#166C3B]", "[&_.stepper-completed-step_.stepper-step]:bg-[#D3EFDA] [&_.stepper-completed-step_.stepper-step]:border-[#0D572D]", "dark:[&_.stepper-step]:bg-[#002F14] dark:[&_.stepper-step]:text-[#7FD99A]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#7FD99A]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#0D572D] dark:[&_.stepper-completed-step_.stepper-step]:border-[#B1EAC2]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#166C3B] dark:[&_.stepper-seperator]:border-[#7FD99A]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#0D572D] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#B1EAC2]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#0D572D]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#B1EAC2]" ] end <% end %> <%= if is_nil(@color) or "warning" in @color do %> defp color_variant("warning", "default") do [ "[&_.stepper-step]:bg-[#FFF7E6] [&_.stepper-step]:text-[#976A01] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#976A01]", "[&_.stepper-completed-step_.stepper-step]:bg-[#FEEFCC] [&_.stepper-completed-step_.stepper-step]:border-[#654600]", "dark:[&_.stepper-step]:bg-[#322300] dark:[&_.stepper-step]:text-[#FDD067]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#FDD067]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#654600] dark:[&_.stepper-completed-step_.stepper-step]:border-[#FEDF99]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#976A01] dark:[&_.stepper-seperator]:border-[#FDD067]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#654600] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#FEDF99]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#654600]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#FEDF99]" ] end <% end %> <%= if is_nil(@color) or "danger" in @color do %> defp color_variant("danger", "default") do [ "[&_.stepper-step]:bg-[#FFF0EE] [&_.stepper-step]:text-[#BB032A] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#BB032A]", "[&_.stepper-completed-step_.stepper-step]:bg-[#FFE1DE] [&_.stepper-completed-step_.stepper-step]:border-[#950F22]", "dark:[&_.stepper-step]:bg-[#520810] dark:[&_.stepper-step]:text-[#FFB2AB]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#FFB2AB]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#950F22] dark:[&_.stepper-completed-step_.stepper-step]:border-[#FFD2CD]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#BB032A] dark:[&_.stepper-seperator]:border-[#FFB2AB]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#950F22] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#FFD2CD]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#950F22]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#FFD2CD]" ] end <% end %> <%= if is_nil(@color) or "info" in @color do %> defp color_variant("info", "default") do [ "[&_.stepper-step]:bg-[#E7F6FD] [&_.stepper-step]:text-[#08638C] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#08638C]", "[&_.stepper-completed-step_.stepper-step]:bg-[#CFEDFB] [&_.stepper-completed-step_.stepper-step]:border-[#06425D]", "dark:[&_.stepper-step]:bg-[#03212F] dark:[&_.stepper-step]:text-[#6EC9F2]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#6EC9F2]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#06425D] dark:[&_.stepper-completed-step_.stepper-step]:border-[#9FDBF6]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#08638C] dark:[&_.stepper-seperator]:border-[#6EC9F2]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#06425D] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#9FDBF6]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#06425D]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#9FDBF6]" ] end <% end %> <%= if is_nil(@color) or "misc" in @color do %> defp color_variant("misc", "default") do [ "[&_.stepper-step]:bg-[#F6F0FE] [&_.stepper-step]:text-[#653C94] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#653C94]", "[&_.stepper-completed-step_.stepper-step]:bg-[#EEE0FD] [&_.stepper-completed-step_.stepper-step]:border-[#442863]", "dark:[&_.stepper-step]:bg-[#221431] dark:[&_.stepper-step]:text-[#CBA2FA]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#CBA2FA]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#44286] dark:[&_.stepper-completed-step_.stepper-step]:border-[#DDC1FC]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#653C94] dark:[&_.stepper-seperator]:border-[#CBA2FA]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#442863] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#DDC1FC]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#442863]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#DDC1FC]" ] end <% end %> <%= if is_nil(@color) or "dawn" in @color do %> defp color_variant("dawn", "default") do [ "[&_.stepper-step]:bg-[#FBF2ED] [&_.stepper-step]:text-[#7E4B2A] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#7E4B2A]", "[&_.stepper-completed-step_.stepper-step]:bg-[#F6E5DA] [&_.stepper-completed-step_.stepper-step]:border-[#54321C]", "dark:[&_.stepper-step]:bg-[#2A190E] dark:[&_.stepper-step]:text-[#E4B190]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#E4B190]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#54321C] dark:[&_.stepper-completed-step_.stepper-step]:border-[#EDCBB5]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#7E4B2A] dark:[&_.stepper-seperator]:border-[#E4B190]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#54321C] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#EDCBB5]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#54321C]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#EDCBB5]" ] end <% end %> <%= if is_nil(@color) or "silver" in @color do %> defp color_variant("silver", "default") do [ "[&_.stepper-step]:bg-[#F3F3F3] [&_.stepper-step]:text-[#727272] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#727272]", "[&_.stepper-completed-step_.stepper-step]:bg-[#E8E8E8] [&_.stepper-completed-step_.stepper-step]:border-[#5E5E5E]", "dark:[&_.stepper-step]:bg-[#4B4B4B] dark:[&_.stepper-step]:text-[#BBBBBB]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#BBBBBB]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#5E5E5E] dark:[&_.stepper-completed-step_.stepper-step]:border-[#DDDDDD]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#727272] dark:[&_.stepper-seperator]:border-[#BBBBBB]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#5E5E5E] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#DDDDDD]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#5E5E5E]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#DDDDDD]" ] end <% end %> <% end %> <%= if is_nil(@variant) or "gradient" in @variant do %> <%= if is_nil(@color) or "natural" in @color do %> defp color_variant("natural", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#282828] to-[#727272] [&_.stepper-step]:text-white", "dark:from-[#A6A6A6] dark:to-[#FFFFFF] dark:[&_.stepper-step]:text-black", "[&_.stepper-step]:text-[#282828] [&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#282828]", "[&_.stepper-completed-step_.stepper-step]:bg-[#E8E8E8] [&_.stepper-completed-step_.stepper-step]:border-black", "dark:[&_.stepper-current-step_.stepper-step]:border-[#E8E8E8]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#5E5E5E] dark:[&_.stepper-completed-step_.stepper-step]:border-white", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#282828] dark:[&_.stepper-seperator]:border-[#E8E8E8]", "[&_.stepper-completed-step+.stepper-seperator]:border-black dark:[&_.stepper-completed-step+.stepper-seperator]:border-white", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-black", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-white" ] end <% end %> <%= if is_nil(@color) or "primary" in @color do %> defp color_variant("primary", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#016974] to-[#01B8CA] [&_.stepper-step]:text-white", "dark:from-[#01B8CA] dark:to-[#B0E7EF] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#016974]", "[&_.stepper-completed-step_.stepper-step]:bg-[#CDEEF3] [&_.stepper-completed-step_.stepper-step]:border-[#1A535A]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#77D5E3]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#1A535A] dark:[&_.stepper-completed-step_.stepper-step]:border-[#B0E7EF]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#016974] dark:[&_.stepper-seperator]:border-[#77D5E3]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#1A535A] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#B0E7EF]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#1A535A]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#B0E7EF]" ] end <% end %> <%= if is_nil(@color) or "secondary" in @color do %> defp color_variant("secondary", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#175BCC] to-[#6DAAFB] [&_.stepper-step]:text-white", "dark:from-[#6DAAFB] dark:to-[#CDDEFF] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#175BCC]", "[&_.stepper-completed-step_.stepper-step]:bg-[#DEE9FE] [&_.stepper-completed-step_.stepper-step]:border-[#1948A3]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#A9C9FF]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#1948A3] dark:[&_.stepper-completed-step_.stepper-step]:border-[#CDDEFF]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#175BCC] dark:[&_.stepper-seperator]:border-[#A9C9FF]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#1948A3] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#CDDEFF]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#1948A3]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#CDDEFF]" ] end <% end %> <%= if is_nil(@color) or "success" in @color do %> defp color_variant("success", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#166C3B] to-[#06C167] [&_.stepper-step]:text-white", "dark:from-[#06C167] dark:to-[#B1EAC2] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#166C3B]", "[&_.stepper-completed-step_.stepper-step]:bg-[#D3EFDA] [&_.stepper-completed-step_.stepper-step]:border-[#0D572D]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#7FD99A]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#0D572D] dark:[&_.stepper-completed-step_.stepper-step]:border-[#B1EAC2]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#166C3B] dark:[&_.stepper-seperator]:border-[#7FD99A]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#0D572D] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#B1EAC2]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#0D572D]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#B1EAC2]" ] end <% end %> <%= if is_nil(@color) or "warning" in @color do %> defp color_variant("warning", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#976A01] to-[#FDC034] [&_.stepper-step]:text-white", "dark:from-[#FDC034] dark:to-[#FEDF99] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#976A01]", "[&_.stepper-completed-step_.stepper-step]:bg-[#FEEFCC] [&_.stepper-completed-step_.stepper-step]:border-[#654600]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#FDD067]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#654600] dark:[&_.stepper-completed-step_.stepper-step]:border-[#FEDF99]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#976A01] dark:[&_.stepper-seperator]:border-[#FDD067]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#654600] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#FEDF99]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#654600]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#FEDF99]" ] end <% end %> <%= if is_nil(@color) or "danger" in @color do %> defp color_variant("danger", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#BB032A] to-[#FC7F79] [&_.stepper-step]:text-white", "dark:from-[#FC7F79] dark:to-[#FFD2CD] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#BB032A]", "[&_.stepper-completed-step_.stepper-step]:bg-[#FFE1DE] [&_.stepper-completed-step_.stepper-step]:border-[#950F22]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#FFB2AB]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#950F22] dark:[&_.stepper-completed-step_.stepper-step]:border-[#FFD2CD]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#BB032A] dark:[&_.stepper-seperator]:border-[#FFB2AB]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#950F22] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#FFD2CD]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#950F22]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#FFD2CD]" ] end <% end %> <%= if is_nil(@color) or "info" in @color do %> defp color_variant("info", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#08638C] to-[#3EB7ED] [&_.stepper-step]:text-white", "dark:from-[#3EB7ED] dark:to-[#9FDBF6] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#08638C]", "[&_.stepper-completed-step_.stepper-step]:bg-[#CFEDFB] [&_.stepper-completed-step_.stepper-step]:border-[#06425D]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#6EC9F2]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#06425D] dark:[&_.stepper-completed-step_.stepper-step]:border-[#9FDBF6]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#08638C] dark:[&_.stepper-seperator]:border-[#6EC9F2]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#06425D] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#9FDBF6]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#06425D]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#9FDBF6]" ] end <% end %> <%= if is_nil(@color) or "misc" in @color do %> defp color_variant("misc", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#653C94] to-[#BA83F9] [&_.stepper-step]:text-white", "dark:from-[#BA83F9] dark:to-[#DDC1FC] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#653C94]", "[&_.stepper-completed-step_.stepper-step]:bg-[#EEE0FD] [&_.stepper-completed-step_.stepper-step]:border-[#442863]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#CBA2FA]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#44286] dark:[&_.stepper-completed-step_.stepper-step]:border-[#DDC1FC]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#653C94] dark:[&_.stepper-seperator]:border-[#CBA2FA]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#442863] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#DDC1FC]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#442863]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#DDC1FC]" ] end <% end %> <%= if is_nil(@color) or "dawn" in @color do %> defp color_variant("dawn", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#7E4B2A] to-[#DB976B] [&_.stepper-step]:text-white", "dark:from-[#DB976B] dark:to-[#EDCBB5] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#7E4B2A]", "[&_.stepper-completed-step_.stepper-step]:bg-[#F6E5DA] [&_.stepper-completed-step_.stepper-step]:border-[#54321C]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#E4B190]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#54321C] dark:[&_.stepper-completed-step_.stepper-step]:border-[#EDCBB5]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#7E4B2A] dark:[&_.stepper-seperator]:border-[#E4B190]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#54321C] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#EDCBB5]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#54321C]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#EDCBB5]" ] end <% end %> <%= if is_nil(@color) or "silver" in @color do %> defp color_variant("silver", "gradient") do [ "[&_.stepper-step]:bg-gradient-to-br from-[#5E5E5E] to-[#A6A6A6] [&_.stepper-step]:text-white", "dark:from-[#868686] dark:to-[#BBBBBB] dark:[&_.stepper-step]:text-black", "[&_.stepper-loading-icon]:fill-[#374151]", "[&_.stepper-step]:border-transparent [&_.stepper-current-step_.stepper-step]:border-[#727272]", "[&_.stepper-completed-step_.stepper-step]:bg-[#E8E8E8] [&_.stepper-completed-step_.stepper-step]:border-[#5E5E5E]", "dark:[&_.stepper-current-step_.stepper-step]:border-[#BBBBBB]", "dark:[&_.stepper-completed-step_.stepper-step]:bg-[#5E5E5E] dark:[&_.stepper-completed-step_.stepper-step]:border-[#DDDDDD]", "[&_.stepper-canceled-step_.stepper-step]:bg-[#950F22] [&_.stepper-canceled-step_.stepper-step]:border-[#950F22]", "[&_.stepper-canceled-step_.stepper-step]:text-white", "dark:[&_.stepper-canceled-step_.stepper-step]:bg-[#FFD2CD] dark:[&_.stepper-canceled-step_.stepper-step]:border-[#FFD2CD]", "dark:[&_.stepper-canceled-step_.stepper-step]:text-black", "[&_.stepper-seperator]:border-[#727272] dark:[&_.stepper-seperator]:border-[#BBBBBB]", "[&_.stepper-completed-step+.stepper-seperator]:border-[#5E5E5E] dark:[&_.stepper-completed-step+.stepper-seperator]:border-[#DDDDDD]", "[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#5E5E5E]", "dark:[&.vertical-stepper_.stepper-completed-step_.stepper-seperator]:border-[#DDDDDD]" ] end <% end %> <% end %> defp color_variant(_, params) when is_binary(params), do: params attr :name, :string, required: true, doc: "Specifies the name of the element" attr :class, :any, default: nil, doc: "Custom CSS class for additional styling" defp icon(%{name: "hero-" <> _, class: class} = assigns) when is_list(class) do ~H""" """ end defp icon(%{name: "hero-" <> _} = assigns) do ~H""" """ end end