I was looking into ACF Composer and Poet but it seems to include a lot more than I was needing. I ended up using render_callback instead and echoed the \Roots\view function to use the blade template in my block. Hopefully this helps future googlers.
class HeroHome
{
public function __construct()
{
add_action('acf/init', [$this, 'init']);
}
public function init()
{
acf_register_block_type(array(
'name' => 'badegg/hero-home',
'title' => __('Hero Home'),
'description' => __('Hero Banner for the home page'),
'render_callback' => [ $this, 'render'],
'category' => 'layout',
));
}
public function render($args = [])
{
$fields = [
'heading',
'blurb',
'links',
'type',
'colour',
'opacity',
'image',
'video',
];
foreach($fields as $field):
$args[$field] = get_field($field);
endforeach;
echo \Roots\view('blocks.hero-home', $args)->render();
}
}