# Bone Flow #036 Select Specification v1.1

## Version
1.1.22

## Formal rules

1. v1.0.33以前の#036実装コードを修正ベースにしない。
2. DropdownはComponent外overlay。開閉でComponent寸法を変えない。
3. 親項目はグループ表示・選択不可。子項目のみ選択可能。階層は1階層。
4. `null / "" / itemsに存在しないvalue` はValidation Error / Security BLOCKED。未選択optionとrequired Propertyは作らない。
5. #019 Image v1.0.64 / #020 Label / #002 Joint v1.1.36へ責務委譲する。枠Effect描画は #022 Bone Hover Border Effect v1.0.1へ委譲する。
6. 枠EffectはDropdown内の各子項目へのMouse Over時のみ、その項目で発火し、Mouse Outで停止する。normal / neon / spin / cross / blink、色、方向、速度を持つ。spinは外周幅・発光量を調整可能とする。項目ごとの独立Mouse Over Effect Propertyは持たない。
7. Test UIの#019 Image設定はSelect Preview直下に置き、対象子項目を選択可能とする。Alpha固定にしない。
8. Property表示は日本語 / English切替を持つ。
9. 親OFFは単体 width / height / 9方向 / FIT。親ONは単体設定を描画へ使用せず、実際の親要素を参照しparentFitを使用可能。parentSnap禁止。
10. OUTはvalue、URL OUT有効時はURLも含む。
11. 接続イメージは正常 / IN型不一致 / OUT型不一致の3ケースのみ。
12. Browser Runtime未実行をALL PASSとしない。

## v1.1.6 correction

- `normal` は静的な通常枠のみ。conic-gradient発光を含めない。
- `neon` はv1.1.3の移動外周線方式を維持する。
- `spin` はv1.1.1の外周発光構造と同じ `conic-gradient + rotate()` を使用する。既定は外周幅2px / 発光量12px、`spinWidth` 1〜24px、`spinGlow` 0〜40px。
- v1.1.5で`normal`に混入した中央発光を追加Effect `cross` として分離する。表示名は日本語「クロス」/ English「Cross」。
- `cross` は既存 `normal / neon / spin / blink` を置換しない。Effect登録は `normal / neon / spin / cross / blink`。
- 発火条件は各子項目のMouse Overのみ。Mouse Outで停止する。

## v1.1.7 correction

- Dropdown内の各子項目のMouse Over Border Effect描画を #022 Bone Hover Border Effect v1.0.1へ委譲する。
- #036は各子項目へ `trigger: mouseover` と `normal / neon / spin / cross / blink`、色、方向、速度、spinWidth、spinGlowを渡す。
- Mouse Out停止は#022のmouseover契約を使用する。selected / value / focusを発火条件へ変更しない。
- #036内の独自Effect描画DOM/CSSは使用しない。
- Dropdown / Items / #019 / #020 / Validation / Security / #002 WAIT・BLOCKED / 接続イメージ3ケース / Completionは変更しない。

## v1.1.8 correction

- `#019 Image設定` はItems各子項目と直接bindingする。Items行の設定操作で対象子項目を特定し、その子項目の `image` objectを正式#019 Image Editorへ渡す。
- #019 Editorのcommit RETURNはbindingした同一子項目の `image` へ完全objectとして保存し、他の子項目へ波及させない。
- Editor本体の配置はSelect Preview直下のままとし、各Items行へEditorを複製しない。

## v1.1.9 correction

- #019 Image設定はItem単位bindingを維持し、`BoneImage.createEditor()` を「基本」として使用し、「その他のアイコン設定」は #019 v1.0.64 の正式 `bone-image.html` 内 `icon-property-section`（画像アイコン表示設定）を直接利用する。#036独自のProperty入力群は作らず、同じ対象Item.imageへ反映する。
- 変更確定はbinding中の同一Itemの `image` objectだけへ保存し、他Itemへ波及させない。


## v1.1.11 correction

- #020 Labelは #033/#035 で確認済みの共通Input UI契約と同じ `labelGap / labelFontSize` を用い、描画は #020 Bone Label の正式APIへ委譲する。
- #019 Image設定の見出しはユーザー指定どおり `基本 / その他のアイコン設定` とする。内容は #019 v1.0.64 の正式 `createEditor()` と `bone-image.html` 内 `icon-property-section` を利用し、独自Image TYPEや独自Icon設定項目は追加しない。
- 初期サンプルIconは #019 `BoneImage.normalizeValue()` で生成した正式IMAGE valueのみを使用する。

