# closestX

Import from `@pibbl/core/viz`. Creates a query for the recorded observation nearest a domain x value.

`closestX({series,x,xScale,yScale,maxDelta?})` returns a function for HoverData. The x input is a domain number or null, plain or signal. It ignores cursor y, accepts unsorted data, and returns the original datum/index, domain x/y, mapped anchor, and delta. Inclusive maxDelta is in domain units; earliest source row wins ties.

## API details from source

<span id="api-closestX"></span>

### closestX

Selects a recorded observation by domain-x distance, independently of pointer y.

```ts
closestX: <D>(options: ClosestXOptions<D>) => HoverQuery<ClosestXHit<D>>
```

Related API: [closestX](/reference/functions/closest-x/), [ClosestXOptions](/reference/functions/closest-x/), [HoverQuery](/reference/components/hover-data/), [ClosestXHit](/reference/functions/closest-x/).

#### Parameters

- **`options`** — Series and horizontal-distance policy. See [ClosestXOptions](/reference/functions/closest-x/).

#### Returns

A query selecting the nearest horizontal match, or undefined when none qualifies. See
[HoverQuery](/reference/components/hover-data/) , [ClosestXHit](/reference/functions/closest-x/) .

#### See also

[ClosestXOptions](/reference/functions/closest-x/)

[HoverQuery](/reference/components/hover-data/)

[ClosestXHit](/reference/functions/closest-x/)

