# Bone Flow #017 Text Specification v1.0

- Visible Component Version: `1.0.40`
- Runtime: `BoneText 1.0.37`
- Normal-use HTML Functional Class: `bf-text`
- DOC: `DOC-0017` / `TOC-0017`
- Joint dependency: `BoneJoint 1.1.36`
- Color dependency: installed `BoneColorPicker` formal Caller API
- Status in this rebuild package: Development Candidate

## Responsibility

#017 owns Text value/display/editor behavior and input-only font settings. It does not reimplement Joint routing/delivery or ColorPicker overlay behavior.

## Normal HTML use

```html
<span class="bf-text">ABC</span>
<input class="bf-text" type="text" value="ABC">
```

Display tags: `span / p / div / small / strong / em / code / pre`.
Input types: `text / number / password`.

The Functional Class reads standard HTML attributes and inline CSS only where the formal bridge defines them. It does not invent extra per-API classes or private `data-*` event/argument contracts.

## Runtime enums

- position: `top-left / top-center / top-right / middle-left / center / middle-right / bottom-left / bottom-center / bottom-right`
- inputAlign: `auto / left / center / right`
- direction: `ltr / rtl / auto`
- whitespace: `normal / nowrap / pre / pre-wrap / pre-line / break-spaces`
- overflow: `wrap / ellipsis / clip`
- font style: `normal / italic / oblique`
- font weight: `normal / bold / bolder / lighter / 100 ... 900`

## Property Editor vs Runtime

Runtime option range and Property Editor choices are not required to be identical. In the current Test UI, font size is edited in the 8–72px range and font weight is offered as 400/600/700, while Runtime 1.0.37 accepts any finite positive font size and the formal font-weight set.

## Dependencies

#002 owns evaluation, paths, endpoint/missing-field/type-mismatch markers, WAIT/FIFO/BLOCKED and delivery channel behavior. #017 uses the installed `BoneJoint 1.1.36` and does not bundle it.

#040 owns Picker overlay/selection/RETURN. #017 owns only its trigger and Text property values. #017 does not bundle or inspect #040 internal DOM/CSS.

## DOC

The user Help route is `UI-017 -> DOC-0017 -> doc-registry -> content/DOC-0017/{lang}.md -> Shared DOC Loader/Guide`. The guide content is centered on HTML Functional Class usage, settings, samples, operation and troubleshooting.


## Parent attachment and Runtime Schema

`inheritParent` is a formal boolean Property. Default is `true`. When enabled, Text / Text Editor attaches to the parent available width and respects the parent content area. `bf-text` exposes it as `data-inherit-parent="true|false"`.

Formal Property metadata is Runtime-owned through `BoneText.getPropertySchema()`, `getPropertyDefaults()` and `getPropertyDefinition(key)`. The test-page schema table must be generated from these Runtime APIs rather than duplicated by hand.

### Parent attachment rendering contract
For `inheritParent=true`, the #017 element must be a block-level box with `width:100%`, `max-width:100%`, `min-width:0`, and `box-sizing:border-box`. For `false`, Runtime explicitly uses `display:inline-block`, `width:auto`, `max-width:100%`, `min-width:0`, and `box-sizing:border-box` so consumer CSS cannot silently keep the element stretched.
