I've created a composite component called ResizableTextArea.
The parent is an extended class of Canvas called ResizableCanvas.
The child is an extended class of TextArea called myTextArea.

In myTextArea, there's an update function that makes the
textarea change it's height based on explicit height (how many
lines it actually has). when you add text, the height expands for
the new text. When you delete, the textarea's height shrinks to
contain the text. Beautiful.

Now, the parent, ResizeableCanvas, has a button that let's me
drag the width. The child's width is set to 100% of parent so it
resizes along with it. However, no matter what I try, when I resize
the parent canvas, the child textarea will not update its height.