Skip to main content

CHANGELOG.md

# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.7.3] - 2026-05-01

### Fixed

- `uk_modal`: preserve open state across LiveView patches. UIkit's runtime adds
  `uk-open`, inline `style`, and `aria-hidden` / `aria-modal` / `tabindex` to
  the modal element on open; morphdom previously stripped these on every patch,
  causing the modal to flash or disappear after a server round-trip. The Modal
  hook is now idempotent (only transitions on actual `data-show``uk-open`
  changes), and `onBeforeElUpdated` now copies these attributes from the live
  element to the incoming element for any `uk-modal`.

## [0.7.2] - 2026-04-21

### Added

- `uk_input`: add `margin` to apply UIkit's `uk-margin` spacing to generated
  wrappers for non-hidden inputs.

## [0.7.1] - 2026-04-20

### Documentation

- README: add **Agent Usage Rules** section showing how to wire
  `elixir_uikit` into the `usage_rules` package, either inlined into
  `AGENTS.md` / `CLAUDE.md` or as a dedicated agent skill.

## [0.7.0] - 2026-04-20

### Breaking

- `uk_input`, `uk_checkbox`, `uk_radio`, and `uk_range` no longer accept a `label`
  attribute. Pass label content via the `<:label>` slot instead. This enables
  arbitrary HEEx in labels (required markers, links, icons).

  Migration:

  ```diff
  - <.uk_input field={@form[:email]} label="Email" />
  + <.uk_input field={@form[:email]}>
  +   <:label>Email</:label>
  + </.uk_input>
  ```

### Changed

- `uk_table` slots replaced with composable function components.

### Added

- Configurable error translator for i18n support.
- `uk-*` prefixes allowed on any function component that accepts `rest` attributes.

### Fixed

- Form validation classes on inputs now apply correctly after JS update.

## [0.5.4]

- Version bump; prior history tracked in git log.