Features:
- Preset system: PresetStrip with tabs/buttons/menu display modes, save/overwrite/rename/delete
- Draggable presets between zones with within-zone reordering
- Presets toggle (eye icon) in builder inputs sidebar
- LoadImage/LoadVideo drop zones with image/video preview in app mode
- Persistent mask editor button below image preview
- Default run controls in bottom-right zone per template
- Default preset strip in top-right zone per template
- Zone align toggle with smooth 300ms rotation animation
- Reka UI Tooltip component with Storybook story
- Welcome screen when no inputs/outputs selected
Fixes:
- Widget deduplication — render each node once per zone
- Zone overflow scrolling with full rounded borders
- Resize handle clamping at MIN_FR=0.25
- Toast alert on queue failure (was silent console.error)
- i18n for all tooltips and labels
- Float +/- buttons work on all value ranges
- Improved drag sensitivity for float widgets
- data-testid shims for E2E backward compatibility
- E2E tests updated for zone-based layout
- Removed unused handleDragDrop/widgetListRef from LinearControls
- Buttons are marked as `touch-manipulation` so double-tapping on them
doesn't initiate a zoom.
- Move scrubable inputs to usePointerSwipe
- Strangely, swipe direction was inverted on mobile. This solves the
issue and simplifies code
- Moves event handlers into the scrubbable input component
- Make the slightly bigger buttons only apply when on mobile.
- Updates the workflows dropdown to have a check by the activeWorkflow
and truncate workflow names
- Displays dropzones (for the image preview) on mobile, but disables the
prompt to drag and drop an image if none is selected.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9686-Mobile-input-tweaks-31f6d73d3650811d9025d0cd1ac58534)
by [Unito](https://www.unito.io)
## Summary
Enable `better-tailwindcss/enforce-consistent-class-order` lint rule and
auto-fix all 1027 violations across 263 files. Stacked on #9427.
## Changes
- **What**: Sort Tailwind classes into consistent order via `eslint
--fix`
- Enable `enforce-consistent-class-order` as `'error'` in eslint config
- Purely cosmetic reordering — no behavioral or visual changes
## Review Focus
Mechanical auto-fix PR — all changes are class reordering only. This is
the largest diff but lowest risk since it changes no class names, only
their order.
**Stack:** #9417 → #9427 → **this PR**
Fixes#9300 (partial — 3 of 3 rules)
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9428-fix-enable-enforce-consistent-class-order-tailwind-lint-rule-31a6d73d3650811c9065f5178ba3e724)
by [Unito](https://www.unito.io)