This way, pushing bold twice first removes the bold tags, then removes the tags on the second button push. For convenience. Hopefully I'm not missing any edge cases where this isn't intended behavior.
When two bbcode inputs are on the same page, they need to refer to different alpinejs components. Additionally, we can't add a name attribute here or the radio buttons from the different livewire components will be grouped together.
Form input labels rely on the :place-holder-shown css property to float the label whenever the placeholder disappears (i.e. any time there's text inside) that way a user can click outside of the form input and the label will stay floating. Unfortunately, it seems that because only `placeholder=""` is used with the placeholder attribute being empty, Chrome interprets this as no place-holder being shown even if no text has been entered in the form input, triggering the label to float automatically.
To fix this, we must add a space to every placeholder attribute (`placeholder=" "`)
BBCode preview can contain elements which can't be contained in a p tag. In these cases, browsers move the contents outside of the p tag to which they no longer get styled by the bbcode-rendered class.