Packages
Generates type-safe Phoenix.Component modules from DaisyUI documentation. Parses DaisyUI docs, detects variants, and creates production-ready components.
Current section
Files
Jump to
Current section
Files
lib/oopsie_daisy_components/steps.ex
defmodule OopsieDaisy.Components.Steps do
@moduledoc """
Steps component with DaisyUI styling.
Generated from: tmp/daisyui/packages/docs/src/routes/(routes)/components/steps/+page.md
## Examples
<.steps>Content</.steps>
"""
use Phoenix.Component
# Component
attr(:rest, :global, include: ~w(disabled form name value type))
@doc "Additional CSS classes"
attr(:class, :string, default: "")
@doc "Color variant"
attr(:variant, :atom,
default: nil,
values: [nil, :primary, :neutral, :info, :error, :secondary, :accent, :warning]
)
@doc """
Renders a Steps component.
"""
slot(:inner_block, required: true)
def steps(assigns) do
~H"""
<div class={["step", variant_class(@variant), @class]} {@rest}>
<%= render_slot(@inner_block) %>
</div>
"""
end
# Helper functions for class composition
defp variant_class(nil), do: nil
defp variant_class(:primary), do: "step-primary"
defp variant_class(:neutral), do: "step-neutral"
defp variant_class(:info), do: "step-info"
defp variant_class(:error), do: "step-error"
defp variant_class(:secondary), do: "step-secondary"
defp variant_class(:accent), do: "step-accent"
defp variant_class(:warning), do: "step-warning"
end