# PointSeries

Import from `@pibbl/core/viz`. Supply `data`, `x`, `y`, `xScale`, and `yScale` as for
LineSeries. Invalid coordinates skip independent marks; `defined` runs first.
Data may be a signal. Arrays and nested row values are never implicitly unwrapped.

The default dot has radius 3 logical units and fill `#2563eb`. Style accepts
`radius`, `fill`, `stroke`, `strokeWidth` (default 1), `opacity` (default 1), and
`cursor`. Use `fill: ""` for stroke-only rings. Zero radius paints and targets
nothing; opacity zero keeps geometry. Widths/radii are finite and nonnegative.

A shared style supports shallow signals. Alternatively, `style(datum,index,data)`
returns plain PointMarkStyle values; explicit signal reads are supported, but
nested returned signals and per-datum cursors are not. Points paint fill then
stroke in source order, preserving translucent overlap. One logical target covers
the union of dots/rings, with normal Pibbl handlers and `pointerEvents`.

Use PlotSeries for custom Pibbl elements and nearestPoint for explicit inspection.
No implicit clipping, sorting, domain inference, or per-point focus is added.

Numeric and categorical positions use `SeriesAccessor<D>` with continuous scales
or PointScale. See [categorical position contracts](/reference/components/line-series/).

## API details from source

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

### PointSeries

Batched circles in source paint order with one ordinary Pibbl target.

```ts
PointSeries: <D>({ data: input, x: xInput, y: yInput, xScale: xId, yScale: yId, defined, style: styleInput, ...events }: PointSeriesProps<D>) => JSX.Element
```

Related API: [PointSeries](/reference/components/point-series/), [PointSeriesProps](/reference/components/point-series/), [JSX](/reference/overview/).

#### Parameters

- **`props`** — Data, coordinate accessors, scales, and point styling. See
[PointSeriesProps](/reference/components/point-series/) .

#### Returns

Pibbl nodes drawing the point marks.

#### See also

[PointSeriesProps](/reference/components/point-series/)

