defmodule Skua.MixProject do
use Mix.Project
@version "0.15.0"
@source_url "https://github.com/cartcodes/skua"
def project do
[
app: :skua,
version: @version,
elixir: "~> 1.15",
start_permanent: Mix.env() == :prod,
deps: deps(),
name: "Skua",
description: description(),
package: package(),
docs: docs(),
source_url: @source_url
]
end
def application do
[extra_applications: [:logger]]
end
defp deps do
[
{:phoenix, "~> 1.8"},
{:phoenix_live_view, "~> 1.1"},
{:phoenix_html, "~> 4.1"},
{:ecto, "~> 3.10", optional: true},
{:igniter, "~> 0.8", optional: true},
{:igniter_js, "~> 0.4", optional: true},
{:ex_doc, "~> 0.40", only: :dev, runtime: false},
{:lazy_html, ">= 0.0.0", only: :test}
]
end
defp description do
"Headless-first, token-driven UI components for Phoenix LiveView — rich " <>
"selects, date pickers, dialogs, menus, tables, sliders and toasts that " <>
"live in the browser top layer. Themeable through CSS tokens, " <>
"viewport-aware, server-authoritative, with zero third-party JS."
end
defp package do
[
maintainers: ["Carter Surach"],
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
},
# Enumerate the real lib dirs (not a bare `lib`) so a stray dogfood file
# like `lib/skua_web/` left by running the generators in this repo can
# never sneak into the published package.
files:
~w(lib/mix lib/skua lib/skua.ex priv assets/css assets/js package.json) ++
~w(usage-rules.md CHANGELOG.md LICENSE.md mix.exs README.md .formatter.exs)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
extras: ["README.md", "usage-rules.md", "CHANGELOG.md", "PLAN.md"],
skip_code_autolink_to: ["Skua.Install.Patches", "Skua.Install.Patches.router/1"],
groups_for_modules: [
Forms: [
Skua.Components.Form,
Skua.Components.Select,
Skua.Components.Phone,
Skua.Components.Date
],
Overlays: [
Skua.Components.Overlay,
Skua.Components.Menu,
Skua.Components.Tooltip
],
"Display & feedback": [
Skua.Components.Display,
Skua.Components.Table,
Skua.Components.Tabs
],
Theming: [
Skua.Components.Theme,
Skua.Components.Toast
],
Utilities: [
Skua.Field,
Skua.Phone
]
]
]
end
end