Skip to content

v0.1.4

Choose a tag to compare

@capy-ai capy-ai released this 14 Nov 03:14
· 179 commits to main since this release

This bumps Cipher to 0.1.4 and points the README install line and registry URL at v0.1.4. This body is the release notes.

v0.1.4 ships #5, #14, #15, #16, #17 and #18.

Breaking or behavior changes

These apply to both consumers, the Infisical v4 app and license-server-go, unless a line says otherwise.

  • Icon props take IconSource (#14). Every prop that took IconName now takes a glyph name or a Lucide component. Names still work as before. Code that types its own values as IconName before passing them in still compiles, but it can switch to IconSource to pass components.
  • MultiSelect description moves under the label (#14). The trailing slot is now meta. Callers that used description for short values such as counts should move them to meta. The app doesn't use MultiSelect. license-server-go should check its call sites.
  • Number inputs lose the browser spin buttons (#14). The arrow keys still step the value.
  • MultiStep validate no longer accepts a string (#5). It returns boolean | void | { fields?, message? }. fields puts each message on the <Field name> with that key, and anything thrown from validate or onComplete becomes a toast.error. Callers that returned a string fail typecheck and need to move to fields or message.
  • Sheet and dialog steps slide by direction (#5). They no longer morph height. Focus goes to the picked option, else the first field. The MultiStep viewport and Accordion content now pad by the focus clearance and give it back as negative margin, so focus rings at their edges are no longer clipped.
  • Sheet and Dialog open on the first form control (#17). FieldHelp and anything marked data-skip-autofocus are skipped.
  • ActivityLog shows the actor first in each row (#17). license-server-go#102 puts the actor in its summary text, so it should drop it there. total is now optional.
  • An untitled Alert gets its tone icon and actions (#17), and the PageHeader description renders a div.
  • List counts rows through context (#15). Rows inside wrapper components, fragments or sections now count toward select-all, eligibility and the empty state.
  • DataTable with pinned actions shrinks the primary column before scrolling sideways (#15). This applies when that column has no width and no wrap set.
  • FilterBar onChange only receives filters that have values (#16). A new filter stays in FilterBar's own state until its picker closes, so URL-backed filters no longer drop a new chip.
  • DateRangePicker commits on Apply only with two months or presets (#16). Then day picks and presets fill a draft that Apply commits and Cancel or Escape discard. A single month without presets still commits each pick immediately. Pass commit="immediate" or commit="apply" to choose explicitly.

New

  • MultiStep: a step can take render: ({ next }) => ... to advance on pick. Steps also take disabledReason, which blocks Continue. Field takes name, and FieldErrors is exported for forms outside MultiStep (#5, #17).
  • ErrorState: actionLabel with actionLink or onAction (#14).
  • Combobox: option group and description, plus createLabel (also on MultiSelect) (#14, #16).
  • Glyphs:
    • flask, package, sparkles, shield and infinity (#14).
    • pencil, cloud, flag, undo, pause, hourglass, alarm, activity, rocket, archive, archive-restore, arrow-right-left, receipt, credit-card, calendar-clock, chart-column, gift and file-text (#17).
  • DataTable:
    • column.wrap, column.footer (a summary row) and column.secondary (a muted second line).
    • isRowMuted.
    • rowProps with data-drop-target for drop indicators.
    • refreshing, also on List.
    • CellLink (#15).
  • DatePicker: a single-date picker with a presets rail (#16).
  • FilterBar: search-only mode, with searchValue, onSearchChange, searchLabel and searchPlaceholder (#16).
  • Select icon, FieldSet legend, description, help and actions, and help on a group Field (#16).
  • ActivityLog: hasMore, empty and per-entry badge (#17).
  • Small props: StatusText size, ChartContainer height and aspect, Button loadingLabel, Badge icon, and Text and SmallText preWrap (#17).
  • Card: badges on the title line, and selected, which uses the choice look. CardChoice makes a whole card one radio or checkbox with a visible mark (#18).
  • StatCard: a stacked metric card with label, value, icon, tone, delta and trend, note, link, plus loading and error states (#18).

Not in this release

The sortable grid and sortable DataTable rows that license-server-go asked for (INF-110) aren't built yet. They're planned for v0.1.5.