Bowl of Fruit - General Upate Pattern
This example demonstrates the D3 general update pattern for animated data changes, using SVG circles to represent fruits in a bowl. It shows how entering, updating, and exiting elements are handled with smooth transitions. The code uses `selectAll('circle')`, `.data()`, `.enter()`, `.merge()`, and `.exit()` to manage the lifecycle, animating radius and fill with `transition().duration(1000)`. Data mutations like `fruits.pop()`, type changes, and filtering trigger renders that shift positions and colors via ordinal color and radius scales.