# Bone Flow #018 - Icon

Version 1.0.19 / Status: Development

## 概要
Font Awesome Solid 1,944件を利用するIcon Primitiveです。#001 Bone Coreと#002 Bone Jointを使用し、#017 Textは画面・接続イメージの参考実装としてのみ扱います。

## 表示とOUT
Icon・アイコン名・Unicodeは、プレビュー表示とOUT出力を独立してON/OFFできます。アイコンのみを表示した状態でも、アイコン名とUnicodeをOUTへ渡せます。

## 文字設定
アイコン名とUnicodeは、それぞれフォントサイズ、色、フォント種類、上下左右の表示位置、アイコンとの余白を独立設定できます。

## アニメーション
none / beat / beat-fade / bounce / fade / flip / shake / spin / spin-pulse / spin-reverse

## 接続イメージ
#017 Textで確立したBone Joint接続イメージの構成・線・凡例を変更せず継承しています。


## v1.0.9 更新
- 背景色を無色または任意色で設定可能。
- アクティブ時背景色を無色または任意色で独立設定可能。
- 合算プレビューSmoke Testの固定件数判定を廃止し、実DOM・設定反映で検証。
- 接続イメージは変更なし。

## v1.0.9 更新

- `MANIFEST.sha256` の標準形式（`SHA256 *relative/path`）をインストーラーが正しく解析するよう修正。
- 空白区切り形式とアスタリスク付きバイナリ形式の双方に対応。


## v1.0.9 表示領域設定

アイコン表示領域の幅・高さ・最小最大サイズ、枠線、形状、角丸、内側余白、配置、はみ出し、透明度、影、通常・アクティブ・無効状態を設定できます。表示領域設定はプレビュー表示とは独立してOUTへ渡すか選択できます。接続イメージの構成は変更していません。


## v1.0.9 修正

- 公開API Smoke Testの期待Versionを実装Versionと一致。
- `containerStyle` を正式なOUT項目として検査。
- 背景色・アクティブ背景色の反映検査を実装結果に一致。


## v1.0.11 ColorPicker共通化 / Completion
- #018が元から保持していた10個の単色Propertyを#040 ColorPicker v1.0.8へ委譲。
- 既存値（Icon / Background / Active Background / Border / Shadow / Active Border / Disabled Background / Disabled Border / Name / Unicode）を初期値として復元。
- #018の既存Property名・OUT構造・shadowColorのalpha付加契約は変更しない。
- #040はsolid-onlyで利用し、transparent / gradientを#018へ追加しない。
- #040正式依存として#020 Label v1.0.50 / #022 Hover Border Effect v1.0.5を使用。
- 現在の#002 Bone Joint v1.1.36を正式依存として検証。
- コンポーネント完了管理を追加し、Smoke TestとValidationの双方ALL PASS時のみCompletion可能。


## v1.0.12 Smoke Test修正
- #018既存色復元テストを、起動時既定値の保持と現在の#018 Property / #040 ColorPicker同期を分離して判定。
- ユーザーがColorPickerで色を変更した後でも、現在値が正しく同期していれば誤FAILにしない。
- 色Property、ColorPicker連携、Icon Runtime、Completionの仕様変更なし。


## v1.0.13 ColorPicker consumer修正
- #040 ColorPickerの「カスタム追加」を阻害していたConsumer host全体の `preventDefault()` を廃止。
- 旧 `input[type=color]` は値保持用 `text` inputへ切替え、Native Picker経路だけを停止。
- #040 main swatch / カスタム追加 / 既存10色 / enabled同期を維持。

## v1.0.14 ColorPicker 3形式 / 要素アンカー配置
- v1.0.12を正式修正元とし、v1.0.13のNative Picker経路分離を取り込み。
- #040 ColorPickerの Solid / Transparent / Gradient をIcon、背景、Active背景、枠、Active枠、Disabled背景、Disabled枠、アイコン名、Unicodeへ追加。
- 影色は既存 `shadowColor + alpha(66)` 契約を維持するため Solid / Transparent とし、Gradientは追加しない。
- #040の「カスタム追加」をPicker内に常時到達可能な状態で維持。
- Picker表示位置はブラウザviewportではなく、クリックしたColorPicker要素と所属Propertyカードの相対位置で決定。スクロール位置だけでは上下方向を変更しない。
- GradientはIcon/文字ではtext clip、背景ではbackground-image、枠ではborder-imageとしてPreviewへ反映。
- 既存10色の初期値、Property名、OUT構造、Completion、Font Awesome 1,944件、Joint接続イメージを維持。



## v1.0.15 #040 Caller / RETURN 再統合
- v1.0.14を正式修正元として、Consumer内へ#040 DOMを埋め込む旧方式を廃止。
- #018が所有するのは各色Propertyの□トリガーのみ。クリック時に#040 ColorPicker v1.0.15 `attachCaller()` を呼び、#040所有Overlayを `document.body` 直下へ表示する。
- 選択結果は#040 `onReturn(output)`から#018既存Propertyへ戻し、既存10色・Icon Runtime・Completion契約を維持する。
- Solid / Transparent / Gradient / カスタム追加を維持。影色は既存alpha契約のためSolid / Transparentのみ。
- Tooltip / Overlay位置計算は#040責務。#018は#040内部DOM / CSS / Panel位置へ依存しない。


## v1.0.16 Runtime QA correction

- #040 Caller tooltip Smoke Testを#040 v1.0.15正式テストと同じMouseEvent実表示確認へ修正。
- Tooltip DOMのbody直下配置、hover/focus表示、mouseleave/blur非表示、表示文字列のcontroller state一致を確認する。
- BoneIcon Runtime / ColorPicker Caller連携 / 10色Property / Completion仕様は変更しない。



## v1.0.19 Runtime Property Schema / #048 Table integration
- #054 Display Timeline の Runtime-owned Property Schema 方式を参照し、`BoneIcon.getPropertySchema()` を正式Public APIへ追加。
- #018自身がProperty定義とRuntime Defaultを公開し、#048 Table側へ#018 Property一覧を複製しない。
- SchemaのDefaultは `BoneIcon.normalize({})` から取得するため、Runtime Defaultと別管理しない。
- Nested Propertyは `visible.icon` / `containerStyle.width` のようなdot pathと `path` 配列を公開する。
- #048 Table本体、#054 Display Timeline本体は変更しない。
- HTML Functional Classは#017 Textと同じ考え方で、一般利用Class `bf-icon` 1件とJavaScript Public APIを分離する。

## v1.0.18 Dependency compatibility correction
- Dependency判定を完全一致から Minimum Version + Public API / Contract compatibility へ変更。
- 同一 major.minor で最低patch以上は互換として扱い、下位patchは `Version Below Minimum`、major/minor不一致は `Version Incompatible` とする。
- #040 Caller初期化とInstallerも同じ判定へ統一。
- BoneIcon Runtime / ColorPicker RETURN / 10色Property / Font Awesome 1,944件 / Joint / Completion仕様は変更しない。
