v0.20.0
Latest release27 October 2026
Icons move into their own addon with a cached sprite, visitor preferences are renamed to options, and Proc::run() runs child processes for the whole core.
Added
- The
iconsaddon draws Lucide icons with{icon('name', 'class')}as a<use>of one cached sprite at/icons/sprite;inline: truereturns the SVG itself. A site adds or overrides an icon atsite/views/@icons/{name}.svg. Proc::run($command, $cwd, $timeout, $input, $env)runs a command without a shell and returns aProcResult.Str::isDigits(),Str::base64(),Arr::random(),F::readLink(),Dt::microtime(),Res::svg()andRes::onShutdown().Cookie::pick()andCookie::choose()read and set a cookie limited to a list of allowed values.- The
option()andediting()template functions. - The
codefield type takes athemeoption, andhighlight()takes a$themeargument. - Repeater and stack rows have a drag handle, and reordering a list triggers autosave.
Changed
Hx::navigate()isHx::redirect().PrefsisOptions:$app->prefsis$app->options, theprefsconfig key isoptions, cookies areoption_{key}instead ofpref_{key}, and the view is@phlat/options.GitResultisProcResult.- The
code.themeconfig key isfieldtype.code.theme. - Icons moved from
phlat/icons/into theiconsaddon, mounted aticons. Runphlat addons:mount iconson an existing site.
Fixed
- Editing a nested list field no longer re-renders the top-level field.
- A collapsed
uidropdown menu no longer catches clicks.
Comments
No comments yet. Be the first!
Loading form…