Changelog for Aurora UIX

[0.1.0] - 2024-12-11

Initial Release - Aurora UIX 0.1.0 is the first stable release, providing a complete low-code CRUD UI generation framework for Elixir's Phoenix LiveView.

Requires:

  • Elixir 1.17+
  • Phoenix 1.7+
  • Phoenix LiveView 1.0+
  • Ecto 3.2+

Added

Core Features

  • Resource Metadata System (auix_resource_metadata/3)

    • Declarative resource and field configuration
    • Field-level customization: labels, placeholders, validation rules
    • Association support: belongs_to, has_many, embeds_one, embeds_many
    • Field attributes: type, precision, scale, required, readonly, hidden, disabled
    • Per-field HTML type overrides and custom rendering options
  • Layout System

    • Layout macros: edit_layout/3, show_layout/3, index_columns/3
    • Layout containers: inline/2, stacked/2, group/3, sections/3, section/3
    • Support for complex, nested layouts
    • Flexible field organization and UI composition
  • Compile-Time Code Generation

    • use Aurora.Uix macro for automatic LiveView module generation
    • Generates index, show, and edit views
    • Template generation from layout definitions
    • Zero-runtime-overhead through compile-time processing
  • View Features

    • Index Views: Pagination, sorting, filtering, selection, bulk actions
    • Show Views: Display with read-only fields, navigation
    • Edit Views: Form handling, validation, error display, real-time updates
  • Association Handling

    • One-to-many inline tables with edit/delete/add actions
    • Embeds-many collections with dynamic entry management
    • Many-to-one select fields with related data loading
  • Action System

    • Customizable actions for index, show, form, and association layouts
    • Action groups: header, footer, row, selected, filters
    • Support for add, insert, replace, remove action operations
    • Extensible action component system

UI & Theming

  • Built-in Templates

    • Basic template with Phoenix components
    • Responsive, mobile-first design
    • Light and dark theme variants
  • Core Components

    • Form inputs with validation feedback
    • Tables with responsive behavior
    • Modals for confirmations
    • Buttons with various styles
    • Navigation components
    • Icon support via Heroicons

Developer Experience

  • Internationalization (i18n)

    • Configurable Gettext backend
    • Automatic translation of UI strings
    • Support for multiple languages
  • Extensibility

    • Custom template support via Aurora.Uix.Template behaviour
    • Customizable core components
    • Field renderer overrides
    • Layout container customization
    • Theme customization
  • Documentation

    • Comprehensive guides: Overview, Getting Started, Core Concepts
    • Advanced usage documentation
    • Troubleshooting guide
    • Real-world examples

Infrastructure

  • Development Tools

  • Testing

    • UICase test helper
    • WebCase test helper
    • Fixtures and test utilities

API Highlights

  • Metadata Module Functions

    • auix_resources/0 - Retrieve all configured resources
    • auix_resource/1 - Get specific resource metadata
    • Metadata export for separation of concerns
  • Template API

    • Template behavior with required callbacks
    • Module name generation helpers
    • Field omission support
  • Action API

Known Limitations

  • Templates currently support compile-time generation only (no dynamic template creation at runtime)
  • Limited to Ecto-based schemas (other data sources require custom integration)
  • CSS themes are basic and designed for light customization
  • Some advanced Phoenix features (plugs, channels) require manual setup

Fixed

  • N/A (initial release)

Security

  • Form validations run both client-side and server-side
  • CSRF protection via Phoenix's standard mechanisms
  • No sensitive data logged or exposed in templates

Future Roadmap

Future releases may include:

  • Additional rendering components and theme options
  • Simplified template creation with better hooks for customization
  • Enhanced theme adoption and customization
  • Page navigation from within show/edit views
  • Query builder integration for advanced filtering
  • Performance optimizations for large datasets
  • GraphQL integration support