/** * Recursively search for blocks by name within a nested block structure. * * @param {Array} blocks - Array of blocks to search within. * @param {string} blockName - The block name to search for. * @returns {Array} - Array of blocks that match the specified name. */ function findNestedBlocksByName(blocks, blockName) { let matchedBlocks = []; blocks.forEach(block => { if (block.name === blockName) { matchedBlocks.push(block); } // If the block has innerBlocks, recursively search within them if (block.innerBlocks && block.innerBlocks.length > 0) { matchedBlocks = matchedBlocks.concat(findNestedBlocksByName(block.innerBlocks, blockName)); } }); return matchedBlocks; }