Packages
corex
0.1.0
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
lib/components/pin_input/translation.ex
defmodule Corex.PinInput.Translation do
@moduledoc """
Translatable strings for [`Corex.PinInput`](Corex.PinInput.html).
Pass `translation={%Corex.PinInput.Translation{}}` to override any field. Omitted fields use gettext defaults (see table).
| Field | Default | Used for |
| ----- | ------- | -------- |
| `digit` | Digit %{digit} | Per-cell `aria-label` (`%{digit}` is the 1-based index at render) |
Partial override example:
translation={%Corex.PinInput.Translation{
digit: Corex.Gettext.gettext("Cell %{digit}", digit: "%{digit}")
}}
"""
alias Corex.Gettext
defstruct [:digit]
@type t :: %__MODULE__{digit: String.t()}
@doc "Merges partial fields with gettext defaults."
def resolve(nil), do: default()
def resolve(%__MODULE__{} = partial), do: merge(partial, default())
defp default do
%__MODULE__{digit: Gettext.gettext("Digit %{digit}", digit: "%{digit}")}
end
defp merge(%__MODULE__{} = partial, %__MODULE__{} = default) do
%__MODULE__{digit: Corex.Translation.take(partial.digit, default.digit)}
end
end