defmodule SpazioSolazzoWeb.PageComponents do @moduledoc """ Provides UI components specific to the page live view. """ use Phoenix.Component import SpazioSolazzoWeb.CoreComponents @doc """ Renders a space card component for displaying booking spaces. ## Examples <.space_card title="Coworking" description="Flexible desk spaces for remote work" price="15" time_unit="4 hours" image_url="https://..." primary_label="Workspace" image_position={:left} booking_url="/coworking" asset_type="Desk" /> <.space_card title="Meeting Room" description="Private conference rooms" price="40" time_unit="hour" image_url="https://..." primary_label="Business" primary_label_variant={:secondary} secondary_label="Up to 8 people" secondary_label_icon="hero-user-group" image_position={:right} booking_url="/meeting" asset_type="Room" /> """ attr :title, :string, required: true attr :description, :string, required: true attr :price, :string, required: true attr :time_unit, :string, required: true attr :image_url, :string, required: true attr :primary_label, :string, required: true attr :primary_label_variant, :atom, default: :primary, values: [:primary, :secondary, :accent] attr :secondary_label, :string, default: nil attr :secondary_label_icon, :string, default: nil attr :note, :string, default: nil attr :image_position, :atom, default: :left, values: [:left, :right] attr :booking_url, :string, required: true attr :asset_type, :string, required: true attr :id, :string, default: nil def space_card(assigns) do ~H"""
{@description} <%= if @note do %> {@note} <% end %>