Bowl of Fruit - General Update Pattern Special Cases
This example demonstrates the general update pattern with special cases: exiting elements shrink to zero, entering elements grow from zero, and existing elements transition smoothly to new positions. Animated fruit (apples and lemons) move within a bowl as items are eaten or replaced over time. The code uses D3 v5 with `selection.data()`, `selection.enter()`, `merge()`, `exit()`, and chained `transition().duration()` calls on SVG circles, text, and rectangles. Updates trigger via JavaScript `setTimeout` events that modify a fruit array.