## v1.1.16 correction

- v1.1.11の `BoneImage.createEditor()` と別iframe sectionを組み合わせる構成は不採用とする。
- Select Preview直下のItem Image Editorは、#019 Bone Image v1.0.64 の正式 `bone-image.html` のProperty UI実体を1つのiframeで使用する。#036側でImage/Icon用Property入力群を再構築しない。
- 正式#019 Property UI内の実グループを、ユーザー指定の表示名 `基本` / `その他のアイコン設定` として表示する。後者は実 `icon-property-section` を使用し、省略・別名化しない。
- v1.1.12でImage Editorを600pxに閉じ込めていた内側スクロールを廃止し、正式#019 Property UIの全高をSelect Preview直下へ展開する。
- `data-select-019-property-panel` の属性名を高さ計算側と一致させ、`基本` の後に存在する実 `icon-property-section` が画面上まで到達することを保証する。
- `icon-picker-section` は#019正式ページのまま保持し、そこから #018 Bone Icon 正式 `bone-icon.html` へ委譲する。#036独自Font Awesome Pickerは作らない。
- #019正式UIの変更確定は、現在binding中の同一子Itemの `image` にだけRETURNして保存し、他Itemへ波及させない。
- Browser Runtimeで実表示・操作確認されるまでは、この修正をCompleted扱いしない。


## v1.1.16 Group icon binding
- 親項目（グループ名）の行に `アイコン設定` を追加する。
- 親項目も `image` を保持し、#019 Bone Image v1.0.64 → #018 Bone Icon の正式経路へ委譲する。
- アイコン選択UIは右側の #019 Image設定領域を使用し、#036独自Pickerは作らない。
- 選択した親項目iconは開いたSelectのグループ名へ表示する。


## v1.1.16 選択アイコン名表示

Items編集UIでは、各グループおよび各子項目のImage/Icon設定ボタンに、現在保存されている選択アイコン名を表示する。#019/#018で確定後は同じ行と対象項目選択へ即時反映する。未設定は「未設定」と表示する。

## v1.1.18 #018 Picker draft selection bridge

- #018正式Pickerのアイコンクリック後、#019が未確定 `image-source / icon-name` を登録したタイミングを#036へbridgeする。
- アクティブな親グループ／子項目の「選択アイコン」表示と対象項目selectは、未確定選択中も即時更新する。
- `item.image` の正式保存とSelect実表示更新は#019正式「変更を確定」commit時のみ行う。


## v1.1.18 group/item icon live preview bridge
- #018 Pickerで選択した未確定アイコンを、対象グループ/子項目のSelect実描画へ即時プレビューする。
- #019の変更確定で正式保存する。
- Editor破棄/対象切替で未確定値は最後の確定値へ戻す。


## v1.1.19 Tree hierarchy display

- 親グループと子項目は1階層のまま、表示だけをツリービュー風に明確化する。
- Items編集UIの子項目は親グループより深くインデントし、既存の縦線・枝線を使用する。
- Dropdownの子項目もグループ見出しより深くインデントする。
- Item構造、選択可否、#019/#018委譲、#022 Effect、Security、WAIT/BLOCK、OUTは変更しない。


## v1.1.21 QA / Image accordion correction

- #019正式Imageプレビューは表示を維持し、その直下のProperty summaryを `Imageプレビュー プロパティ` のアコーディオンへ格納する。初期状態は閉じる。
- #019正式 `icon-picker-section` は `#018 Bone Icon` アコーディオンへ格納し、初期状態は開く。ICON / `018-icon-fontawesome` 時は#018正式Picker本体も初期表示する。
- 接続イメージは3ケースを維持し、IN / OUT型不一致とも #002 Bone Joint正式 `drawCompatibilityMarker()` を使用する。
- Smoke Test / Validation実行時のプログラム操作でページ位置を移動させない。FAIL時に `OK` を表示しない。
- 未確定Image/Icon draftは実表示へプレビューしてよいが、commitせずEditorを破棄した場合は直前の確定値（未設定ならnull）へ戻す。
- ユーザーlocalhost Browser Runtime確認前はCompleted扱いにしない。


## v1.1.22 compact Image editor / formal report appearance
- Collapsed #019 accordions reclaim layout height; the formal iframe follows visible content height.
- #018 Bone Icon starts open and the formal picker viewport is enlarged for icon selection.
- Smoke Test / Validation Report and component completion management use the established Bone Flow report/completion visual structure without changing their runtime contracts.
