Generating a grid of hex tiles, spiraling out clockwise from a center point

I need to generate and plot a grid of hexagons from an arbitrarily sized list of values. The grid should start from some center 0,0 and grow outwards clockwise, each ring starting from top/top-center of the previous one. To explain better, an animation of expected outputs for list sizes 1 to 19.

enter image description here

The closest I came to a solution was from the response to this question, but in that example the input is fixed to 7 pre-generated coordinates - I need to generate them dynamically.