• v0.18.0 48d1bb2a54

    v0.18.0 Stable

    pienter-release-bot released this 2026-09-16 00:00:32 +00:00 | 119 commits to main since this release

    Changed

    • NumberField takes steppers (default true); false renders a plain
      number input without the +/− column.

    Fixed

    • Checkbox, RadioGroup and Switch inputs are their declared em size
      again. The base input, textarea, select rule padded them by --space-s,
      which inflated a 1.15em checkbox to 35px; all three reset padding to 0.

    Added

    • FilterCheckbox, FilterSelect, FilterMultiSelect and FilterRange
      (@[secure]/ui/components/Filter*.vue), the filter controls an index
      definition declares. Each binds to the index that owns the query — the
      state Index provides to its filters slot, the one a definition provides
      with provideIndexQuery, or an explicit state prop — and reads and
      writes only its own filter names; mounted without a state it warns once
      and does nothing. The checkbox writes 'true' or deletes; the select
      prepends an emptyLabel option that deletes; the multi-select is a
      fieldset of checkboxes whose legend reads Label (n) with a Clear while
      n > 0, optional per-option counts, an optional client-side search, and
      values joined on the comma convention; the range is two NumberFields
      without steppers writing <name>_min and <name>_max on change, each
      cleared on its own.
      injectIndexQuery() joins the composable exports for a control that needs
      the provided state without throwing when there is none.
    Downloads