Packages
corex
0.1.1
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/corex/animation/height.ex
defmodule Corex.Animation.Height do
@moduledoc """
Web Animations config for **accordion** and **tree-view** panel open/close:
**opacity** and **height** (scrollHeight) keyframes, no scale.
`to_dataset/1` is merged on the host only for `js`. Custom `animation` does not use this on the server; the hook may still apply an optional root pointer lock with client defaults when the `data-anim-height-*` attributes are absent.
Set `block_interaction` to `false` to allow pointer input on the component root while a panel animates; default `true` blocks until the built-in WAAPI transition finishes.
"""
defstruct duration: 0.3,
easing: "ease",
opacity_start: 0.0,
opacity_end: 1.0,
block_interaction: false
@type t :: %__MODULE__{
duration: float(),
easing: String.t(),
opacity_start: float(),
opacity_end: float(),
block_interaction: boolean()
}
@spec to_dataset(t()) :: %{String.t() => term()}
def to_dataset(%__MODULE__{} = a) do
base = %{
"data-anim-height-duration" => a.duration,
"data-anim-height-easing" => a.easing,
"data-anim-height-opacity-start" => a.opacity_start,
"data-anim-height-opacity-end" => a.opacity_end
}
if a.block_interaction,
do: base,
else: Map.put(base, "data-anim-height-block-interaction", "false")
end
end