Mario Alberto Chávez
@mario_chavez
Just shipped Maquina Components v0.4.0 — focused on Turbo Drive compatibility and fixing a subtle Rails partial rendering bug. If you're building with Hotwire's morph mode, you've probably hit the pain of client-side state getting clobbered by server renders. The sidebar component now handles this properly: → Deterministic IDs (sidebar-left / sidebar-right) so idiomorph can match elements across renders → Cookie state is the source of truth — a turbo:before-morph-element listener prevents stale server values from overwriting it → No more layout shift when Stimulus transitions between mobile and desktop modes I also found that yield within a Rails partial silently renders the entire page when no explicit block is provided. This is a known Rails edge case that's easy to miss. We patched 9 partials (card, alert, toast, combobox) to use an explicit content: parameter instead. It's a breaking change, but the migration is straightforward — swap do...end blocks for content: capture { ... }. Full release notes and migration guide: https://t.co/R8XwAnz3cs maquina_components is an open-source Rails UI library — server-rendered ERB partials styled with Tailwind CSS v4 and data attributes, inspired by shadcn/ui. No React, no build step. @maquinaapp #RubyOnRails #OpenSource #Hotwire