# Bone Flow #026 - TimePicker

Version: 1.0.9  
Status: Development

## Responsibility

#026 TimePicker is the common time-selection Picker UI.

- Shows the Picker directly below the caller INPUT.
- Opens/closes from a clock icon.
- Shows Hour / Minute / Second columns according to caller options.
- `step` is a minute increment, matching #031 TimeBox.
  - Hour column: default 00–24. With min/max, out-of-range hours are omitted.
  - Minute column: uses the selected step (1 / 5 / 10 / 15 / 30 in Property).
  - Second column: always 00–59 and is not thinned by step.
  - If the minute column is hidden, step does not affect the hour list.
- Supports min / max selectability.
- Supports Default / Dark / Light / Neon Theme.
- Supports built-in Font Awesome-compatible clock SVG / Emoji clock.
- Returns the selected time through `bone-timepicker:select` and `onSelect`.
- Does **not** modify the caller INPUT automatically.
- Does **not** commit, invoke, deliver OUT, run Security Gate, or implement WAIT/BLOCKED.

The caller UI owns commit / OUT behavior.

## Main API

- `BoneTimePicker.create(anchor, options)`
- `open / close / toggle / isOpen / reposition`
- `setValue / getValue`
- `setOptions / getOptions`
- `getAnchor / getPanel`
- `validateTime(value, options)`
- `destroy`

## Value

- Second hidden: `HH:mm`
- Second shown: `HH:mm:ss`
- 24-hour clock only.
- No timezone conversion or precision fabrication.

## Runtime QA

`/BoneFlow/test/bone-timepicker.html`

Browser Runtime ALL PASS must be confirmed on localhost before completion.


## v1.0.4 QA
- #025 DatePicker v1.0.4 の Runtime QA / 接続イメージ / Completion 表示構成を基準化。
- #001 / #002 の正式モジュール読込順を使用する。
- TimePicker 固有責務（時/分/秒、step、選択時刻RETURN）のみ保持する。

- Property UI step list: `1 / 5 / 10 / 15 / 30` (select). Runtime API treats step as minutes, aligned with #031 TimeBox.

## v1.0.5 Consumer UI integration

The TimePicker Runtime responsibility and time-selection behavior are unchanged from v1.0.4.

- The Runtime code change is version metadata only; Hour / Minute / Second, min / max, minute `step`, and RETURN behavior are unchanged.
- The Runtime QA page adds an outer Trigger Mouse Over border effect using #022 Hover Border Effect v1.0.8. The effect target is the whole `Caller INPUT + clock button` trigger root and uses `trigger: mouseover`.
- Effect color selection uses #040 ColorPicker v1.0.15 Caller API with `allowedKinds: ["solid"]`; there is no native `input[type=color]` consumer UI.
- The Runtime QA page adds the real `BoneTimePicker` Class list / Public API guide based on the #020 guide structure. No runtime class is fabricated.
- The guide has Class / Public API, Usage, and Operation sections, with individual information for all 17 public functions.
- Japanese / English switching covers the added Effect, Class/Public API and Guide UI as well as the QA presentation.
- No Loop Property is added for #022.
- No parent-inheritance Property is added because parent-element inheritance remains outside #026 responsibility.
- INDEX is not changed because `/boneflow/test/bone-timepicker.html` already exists.


## v1.0.7 scoped correction

- #022 Hover Border Effect target is the individual Hour / Minute / Second value option, not the column container.
- Panel re-render keeps value-level effect attachment through the existing observer path.
- Added Preview parent-element settings for verification only; no parent-dependency option was added to the #026 Runtime Public API.


## v1.0.8 dependency compatibility correction
- #022 Hover Border Effect requires minimum v1.0.8 with the same major.minor and required Public API. Higher compatible patch versions are accepted.
- #040 ColorPicker requires minimum v1.0.15 with the same major.minor and Caller API. Higher compatible patch versions are accepted.
- TimePicker selection/runtime behavior is unchanged.


## v1.0.9 Hour range / min-max visibility correction
- The default Hour column displays `00` through `24` inclusive.
- Hour `24` is the end-of-day endpoint; only `24:00` / `24:00:00` is selectable.
- With `min` / `max`, out-of-range Hour candidates are omitted from the picker instead of being shown disabled/grey.
- Boundary Minute/Second candidates are also limited to selectable values.
- `step` remains a Minute-only increment and never thins the Hour column.
