# Bone Flow #034 - Radio

Version: 1.0.14  
Status: Development  
Specification: v1.0 Draft

## 概要

#034 Radio は複数候補から同時に1つだけを選択するInput UI。#033 CheckboxのON/OFF boolean責務と#035 Switchの切替責務を混在させない。

## 正式依存

- #001 Bone Core v1.0.0: Bone正規化
- #002 Bone Joint v1.1.36: Delivery Channel / WAIT FIFO / BLOCKED / Joint描画
- #017 Bone Text: #020 Label内部の文字描画
- #020 Bone Label: 各Radio itemラベルのRuntime描画
- #022 Bone Hover Border Effect v1.0.1: 選択中Radio itemのActive Border Effect描画
- #033 Checkbox v1.0.10: Runtime非依存。直近Input UIのProperty / QA構造参考のみ

## Radio value Contract

- Bone `type`: `RADIO`
- Bone `value`: items内のstring、未選択はnull
- 同時選択は最大1件
- unknown string / number / boolean / objectを拒否
- getter / Proxyを安全拒否
- OUT `value / selectedValue / bone.value` もstring/nullを維持

## Radio固有Property

- `items`: `{value,label,disabled?}[]`
- `orientation`: vertical / horizontal / vertical-fit / horizontal-fit
- `elementClickSelect`: default false
- `itemGap`: 0～64px / default 8px
- `labelGap`: 0～64px / default 8px
- `labelFontSize`: 8～56px / default 14px

## 公開動作

- getValue / getSelectedValue
- getEditingValue / getCommittedValue / getSelectedIndex
- setValue / setSelectedValue / setEditingValue
- select / clear
- commit / reset / validate
- applyBone / applyJointInput
- connectOutput / disconnectOutput / setTargetReady / clearOutputBlock

Checkbox固有 `toggle()` は持たない。

## Test URL

`http://localhost/BoneFlow/test/bone-radio.html`

このv1.0.14 ZIP作成時点ではBrowser Runtimeは未実施。ユーザーlocalhost ALL PASS前にCompleted扱いしない。

## v1.0.11 full review correction
- v1.0.11: horizontal表示で各要素幅を均等化し、3要素のLabel欠けを抑止。
- v1.0.11: group outer focus ring を除去し、Active Border Effect は各要素のみに適用。
- v1.0.4を基準に、共通Property / Preview / Parent Dependency / Label / Security / WAIT-BLOCKED / 接続イメージ / Runtime QA / Report / Completion / Installerを全項目再監査。
- normal Previewの選択肢を A / B / C に整理し、BLOCK確認専用値を通常Propertyから分離。
- `orientation` は vertical / horizontal / vertical-fit / horizontal-fit の4方式を実描画CSSとして保持。
- Parent Dependencyは親の幅・高さ100%、背景・文字色・角丸・配置へ追従し、controlにauto scrollbarを生成しない。
- #027 Input UI基準の backgroundColor / Parent Preview設定 / Active Effect色・方向・速度をPropertyへ復元。
- Active Border Effect はRadioグループ全体ではなく、選択中の各Radio要素へ適用。
- Label text は各要素とも左寄せで描画。
- `inputAlign` と親 `textAlign` がRadio rowの配置へ実際に反映されるよう修正。
- Browser Runtimeは未実施。ユーザーlocalhost確認前はDevelopment。


## v1.0.11 correction
- v1.0.11: vertical / vertical-fit で active枠が見えないケースを補正。option を内容幅基準にし、active適用を row + item-frame の両方で評価。


## v1.0.11 correction
- v1.0.11: standalone position の既定値を top-left（左上）へ修正。9方向 position をJS描画へ直接反映。


## v1.0.11 correction
- v1.0.11: position 9方向を component root だけでなく Radio option group の実描画位置へ反映。default top-left。


## v1.0.12 correction
- v1.0.12: FITの固定140px基準を廃止。横FITはRadio+Labelの実内容幅+itemGapで横詰めして折返し、縦FITは実要素高+itemGapで縦詰めして列折返し。


## v1.0.13 runtime correction
- #002 Delivery Channel呼び出しを誤った `send()` から正式な `deliver()` へ修正。
- Node test doubleも `deliver()` のみに修正し、誤APIをテスト側で追認しない。
- Overall / Report の `ALL PASS` は Smoke と Validation の両方が実行済みかつ全PASSの場合だけ成立する。
- #033参照版を正式正本 v1.0.10 に修正。
- `connectOutput()` の targetReady未指定時は #033/#002 共通契約どおり READY。非object optionsは拒否。
- Bone入力を #033 共通境界どおり #001 `BoneCore.normalize()` に通すよう復元。
- Browser Runtimeは未実施。ユーザーlocalhost確認前はDevelopment。


## v1.0.14
- Active Border Effect描画を #022 Bone Hover Border Effect v1.0.1へ委譲。
- Active判定は従来どおり「選択中の各Radio item」。group全体focusへ変更しない。
- normal / neon / spin / cross / blink の5Effectを受理。
- Radio固有のgroup / 単一選択 / FIT / Label / Security / WAIT / BLOCK / Completion契約は変更しない。
