defmodule Shadix.Website.Components.Docs.Slider do @moduledoc false use Shadix.Website.Components.ComponentDoc use Phoenix.Component import Shadix.Components.Slider @impl true def description, do: "A native range input styled as a track-and-thumb slider, field-aware and accessible." @impl true def slot_example, do: "" @impl true def prop_overrides, do: %{:"aria-label" => "Volume", class: "w-full max-w-sm"} # `field` is a required struct attr — not a useful configurator control. @impl true def hidden_controls, do: [:field] @impl true def snippet(tag, props, defaults, slot) do tag |> Shadix.Website.Components.CodeGen.snippet(props, defaults, slot) |> String.replace_prefix( "<.slider", ~s|<.slider field={Phoenix.Component.to_form(%{"demo" => 50})[:demo]}| ) end @impl true def preview(assigns) do ~H""" <.slider field={Phoenix.Component.to_form(%{"demo" => 50})[:demo]} {@props} /> """ end demo("Default", [description: "A slider at various positions."], """