Repository navigation
v0.8.0
Upgrading from 0.7
Everything else in 0.8 is additive. These changes need edits in an app built on 0.7:
- A named
lc_toggle_grouprenders native radios. Before:lc_toggle_group(name:)rendered radio
buttons, a hidden input and thelc-selectioncontroller. After: each item is alabelaround an
input type=radiowith that name, so listen for the inputs'changeinstead oflc-selection:change, and
mark the selected item withchecked:or the group'svalue:instead ofselected:. A group without
name:keeps the radio buttons andlc-selection:change; it no longer has aninputtarget. lc_sheet_datais gone. Before:tag.dialog data: lc_sheet_data({ controller: "picker" }, detents: "large").
After:lc_sheet tag: :dialog, detents: "large", data: { controller: "picker" }.lc_sheetalso renders
non-dialog sheets, so drop any hand-writtendata-controller="lc-sheet"and handle element too.- The
lc-confirm-dialogcontroller is gone. Before: a pre-rendered confirm<dialog>wired to
lc-confirm-dialog. After: renderlc_confirm_sheetonce in the layout and putdata-turbo-confirmon
the form, withdata-turbo-confirm-description,data-turbo-confirm-acceptand
data-turbo-confirm-tonefor its description, label and tone. - A modal
lc_dialogis 32rem wide on desktop. Before:min(92vw, 31rem). After:size: :md,
min(32rem, 100vw - 2rem). Passsize: :sm(24rem) for a narrower dialog, or set--lc-dialog-width. lc_dialogputs your content in a body slot. Before: the block rendered straight after the header
inside[data-slot=dialog-content]. After: it renders inside[data-slot=dialog-body], which scrolls on
desktop, and the close button sits in[data-slot=dialog-actions]. Update CSS that selects children of
dialog-content.- A swiped-away popover sheet hides itself. Before:
lc-sheet:dismissonly notified listeners on a
non-dialog sheet. After: an open[popover]sheet hides unless a listener callspreventDefault(). - An unpadded
lc_cardno longer gaps its children. Before:lc_card(padding: :none)stacked its
children--lc-insetapart. After: they meet edge to edge, as rows and empty states in an unpadded card
expect. Passclass: "gap-inset"to keep the old spacing. lc_text(size: :label)is semibold. Before: weight 500. After: 600, the same as a field label, so
one label role serves both. Addclass: "font-medium"where the lighter weight was intended.