Skip to content

v1.3.1

Choose a tag to compare

@ivanvoitovych ivanvoitovych released this 22 Sep 18:01
· 3 commits to main since this release

v1.3.1

Folder-shaped UI: a tree beside the table, a trail above it, bulk selection, drag and drop.

New components

  • SearchInput - icon, clear button, Escape to clear, optional debounce so a server-backed
    list is not re-fetched on every keystroke.
  • Breadcrumb - ancestors are buttons emitting select, the last item is plain text; a deep
    trail collapses its middle below 920px.
  • TreeView - selectable, collapsible, keyboard-operable (WAI-ARIA tree). Flat TreeNode list
    in tree order, actions and edit slots per row, disabledKeys, optional drag and drop.
  • TreePicker - a button opening a search box above a TreeView, for "move into...". Search
    matches a name or a path (campaigns/q4, leading / anchors to the top level).

DataTable

  • selectable: checkbox per row, select-all, and a bar for the count, your own actions
    (selection slot) and Clear. Emits selectionChange; the selection drops whenever the rows
    change, so an action can never reach a row you can no longer see.
  • sticky: the toolbar, the head slot and the column headers stay in view (from 920px).
  • pageSizes: a rows-per-page select beside the pager, emitting pageSize.
  • draggableRows: rowDragStart / rowDragEnd; what a drop means is the page's business.
  • The toolbar's search is now a debounced SearchInput.

SelectInput

Keyboard support as a combobox over a listbox: arrows move, Home/End jump, a letter jumps to the
next matching option, Enter/Space choose, Escape closes. Focus stays on the field.

Smaller things

  • DropdownMenu takes text beside the icon; a long menu scrolls instead of running off screen.
  • DateRangePicker keeps focus on the day you clicked.
  • The inline JavaScript moved to PHP through DomHelper and ClientTimer.

Fixes

  • Removing a toast or modal left an object where an array was expected: the next one threw
    "not iterable".
  • A DataTable given no pageSize built its filter with page size 0.
  • "Select none" left hand-ticked rows ticked: checked is only an attribute.

Upgrading

  • A paged DataTable shows rows-per-page by default: pageSizes="{[]}" hides it, and it only
    reports the choice - handle (pageSize) to act on it.

  • The toolbar moved inside a new .data-table-head wrapper.

  • SelectInput's field is role="combobox" with tabindex="0" now, not role="button". Props
    unchanged.

    Full Changelog: v1.2.0...v1.3.1