[View source — packages/core/src/features/viz/lib/hover-queries.ts:109](/source/packages/core/src/features/viz/lib/hover-queries-ts/#L109)

<span id="api-ClosestXOptions"></span>

### ClosestXOptions

A series, x-coordinate, scales, and optional maximum x delta for hover selection.

```ts
interface ClosestXOptions<D>
```

Related API: [ClosestXOptions](/reference/functions/closest-x/).

#### See also

[HoverSeries](/reference/functions/define-series/)

[SignalValue](/reference/types/signal-inputs/#signalvalue)

[ScaleId](/reference/components/scale/)

[InterpolateXOptions](/reference/functions/interpolate-x/)

[closestX](/reference/functions/closest-x/)

[View source — packages/core/src/features/viz/lib/hover-types.ts:188](/source/packages/core/src/features/viz/lib/hover-types-ts/#L188)

#### Properties and methods

<span id="api-ClosestXOptions-series"></span>
<details>
<summary>series</summary>


```ts
readonly series: HoverSeries<D>
```

Related API: [HoverSeries](/reference/functions/define-series/).

The named series or series collection participating in the query. See HoverSeries.

[View source — packages/core/src/features/viz/lib/hover-types.ts:190](/source/packages/core/src/features/viz/lib/hover-types-ts/#L190)

</details>

<span id="api-ClosestXOptions-x"></span>
<details>
<summary>x</summary>


```ts
readonly x: SignalValue<number | null>
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue).

Horizontal coordinate or displacement in the containing coordinate system. See
SignalValue.

[View source — packages/core/src/features/viz/lib/hover-types.ts:195](/source/packages/core/src/features/viz/lib/hover-types-ts/#L195)

</details>

<span id="api-ClosestXOptions-xScale"></span>
<details>
<summary>xScale</summary>


```ts
readonly xScale: ScaleId
```

Related API: [ScaleId](/reference/components/scale/).

The scale used to map horizontal data coordinates. See ScaleId.

[View source — packages/core/src/features/viz/lib/hover-types.ts:197](/source/packages/core/src/features/viz/lib/hover-types-ts/#L197)

</details>

<span id="api-ClosestXOptions-yScale"></span>
<details>
<summary>yScale</summary>


```ts
readonly yScale: ScaleId
```

Related API: [ScaleId](/reference/components/scale/).

The scale used to map vertical data coordinates. See ScaleId.

[View source — packages/core/src/features/viz/lib/hover-types.ts:199](/source/packages/core/src/features/viz/lib/hover-types-ts/#L199)

</details>

<span id="api-ClosestXOptions-maxDelta"></span>
<details>
<summary>maxDelta (optional)</summary>


```ts
readonly maxDelta?: number | undefined
```

Maximum x-coordinate difference accepted by the query. See ClosestXOptions.

[View source — packages/core/src/features/viz/lib/hover-types.ts:201](/source/packages/core/src/features/viz/lib/hover-types-ts/#L201)

</details>

<span id="api-ClosestXHit"></span>

### ClosestXHit

The nearest datum in x together with its delta from the query coordinate.

```ts
interface ClosestXHit<D> extends HoverHit<D>
```

Related API: [ClosestXHit](/reference/functions/closest-x/), [HoverHit](/reference/functions/closest-point/).

#### See also

[HoverHit](/reference/functions/closest-point/)

[closestX](/reference/functions/closest-x/)

[View source — packages/core/src/features/viz/lib/hover-types.ts:209](/source/packages/core/src/features/viz/lib/hover-types-ts/#L209)

#### Properties and methods

<span id="api-ClosestXHit-delta"></span>
<details>
<summary>delta</summary>


```ts
readonly delta: number
```

Difference between the selected datum's x coordinate and the query x coordinate. See
ClosestXHit.

[View source — packages/core/src/features/viz/lib/hover-types.ts:214](/source/packages/core/src/features/viz/lib/hover-types-ts/#L214)

</details>

<span id="api-ClosestXHit-datum"></span>
<details>
<summary>datum</summary>


```ts
readonly datum: D
```

The original data item selected by this result. See HoverHit.

[View source — packages/core/src/features/viz/lib/hover-types.ts:106](/source/packages/core/src/features/viz/lib/hover-types-ts/#L106)

</details>

<span id="api-ClosestXHit-index"></span>
<details>
<summary>index</summary>


```ts
readonly index: number
```

Index of the selected datum in its source data. See HoverHit.

[View source — packages/core/src/features/viz/lib/hover-types.ts:108](/source/packages/core/src/features/viz/lib/hover-types-ts/#L108)

</details>

<span id="api-ClosestXHit-x"></span>
<details>
<summary>x</summary>


```ts
readonly x: number
```

Horizontal coordinate or displacement in the containing coordinate system. See
HoverHit.

[View source — packages/core/src/features/viz/lib/hover-types.ts:113](/source/packages/core/src/features/viz/lib/hover-types-ts/#L113)

</details>

<span id="api-ClosestXHit-y"></span>
<details>
<summary>y</summary>


```ts
readonly y: number
```

Vertical coordinate or displacement in the containing coordinate system. See HoverHit
.

[View source — packages/core/src/features/viz/lib/hover-types.ts:118](/source/packages/core/src/features/viz/lib/hover-types-ts/#L118)

</details>

<span id="api-ClosestXHit-anchor"></span>
<details>
<summary>anchor</summary>


```ts
readonly anchor: HoverPoint
```

Related API: [HoverPoint](/reference/functions/closest-point/).

Logical point to which the content or result is anchored. See HoverPoint.

[View source — packages/core/src/features/viz/lib/hover-types.ts:120](/source/packages/core/src/features/viz/lib/hover-types-ts/#L120)

</details>

## Implementation guidance for agents

Read the [Authoring, signals, and lifecycle companion](/agents/topics/lifecycle/) for ownership, adaptation, failure modes, and verification. [Agent start](/agents/) provides the version-selection workflow.

## Complete minimal examples

- [Hover query helpers](/minimal-examples/viz/hover-queries/): Run closest-point, closest-x, and interpolated-x queries against a scale context. [Plain source](/minimal/viz/hover-queries.ts)
## Documentation version

Documentation built with @pibbl/core 0.0.2, revision 272a94a. ALPHA — NOT FOR PRODUCTION USE.
