Changelog
View Sourcev0.9.0 (2026-02-03)
Bugfixes
- Fix association between checkbox/label for multi-checkboxes filter (#103)
v0.9.0-beta.6 (2026-01-28)
Features
- Add
sort_modeattribute to switch between additive (default) and exclusive sorting (#98)
Bugfixes
- Fix
filter_optionsbeing added multiple times and at the incorrect level (#100) - Fix missing localization for filter placeholders and page size selector (#92)
- Fix styling of filter container in DaisyUI theme (#101)
v0.9.0-beta.5 (2026-01-27)
Features
- Add bulk selection and actions via
selectableattribute andbulk_actionslot
Bugfixes
- Add
for/idattributes to filter labels and inputs for accessibility (#91) - Fix
match_modeoption being ignored for multi-select filters on relationship fields
v0.9.0-beta.4 (2026-01-26)
Features
- Add i18n support for "Filters" and "Sort by:" labels
Improvements
- Simplify theme DSL - flat
set :property, "value"syntax replacescomponentblocks- Run
mix cinder.migrate.theme MyApp.CustomThemeto automatically migrate custom themes
- Run
- Improve checkbox and radio button styling across all themes for consistent appearance with
@tailwindcss/formsplugin - Update Flowbite theme to use Flowbite design token classes for form inputs
Bugfixes
- Always include
gridCSS class when usinggridcollection layout - Fix DaisyUI theme missing padding on grid/list items by adding
card-bodyclass - Fix select/multi-select filters not using column label for default prompt
- Fix checkbox/boolean filter layout causing uneven wrapping across all themes
- Fix page size dropdown toggling all tables when multiple tables exist on same page (#89)
v0.9.0-beta.3 (2026-01-21)
Features
- Add global default page size configuration via
config :cinder, default_page_size: ...(#84) - Add in-memory item updates for efficient PubSub-driven changes without re-querying the entire table (#77)
update_item/4andupdate_items/4for direct updatesupdate_if_visible/4andupdate_items_if_visible/4for lazy loading patterns
Bug fixes
- Fix sort indicators not displaying for embedded field default sorts (#83)
- Raise helpful error for invalid filter types instead of silently falling back to text filter
- Fix custom
fnattribute on filter-only slots not being passed to QueryBuilder - Pass the full provided scope to
Ash.readwhen running queries (#71) - Fix table reloading data unnecessarily when parent LiveView re-renders with unchanged state
v0.9.0-beta.2 (2025-12-16)
Features
- Add keyset pagination support via
pagination="keyset"for better performance on large datasets (#15) - Allow filters for non-existent fields when a custom
filter_fnis attached - Add basic
autocompletefilter type, for searchable dropdowns with large preloaded option lists
v0.9.0-beta.1 (2025-12-15)
Features
- Add unified
Cinder.collectioncomponent supporting table, list, and grid layouts (#9)
Deprecations
Cinder.Table.tableis deprecated in favor ofCinder.collectionCinder.Table.UrlSyncandCinder.Table.Refreshare deprecated in favor ofCinder.UrlSyncandCinder.Refresh
See the Upgrading Guide for migration instructions.
v0.8.1 (2025-12-04)
Bug fixes
- Fix page size resetting to default when parent LiveView re-renders - user-selected page size now persists across parent state changes
- Fix filters section not showing automatically when search is enabled but no filterable columns exist (#70)
v0.8.0 (2025-11-08)
Features
- Add i18n support with gettext (#53)
Bug fixes
- Fix URL sync overwriting existing query parameters instead of merging them - custom query parameters (like
?tab=overview) are now preserved when table state changes while allowing filters to be properly cleared (#67) - Fix custom theme extension with
extendsby usingCode.ensure_loaded/1to load modules before checking forresolve_theme/0(#64) - Use existing
filter_placeholder_classtheme key for selects/multiselects when no value is selected
v0.7.2 (2025-09-30)
Bug fixes
- Fix date range filters not converting end dates to end-of-day for datetime fields, causing records on the end date to be excluded
- Fix filter forms using browser submit when the enter key is pressed (#65)
v0.7.1 (2025-09-28)
Bug fixes
- Fix filter-only slots not receiving
optionsattribute, causing select filters to show "No options available" - Ensure that field names have special characters stripped before being used in HTML attributes (#62)
- Remove double-processing of select/multi-select options and ensure that falsy values are still processed (#63)
v0.7.0 (2025-09-24)
Features
- Add filter-only slots for filtering on fields without displaying them as columns (#34)
Changes
- Remove "All" option from boolean filters - this is equivalent to clearing the filter
- Use labels when generating options from
Ash.Type.Enummodules, instead of descriptions (#35)
Bug fixes
- Fix checkbox filters in filter-only slots not applying on first click when URL sync is enabled
- Fix sorting regression where sort-only columns were not sortable via URL parameters
- Fix aggregate field type inference using wrong property name (aggregates now correctly infer as
:number_rangeinstead of:text) - Fix
show_filtersoption not being respected when rendering table (#56) - Fix search parameter not being stored in the socket after being decoded (#54)
v0.6.1 (2025-09-05)
Features
- Add custom prompt support for multi-select filters
Bug fixes
- Fix filter type inference for relationship attributes
- Fix unified filter options to default to auto-inference when no type is specified
- Fix atoms in Enum modules generating missing labels in filters (#52)
- Fix embedded field sorting using calc expressions (#51)
- Don't empty data when refreshing tables, to prevent flickering (#48)
v0.6.0 (2025-08-26)
Features
- Allow custom filter functions to be defined for a column
- Allow custom sort cycles to be defined for a column
- Allow searching multiple fields in a table at once, with a new
searchconfig option on tables and columns (#40)
Bug fixes
- Fix URL sync double processing causing duplicate data loads on sort/filter events
- Fix table refresh error when page_size on a table is set to a number (not a map of data) (#45)
- Fix table refresh resetting current sort/search state
- Add warning when table has pagination configured but Ash action lacks pagination support
v0.5.5 (2025-08-14)
Bug fixes
- Fix field validation for embedded fields using underscore notation (e.g.,
profile__first_name)
v0.5.4 (2025-08-11)
Features
- Support configurable page sizes with dropdown selector
- Use
page_size={25}for fixed page sizes (existing behaviour), orpage_size={[default: 25, options: [10, 25, 50, 100]]}for user-selectable page sizes
- Use
- Support unified filter API with options in single parameter (
filter={[type: :select, options: [...]]})- Legacy
filter_optionsparameter logs a deprecation warning, and will be removed in v1.0
- Legacy
Chores
- Support string format for filter types (e.g.,
filter="select"in addition tofilter={:select})
v0.5.3 (2025-08-07)
Bug fixes
- Fix
querynot preserving filters/sorts when usingAsh.Query.filter(Resource, ...)pattern (#36) - Ensure query tenant context is properly recognized
v0.5.2 (2025-08-06)
Bug fixes
- Log warnings about invalid column config in all environments, at the
infolog level
v0.5.1 (2025-08-03)
Features
- Allow
🔍 Filterstext to be customized via newfilters_labeltable assign (#26) - Set up the "modern" theme by default (#27)
Bug fixes
- Merge provided
filter_optionswith default options for a column, instead of overwriting them - Fix slight input jumping issues across all themes and duplicate select arrows from DaisyUI theme
- Load all records for actions without pagination configured, showing a performance warning message
- Fix crashes when attempting to sort or filter by invalid fields, such as in-memory calculations or non-existent attributes (#32)
Chores
- Replace native select boxes with custom HTML implementation for better customizability
- Add
cinderto theimport_depslist for custom formatting, on installation - Use the provided
empty_messageandloading_messagewhen rendering the table (#25)
v0.5.0 (2025-07-26)
Features
- Add
match_modeoption to multi-select and multi-checkboxes filters for array fields
Bug fixes
- Fix compilation issue caused by other libraries redefining the
uuidshortcode (#17) - Cast all string-like fields to string before using them in queries. (#8)
- Filters for array fields should be
filter_val in field_name, notfield_name in filter_val, eg."suspense" in tags
v0.4.0 (2025-06-27)
Features
- Support working with embedded attributes via a new
__notation - Add action column support - columns can now omit the
fieldattribute to create action columns with buttons, links, and other interactive elements - Add
Cinder.Table.Refreshto refresh table data while maintaining filters, sorting, and pagination state
Bug fixes
- Fix multiselect dropdowns not being visible outside the filter container
- Allow table sorting to override predefined sorts on a provided query
v0.3.0 (2025-06-23)
Features
- Add
row_clickoption forCinder.Table.table, to make entire rows clickable - Support
scopeandtenantoptions toCinder.Table.tabletenantcan also be passed in as part of thequery_optsoption
- Support
timeout,authorize?, andmax_concurrencyoptions inquery_opts
Bug fixes
- Tweaked layout of filters to avoid overlapping input content
v0.2.1 (2025-06-19)
Features
- Default to
date_rangefields for all datetime-related types
Bug fixes
- Prevent crashing when an error occurs while loading table data - the error will be properly logged instead
- Fix errors when attempting to filter on
NaiveDatetimeattribute
v0.2.0 (2025-06-18)
Features
- Allow a default theme to be specified for all tables, in application config (eg.
config :cinder, default_theme: "dark") - Reorder arguments to
UrlSync.handle_paramsto be consistent with LiveView'shandle_params- Replace
Cinder.Table.UrlSync.handle_params(socket, params, url)withCinder.Table.UrlSync.handle_params(params, uri, socket)
- Replace
v0.1.1 (2025-06-16)
Bug fixes
- Fix bug where invalid sorts would sometimes raise
(Protocol.UndefinedError) protocol String.Chars not implemented for type Ash.Query (a struct) - Fix incorrect environment specification for
sourcererandigniterdependencies - these should only ever be installed indevandtest - Fix styling of table row borders in
flowbitetheme (light mode)
v0.1.0 (2025-06-15)
- Initial release