[View source — packages/core/src/features/viz/lib/point-series.tsx:74](/source/packages/core/src/features/viz/lib/point-series-tsx/#L74)

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

### PointAccessor

A data property or callback extracting a point coordinate.

```ts
type PointAccessor<D> = LineAccessor<D>
```

Related API: [PointAccessor](/reference/components/point-series/), [LineAccessor](/reference/components/line-series/).

#### See also

[LineAccessor](/reference/components/line-series/)

[PointSeriesProps](/reference/components/point-series/)

[PlotSeriesProps](/reference/components/plot-series/)

[View source — packages/core/src/features/viz/lib/point-types.ts:19](/source/packages/core/src/features/viz/lib/point-types-ts/#L19)

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

### PointMarkStyle

Radius and paint applied to an individual plotted point.

```ts
interface PointMarkStyle
```

Related API: [PointMarkStyle](/reference/components/point-series/).

#### See also

[FillStyle](/reference/types/styles/#fillstyle)

[StrokeStyle](/reference/types/styles/#strokestyle)

[PointSeriesStyle](/reference/components/point-series/)

[PointStyleResolver](/reference/components/point-series/)

[View source — packages/core/src/features/viz/lib/point-types.ts:28](/source/packages/core/src/features/viz/lib/point-types-ts/#L28)

#### Properties and methods

<span id="api-PointMarkStyle-radius"></span>
<details>
<summary>radius (optional)</summary>


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

Radius in the coordinate system of this geometry or effect. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:30](/source/packages/core/src/features/viz/lib/point-types-ts/#L30)

</details>

<span id="api-PointMarkStyle-fill"></span>
<details>
<summary>fill (optional)</summary>


```ts
readonly fill?: FillStyle | undefined
```

Related API: [FillStyle](/reference/types/styles/#fillstyle).

Paint used for the interior. See FillStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:32](/source/packages/core/src/features/viz/lib/point-types-ts/#L32)

</details>

<span id="api-PointMarkStyle-stroke"></span>
<details>
<summary>stroke (optional)</summary>


```ts
readonly stroke?: StrokeStyle | undefined
```

Related API: [StrokeStyle](/reference/types/styles/#strokestyle).

Paint used for the outline. See StrokeStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:34](/source/packages/core/src/features/viz/lib/point-types-ts/#L34)

</details>

<span id="api-PointMarkStyle-strokeWidth"></span>
<details>
<summary>strokeWidth (optional)</summary>


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

Width of the painted outline. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:36](/source/packages/core/src/features/viz/lib/point-types-ts/#L36)

</details>

<span id="api-PointMarkStyle-opacity"></span>
<details>
<summary>opacity (optional)</summary>


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

Related API: [opacity](/reference/types/filters/#opacity).

Opacity of the painted result. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:38](/source/packages/core/src/features/viz/lib/point-types-ts/#L38)

</details>

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

### PointSeriesStyle

Supported geometry and presentation properties for PointSeries.

```ts
interface PointSeriesStyle extends PointMarkStyle
```

Related API: [PointSeriesStyle](/reference/components/point-series/), [PointMarkStyle](/reference/components/point-series/).

#### See also

[PointMarkStyle](/reference/components/point-series/)

[PointSeriesProps](/reference/components/point-series/)

[View source — packages/core/src/features/viz/lib/point-types.ts:46](/source/packages/core/src/features/viz/lib/point-types-ts/#L46)

#### Properties and methods

<span id="api-PointSeriesStyle-cursor"></span>
<details>
<summary>cursor (optional)</summary>


```ts
readonly cursor?: string | undefined
```

Cursor shown while this target owns pointer presentation. See PointSeriesStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:48](/source/packages/core/src/features/viz/lib/point-types-ts/#L48)

</details>

<span id="api-PointSeriesStyle-radius"></span>
<details>
<summary>radius (optional)</summary>


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

Radius in the coordinate system of this geometry or effect. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:30](/source/packages/core/src/features/viz/lib/point-types-ts/#L30)

</details>

<span id="api-PointSeriesStyle-fill"></span>
<details>
<summary>fill (optional)</summary>


```ts
readonly fill?: FillStyle | undefined
```

Related API: [FillStyle](/reference/types/styles/#fillstyle).

Paint used for the interior. See FillStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:32](/source/packages/core/src/features/viz/lib/point-types-ts/#L32)

</details>

<span id="api-PointSeriesStyle-stroke"></span>
<details>
<summary>stroke (optional)</summary>


```ts
readonly stroke?: StrokeStyle | undefined
```

Related API: [StrokeStyle](/reference/types/styles/#strokestyle).

Paint used for the outline. See StrokeStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:34](/source/packages/core/src/features/viz/lib/point-types-ts/#L34)

</details>

<span id="api-PointSeriesStyle-strokeWidth"></span>
<details>
<summary>strokeWidth (optional)</summary>


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

Width of the painted outline. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:36](/source/packages/core/src/features/viz/lib/point-types-ts/#L36)

</details>

<span id="api-PointSeriesStyle-opacity"></span>
<details>
<summary>opacity (optional)</summary>


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

Related API: [opacity](/reference/types/filters/#opacity).

Opacity of the painted result. See PointMarkStyle.

[View source — packages/core/src/features/viz/lib/point-types.ts:38](/source/packages/core/src/features/viz/lib/point-types-ts/#L38)

</details>

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

### PointStyleResolver

Computes per-datum point styling from the datum, index, and source data.

```ts
type PointStyleResolver<D> = (
  datum: D,
  index: number,
  data: readonly D[],
) => Readonly<PointMarkStyle>
```

Related API: [PointStyleResolver](/reference/components/point-series/), [PointMarkStyle](/reference/components/point-series/).

#### Parameters

- **`datum`** — Datum being styled.

- **`index`** — Zero-based index in the source data.

- **`data`** — Complete source data array.

#### Returns

Paint and radius overrides for this point. See [PointMarkStyle](/reference/components/point-series/).

#### See also

[PointMarkStyle](/reference/components/point-series/)

[PointSeriesProps](/reference/components/point-series/)

[View source — packages/core/src/features/viz/lib/point-types.ts:61](/source/packages/core/src/features/viz/lib/point-types-ts/#L61)

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

### PointSeriesProps

Authored inputs for PointSeries, including the declared data and presentation options.

```ts
interface PointSeriesProps<D> extends PibblEventHandlers, PibblEventParticipationOptions
```

Related API: [PointSeriesProps](/reference/components/point-series/), [PibblEventHandlers](/reference/types/events/#pibbleventhandlers), [PibblEventParticipationOptions](/reference/types/events/#pibbleventparticipationoptions).

#### See also

[PibblEventHandlers](/reference/types/events/#pibbleventhandlers)

[PibblEventParticipationOptions](/reference/types/events/#pibbleventparticipationoptions)

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

[PointAccessor](/reference/components/point-series/)

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

`SignalStyle`

[PointSeriesStyle](/reference/components/point-series/)

[PointStyleResolver](/reference/components/point-series/)

[View source — packages/core/src/features/viz/lib/point-types.ts:78](/source/packages/core/src/features/viz/lib/point-types-ts/#L78)

#### Properties and methods

<span id="api-PointSeriesProps-data"></span>
<details>
<summary>data</summary>


```ts
readonly data: SignalValue<readonly D[]>
```

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

Application data supplied to the component or reported by the event. See SignalValue.

[View source — packages/core/src/features/viz/lib/point-types.ts:83](/source/packages/core/src/features/viz/lib/point-types-ts/#L83)

</details>

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


```ts
readonly x: SeriesAccessor<D>
```

Related API: [SeriesAccessor](/reference/components/line-series/).

Property key or callback extracting the horizontal domain coordinate. See PointAccessor.

[View source — packages/core/src/features/viz/lib/point-types.ts:85](/source/packages/core/src/features/viz/lib/point-types-ts/#L85)

</details>

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


```ts
readonly y: SeriesAccessor<D>
```

Related API: [SeriesAccessor](/reference/components/line-series/).

Property key or callback extracting the vertical domain coordinate. See PointAccessor.

[View source — packages/core/src/features/viz/lib/point-types.ts:87](/source/packages/core/src/features/viz/lib/point-types-ts/#L87)

</details>

<span id="api-PointSeriesProps-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/point-types.ts:89](/source/packages/core/src/features/viz/lib/point-types-ts/#L89)

</details>

<span id="api-PointSeriesProps-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/point-types.ts:91](/source/packages/core/src/features/viz/lib/point-types-ts/#L91)

</details>

<span id="api-PointSeriesProps-defined"></span>
<details>
<summary>defined (optional)</summary>


```ts
readonly defined?: ((datum: D, index: number, data: readonly D[]) => boolean) | undefined
```

Returns whether a datum contributes drawable or queryable coordinates. See
PointSeriesProps.

##### Parameters

- **`datum`** — Datum to test.

- **`index`** — Zero-based index in the source data.

- **`data`** — Complete source data array.

##### Returns

Whether this datum should participate in the series or query.

[View source — packages/core/src/features/viz/lib/point-types.ts:100](/source/packages/core/src/features/viz/lib/point-types-ts/#L100)

</details>

<span id="api-PointSeriesProps-style"></span>
<details>
<summary>style (optional)</summary>


```ts
readonly style?: SignalValue<PointStyleResolver<D> | Readonly<{ readonly radius?: SignalValue<number | undefined>; readonly fill?: SignalValue<FillStyle | undefined>; readonly stroke?: SignalValue<StrokeStyle | undefined>; readonly strokeWidth?: SignalValue<number | undefined>; readonly opacity?: SignalValue<number | undefined>; readonly cursor?: SignalValue<string | undefined>; }>> | undefined
```

Related API: [SignalValue](/reference/types/signal-inputs/#signalvalue), [PointStyleResolver](/reference/components/point-series/), [FillStyle](/reference/types/styles/#fillstyle), [StrokeStyle](/reference/types/styles/#strokestyle), [opacity](/reference/types/filters/#opacity).

Declared presentation and layout properties. See SignalValue, SignalStyle,
PointSeriesStyle, PointStyleResolver.

[View source — packages/core/src/features/viz/lib/point-types.ts:105](/source/packages/core/src/features/viz/lib/point-types-ts/#L105)

</details>

<span id="api-PointSeriesProps-pointerEvents"></span>
<details>
<summary>pointerEvents (optional)</summary>


```ts
readonly pointerEvents?: PibblPointerEvents | undefined
```

Related API: [PibblPointerEvents](/reference/types/events/#pibblpointerevents).

Whether this content participates in pointer targeting. See PibblPointerEvents.

[View source — packages/core/src/lib/events/types.ts:126](/source/packages/core/src/lib/events/types-ts/#L126)

</details>

## Implementation guidance for agents

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

## Complete minimal examples

- [Point and custom plot series](/minimal-examples/viz/points/): Render styled point marks and custom keyed point content. [Plain source](/minimal/viz/points.tsx)
## Documentation version

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