====== Vue.js 3.x RadioForm コンポーネント ======
===== 要求 =====
Radio タグのエラーメッセージ表示付きコンポーネント 
===== コード =====
import { computed } from 'https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.2/vue.esm-browser.js';
import { getWrapClass, generalizeOptions } from 'https://wws.jp/_export/code/vuejs/vue3/form_utils?codeblock=0';
const RadioForm = {
  template: `
    
===== Props =====
^ Property                   ^ Type    ^ Default  ^ Description                                                                                                                                                                                                                      ^
| **options**                | Array   | []       | select タグの選択肢 option を指定\\ { title: 表示名, value: 値 } 形式のオブジェクトを要素とする配列\\ または、要素に "title" プロパティが存在しない場合、単に値の配列として { title: 値, value: 値 } の配列に自動的に変換される  |
| **value**                  | String  |          | v-model プロパティとして value を持つ |
| **controlWrapperClasses**  | Array   | []       | select を囲う div タグに反映するクラス |
| **controlWrapperStyles**   | Object  | {}       | select を囲う div タグに反映するスタイル |
| **controlClasses**         | Array   | []       | 入力コントロールに反映するクラス |
| **controlStyles**          | Object  | {}       | 入力コントロールに反映するスタイル |
| **optionClasses**          | Array   | []       | 選択肢に反映するクラス |
| **optionStyles**           | Object  | {}       | 選択肢に反映するスタイル |
| **messageWrapperClasses**  | Array   | []       | エラーメッセージを囲う div タグに反映するクラス |
| **errors**                 | Array   | []       | エラーメッセージの配列 |
| **controlErrorClass**      | String  | 'has-error' | コントロールに反映するエラークラス |
| **messageErrorClass**      | String  | 'text-danger' | エラーメッセージに反映するエラークラス |
===== Events =====
^ Event             ^ Value         ^
| **update:value**  | 選択された値  |
===== Demo =====