Wafer Map.

COMMUNITY

Show status and measurements at die coordinates on a wafer.

Live preview16 feature examples

LIVE EXAMPLE

Bin classification

Match the page theme
Interact with the chart to see selection and range-change results here.
OptionsChanges are reflected in the preview and code.
Appearance and style11
Legend and interaction7
Title and dimensions3

Inspect wafer defect distribution by die coordinates and bins. All values are sample data.

View code
Current preview
<div id="chart-container" style="width: 100%; min-width: 0;"></div>

<script type="module">
  import { defineCustomElement as define0 } from '@syidax/advanced/components/sy-wafer-map.js';
  define0();

  const specs = [
    {
      "id": "example-chart",
      "tag": "sy-wafer-map",
      "props": {
        "engine": "standard",
        "values": [
          {
            "col": -6,
            "row": -6,
            "bin": 2,
            "value": 95
          },
          {
            "col": -5,
            "row": -6,
            "bin": 1,
            "value": 96.93
          },
          {
            "col": -4,
            "row": -6,
            "bin": 1,
            "value": 97.96
          },
          {
            "col": -3,
            "row": -6,
            "bin": 1,
            "value": 97.59
          },
          {
            "col": -2,
            "row": -6,
            "bin": 1,
            "value": 96
          },
          {
            "col": -1,
            "row": -6,
            "bin": 1,
            "value": 93.95
          },
          {
            "col": 0,
            "row": -6,
            "bin": 1,
            "value": 92.39
          },
          {
            "col": 1,
            "row": -6,
            "bin": 1,
            "value": 92.05
          },
          {
            "col": 2,
            "row": -6,
            "bin": 1,
            "value": 93.11
          },
          {
            "col": 3,
            "row": -6,
            "bin": 1,
            "value": 95.05
          },
          {
            "col": 4,
            "row": -6,
            "bin": 1,
            "value": 96.97
          },
          {
            "col": 5,
            "row": -6,
            "bin": 1,
            "value": 97.96
          },
          {
            "col": 6,
            "row": -6,
            "bin": 1,
            "value": 97.56
          },
          {
            "col": -6,
            "row": -5,
            "bin": 1,
            "value": 95.96
          },
          {
            "col": -5,
            "row": -5,
            "bin": 1,
            "value": 93.9
          },
          {
            "col": -4,
            "row": -5,
            "bin": 1,
            "value": 92.36
          },
          {
            "col": -3,
            "row": -5,
            "bin": 1,
            "value": 92.06
          },
          {
            "col": -2,
            "row": -5,
            "bin": 2,
            "value": 93.15
          },
          {
            "col": -1,
            "row": -5,
            "bin": 1,
            "value": 95.1
          },
          {
            "col": 0,
            "row": -5,
            "bin": 1,
            "value": 97.01
          },
          {
            "col": 1,
            "row": -5,
            "bin": 1,
            "value": 97.97
          },
          {
            "col": 2,
            "row": -5,
            "bin": 1,
            "value": 97.54
          },
          {
            "col": 3,
            "row": -5,
            "bin": 1,
            "value": 95.91
          },
          {
            "col": 4,
            "row": -5,
            "bin": 1,
            "value": 93.85
          },
          {
            "col": 5,
            "row": -5,
            "bin": 1,
            "value": 92.34
          },
          {
            "col": 6,
            "row": -5,
            "bin": 1,
            "value": 92.07
          },
          {
            "col": -6,
            "row": -4,
            "bin": 1,
            "value": 93.19
          },
          {
            "col": -5,
            "row": -4,
            "bin": 1,
            "value": 95.15
          },
          {
            "col": -4,
            "row": -4,
            "bin": 1,
            "value": 97.05
          },
          {
            "col": -3,
            "row": -4,
            "bin": 1,
            "value": 97.98
          },
          {
            "col": -2,
            "row": -4,
            "bin": 1,
            "value": 97.51
          },
          {
            "col": -1,
            "row": -4,
            "bin": 1,
            "value": 95.86
          },
          {
            "col": 0,
            "row": -4,
            "bin": 1,
            "value": 93.81
          },
          {
            "col": 1,
            "row": -4,
            "bin": 1,
            "value": 92.31
          },
          {
            "col": 2,
            "row": -4,
            "bin": 2,
            "value": 92.08
          },
          {
            "col": 3,
            "row": -4,
            "bin": 1,
            "value": 93.23
          },
          {
            "col": 4,
            "row": -4,
            "bin": 1,
            "value": 95.2
          },
          {
            "col": 5,
            "row": -4,
            "bin": 1,
            "value": 97.08
          },
          {
            "col": 6,
            "row": -4,
            "bin": 1,
            "value": 97.98
          },
          {
            "col": -6,
            "row": -3,
            "bin": 1,
            "value": 97.48
          },
          {
            "col": -5,
            "row": -3,
            "bin": 1,
            "value": 95.81
          },
          {
            "col": -4,
            "row": -3,
            "bin": 1,
            "value": 93.76
          },
          {
            "col": -3,
            "row": -3,
            "bin": 1,
            "value": 92.29
          },
          {
            "col": -2,
            "row": -3,
            "bin": 1,
            "value": 92.1
          },
          {
            "col": -1,
            "row": -3,
            "bin": 1,
            "value": 93.27
          },
          {
            "col": 0,
            "row": -3,
            "bin": 1,
            "value": 95.25
          },
          {
            "col": 1,
            "row": -3,
            "bin": 1,
            "value": 97.12
          },
          {
            "col": 2,
            "row": -3,
            "bin": 1,
            "value": 97.99
          },
          {
            "col": 3,
            "row": -3,
            "bin": 1,
            "value": 97.45
          },
          {
            "col": 4,
            "row": -3,
            "bin": 1,
            "value": 95.76
          },
          {
            "col": 5,
            "row": -3,
            "bin": 1,
            "value": 93.72
          },
          {
            "col": 6,
            "row": -3,
            "bin": 2,
            "value": 92.27
          },
          {
            "col": -6,
            "row": -2,
            "bin": 1,
            "value": 92.11
          },
          {
            "col": -5,
            "row": -2,
            "bin": 1,
            "value": 93.31
          },
          {
            "col": -4,
            "row": -2,
            "bin": 1,
            "value": 95.3
          },
          {
            "col": -3,
            "row": -2,
            "bin": 1,
            "value": 97.15
          },
          {
            "col": -2,
            "row": -2,
            "bin": 1,
            "value": 97.99
          },
          {
            "col": -1,
            "row": -2,
            "bin": 1,
            "value": 97.42
          },
          {
            "col": 0,
            "row": -2,
            "bin": 1,
            "value": 95.72
          },
          {
            "col": 1,
            "row": -2,
            "bin": 1,
            "value": 93.67
          },
          {
            "col": 2,
            "row": -2,
            "bin": 1,
            "value": 92.25
          },
          {
            "col": 3,
            "row": -2,
            "bin": 1,
            "value": 92.12
          },
          {
            "col": 4,
            "row": -2,
            "bin": 1,
            "value": 93.35
          },
          {
            "col": 5,
            "row": -2,
            "bin": 1,
            "value": 95.35
          },
          {
            "col": 6,
            "row": -2,
            "bin": 1,
            "value": 97.19
          },
          {
            "col": -6,
            "row": -1,
            "bin": 1,
            "value": 98
          },
          {
            "col": -5,
            "row": -1,
            "bin": 1,
            "value": 97.39
          },
          {
            "col": -4,
            "row": -1,
            "bin": 1,
            "value": 95.67
          },
          {
            "col": -3,
            "row": -1,
            "bin": 2,
            "value": 93.63
          },
          {
            "col": -2,
            "row": -1,
            "bin": 1,
            "value": 92.23
          },
          {
            "col": -1,
            "row": -1,
            "bin": 1,
            "value": 92.14
          },
          {
            "col": 0,
            "row": -1,
            "bin": 1,
            "value": 93.39
          },
          {
            "col": 1,
            "row": -1,
            "bin": 1,
            "value": 95.4
          },
          {
            "col": 2,
            "row": -1,
            "bin": 1,
            "value": 97.22
          },
          {
            "col": 3,
            "row": -1,
            "bin": 1,
            "value": 98
          },
          {
            "col": 4,
            "row": -1,
            "bin": 1,
            "value": 97.36
          },
          {
            "col": 5,
            "row": -1,
            "bin": 1,
            "value": 95.62
          },
          {
            "col": 6,
            "row": -1,
            "bin": 1,
            "value": 93.58
          },
          {
            "col": -6,
            "row": 0,
            "bin": 1,
            "value": 92.21
          },
          {
            "col": -5,
            "row": 0,
            "bin": 1,
            "value": 92.15
          },
          {
            "col": -4,
            "row": 0,
            "bin": 1,
            "value": 93.44
          },
          {
            "col": -3,
            "row": 0,
            "bin": 1,
            "value": 95.45
          },
          {
            "col": -2,
            "row": 0,
            "bin": 1,
            "value": 97.26
          },
          {
            "col": -1,
            "row": 0,
            "bin": 1,
            "value": 98
          },
          {
            "col": 0,
            "row": 0,
            "bin": 1,
            "value": 97.33
          },
          {
            "col": 1,
            "row": 0,
            "bin": 2,
            "value": 95.57
          },
          {
            "col": 2,
            "row": 0,
            "bin": 1,
            "value": 93.54
          },
          {
            "col": 3,
            "row": 0,
            "bin": 1,
            "value": 92.19
          },
          {
            "col": 4,
            "row": 0,
            "bin": 1,
            "value": 92.17
          },
          {
            "col": 5,
            "row": 0,
            "bin": 1,
            "value": 93.48
          },
          {
            "col": 6,
            "row": 0,
            "bin": 1,
            "value": 95.5
          },
          {
            "col": -6,
            "row": 1,
            "bin": 1,
            "value": 97.29
          },
          {
            "col": -5,
            "row": 1,
            "bin": 1,
            "value": 98
          },
          {
            "col": -4,
            "row": 1,
            "bin": 1,
            "value": 97.3
          },
          {
            "col": -3,
            "row": 1,
            "bin": 1,
            "value": 95.52
          },
          {
            "col": -2,
            "row": 1,
            "bin": 1,
            "value": 93.49
          },
          {
            "col": -1,
            "row": 1,
            "bin": 1,
            "value": 92.18
          },
          {
            "col": 0,
            "row": 1,
            "bin": 1,
            "value": 92.19
          },
          {
            "col": 1,
            "row": 1,
            "bin": 1,
            "value": 93.52
          },
          {
            "col": 2,
            "row": 1,
            "bin": 1,
            "value": 95.55
          },
          {
            "col": 3,
            "row": 1,
            "bin": 1,
            "value": 97.32
          },
          {
            "col": 4,
            "row": 1,
            "bin": 1,
            "value": 98
          },
          {
            "col": 5,
            "row": 1,
            "bin": 2,
            "value": 97.27
          },
          {
            "col": 6,
            "row": 1,
            "bin": 1,
            "value": 95.47
          },
          {
            "col": -6,
            "row": 2,
            "bin": 1,
            "value": 93.45
          },
          {
            "col": -5,
            "row": 2,
            "bin": 1,
            "value": 92.16
          },
          {
            "col": -4,
            "row": 2,
            "bin": 1,
            "value": 92.21
          },
          {
            "col": -3,
            "row": 2,
            "bin": 1,
            "value": 93.57
          },
          {
            "col": -2,
            "row": 2,
            "bin": 1,
            "value": 95.6
          },
          {
            "col": -1,
            "row": 2,
            "bin": 1,
            "value": 97.35
          },
          {
            "col": 0,
            "row": 2,
            "bin": 1,
            "value": 98
          },
          {
            "col": 1,
            "row": 2,
            "bin": 1,
            "value": 97.23
          },
          {
            "col": 2,
            "row": 2,
            "bin": 1,
            "value": 95.42
          },
          {
            "col": 3,
            "row": 2,
            "bin": 1,
            "value": 93.41
          },
          {
            "col": 4,
            "row": 2,
            "bin": 1,
            "value": 92.14
          },
          {
            "col": 5,
            "row": 2,
            "bin": 1,
            "value": 92.22
          },
          {
            "col": 6,
            "row": 2,
            "bin": 1,
            "value": 93.61
          },
          {
            "col": -6,
            "row": 3,
            "bin": 1,
            "value": 95.65
          },
          {
            "col": -5,
            "row": 3,
            "bin": 1,
            "value": 97.38
          },
          {
            "col": -4,
            "row": 3,
            "bin": 2,
            "value": 98
          },
          {
            "col": -3,
            "row": 3,
            "bin": 1,
            "value": 97.2
          },
          {
            "col": -2,
            "row": 3,
            "bin": 1,
            "value": 95.37
          },
          {
            "col": -1,
            "row": 3,
            "bin": 1,
            "value": 93.36
          },
          {
            "col": 0,
            "row": 3,
            "bin": 1,
            "value": 92.13
          },
          {
            "col": 1,
            "row": 3,
            "bin": 1,
            "value": 92.24
          },
          {
            "col": 2,
            "row": 3,
            "bin": 1,
            "value": 93.66
          },
          {
            "col": 3,
            "row": 3,
            "bin": 1,
            "value": 95.7
          },
          {
            "col": 4,
            "row": 3,
            "bin": 1,
            "value": 97.41
          },
          {
            "col": 5,
            "row": 3,
            "bin": 1,
            "value": 97.99
          },
          {
            "col": 6,
            "row": 3,
            "bin": 1,
            "value": 97.16
          },
          {
            "col": -6,
            "row": 4,
            "bin": 1,
            "value": 95.32
          },
          {
            "col": -5,
            "row": 4,
            "bin": 1,
            "value": 93.32
          },
          {
            "col": -4,
            "row": 4,
            "bin": 1,
            "value": 92.11
          },
          {
            "col": -3,
            "row": 4,
            "bin": 1,
            "value": 92.26
          },
          {
            "col": -2,
            "row": 4,
            "bin": 1,
            "value": 93.7
          },
          {
            "col": -1,
            "row": 4,
            "bin": 1,
            "value": 95.75
          },
          {
            "col": 0,
            "row": 4,
            "bin": 2,
            "value": 97.44
          },
          {
            "col": 1,
            "row": 4,
            "bin": 1,
            "value": 97.99
          },
          {
            "col": 2,
            "row": 4,
            "bin": 1,
            "value": 97.13
          },
          {
            "col": 3,
            "row": 4,
            "bin": 1,
            "value": 95.27
          },
          {
            "col": 4,
            "row": 4,
            "bin": 1,
            "value": 93.28
          },
          {
            "col": 5,
            "row": 4,
            "bin": 1,
            "value": 92.1
          },
          {
            "col": 6,
            "row": 4,
            "bin": 1,
            "value": 92.29
          },
          {
            "col": -6,
            "row": 5,
            "bin": 1,
            "value": 93.75
          },
          {
            "col": -5,
            "row": 5,
            "bin": 1,
            "value": 95.8
          },
          {
            "col": -4,
            "row": 5,
            "bin": 1,
            "value": 97.47
          },
          {
            "col": -3,
            "row": 5,
            "bin": 1,
            "value": 97.99
          },
          {
            "col": -2,
            "row": 5,
            "bin": 1,
            "value": 97.09
          },
          {
            "col": -1,
            "row": 5,
            "bin": 1,
            "value": 95.22
          },
          {
            "col": 0,
            "row": 5,
            "bin": 1,
            "value": 93.24
          },
          {
            "col": 1,
            "row": 5,
            "bin": 1,
            "value": 92.09
          },
          {
            "col": 2,
            "row": 5,
            "bin": 1,
            "value": 92.31
          },
          {
            "col": 3,
            "row": 5,
            "bin": 1,
            "value": 93.79
          },
          {
            "col": 4,
            "row": 5,
            "bin": 2,
            "value": 95.85
          },
          {
            "col": 5,
            "row": 5,
            "bin": 1,
            "value": 97.5
          },
          {
            "col": 6,
            "row": 5,
            "bin": 1,
            "value": 97.98
          },
          {
            "col": -6,
            "row": 6,
            "bin": 1,
            "value": 97.06
          },
          {
            "col": -5,
            "row": 6,
            "bin": 1,
            "value": 95.17
          },
          {
            "col": -4,
            "row": 6,
            "bin": 1,
            "value": 93.2
          },
          {
            "col": -3,
            "row": 6,
            "bin": 1,
            "value": 92.08
          },
          {
            "col": -2,
            "row": 6,
            "bin": 1,
            "value": 92.33
          },
          {
            "col": -1,
            "row": 6,
            "bin": 1,
            "value": 93.84
          },
          {
            "col": 0,
            "row": 6,
            "bin": 1,
            "value": 95.89
          },
          {
            "col": 1,
            "row": 6,
            "bin": 1,
            "value": 97.53
          },
          {
            "col": 2,
            "row": 6,
            "bin": 1,
            "value": 97.97
          },
          {
            "col": 3,
            "row": 6,
            "bin": 1,
            "value": 97.02
          },
          {
            "col": 4,
            "row": 6,
            "bin": 1,
            "value": 95.12
          },
          {
            "col": 5,
            "row": 6,
            "bin": 1,
            "value": 93.16
          },
          {
            "col": 6,
            "row": 6,
            "bin": 1,
            "value": 92.07
          }
        ],
        "diameter": 150,
        "dieWidth": 10,
        "dieHeight": 10,
        "mode": "bin",
        "passBin": 1,
        "width": 640,
        "height": 420,
        "brandPosition": "bottom-right",
        "brandLogo": ""
      }
    }
  ];
  const container = document.querySelector('#chart-container');
  const elements = specs.map(({ tag, id, props }) => {
    const element = document.createElement(tag);
    element.id = id;
    Object.assign(element, props);
    element.setAttribute('aria-label', 'wafer-map example chart');
    return element;
  });
  container.replaceChildren(...elements);
  const chart = elements.at(-1);
  const onEvent = event => {
    console.log('dieClick', event.detail);
  };
  chart.addEventListener('dieClick', onEvent);
  const observer = new ResizeObserver(([entry]) => {
    const width = Math.max(160, Math.floor(entry.contentRect.width));
    elements.forEach(element => { element.width = width; });
  });
  observer.observe(container);

  // In an SPA, call this function when the view is disposed.
  function disposeChart() {
    observer.disconnect();
    chart.removeEventListener('dieClick', onEvent);
    container.replaceChildren();
  }
</script>

Usage and data

#

Inspect spatial patterns in bins, yield, and parameters.

Match diameter, dieWidth, dieHeight, and the coordinate origin to the actual measurement system. Do not treat missing dies as passes.

Data contract

PropertyInput format
valuesAn array of dies as { col, row, bin?, value? }.
modeChoose grid, bin, binary, or value.
passBinThe bin interpreted as a pass.

Updating data

Assign a new array or object to the property instead of mutating values inside an array. Chart events provide selection results through event.detail. When disposing of the view, clean up ResizeObserver and event listeners registered by your app.

Add to your interface

#

The code tabs below the preview contain the full data, options, event bindings, and responsive sizing for the current example. Copy them into an app project, such as Vite, that can resolve the installed packages.

Shared sy-chart API versus direct tags

API reference

#

The full public API for sy-wafer-map. Pass objects and arrays as JavaScript properties. Select a name to view usage code and type definitions.

Key properties

Attribute / PropertyType / DefaultDescription
numberDefault: 520Chart width in pixels. Update with ResizeObserver when the container changes.
numberDefault: 500Chart height in pixels.
brandLogostringDefault: undefinedThe default is the Syidax logo. With the Pro chart.branding entitlement, use none or a PNG, JPEG, or WebP data URL.
brandPosition'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'Default: 'bottom-right'The corner where the logo is anchored. Applies equally to Community and Pro, on screen and in image exports.
edgeExclusionnumberDefault: 3Unusable edge band in mm (default 3).
WaferIndicatorDefault: 'notch'Orientation-mark kind: `notch` (300 mm standard) / `flat` (legacy) / `none`.
WaferOrientationDefault: 'down'Where the mark points (fab standard: `down`).
scribeXnumberDefault: 0.2Scribe-street widths in mm (defaults 0.2).
scribeYnumberDefault: 0.2Set as an HTML attribute or JavaScript property. type: number.
WaferMapDataDefault: undefinedAn array of dies as { col, row, bin?, value? }.
WaferMapModeDefault: 'grid'Choose grid, bin, binary, or value.
passBinnumber | stringDefault: 1The bin interpreted as a pass.
showStatsbooleanDefault: trueShow the min/mean/σ/median statistics line under the value legend.
binLegendbooleanDefault: trueShow the bin legend under the wafer (bin mode).
legendPositionWaferMapLegendPositionDefault: 'bottom'Where the legend is positioned.
showPartialbooleanDefault: trueDraw edge (partial) dies.
showExclusionbooleanDefault: trueDraw the dashed edge-exclusion ring.
showDieIndexbooleanDefault: falsePrint `ix,iy` inside each die (auto-hides when dies get too small).
chartTitlestringDefault: undefinedThe title inside the chart. Explain the data's unit and meaning alongside it.
chartSubtitlestringDefault: undefinedThe subtitle inside the chart.
tooltipShowbooleanDefault: trueWhether to display the built-in tooltip.
CartesianZoomInputDefault: undefinedSettings for zooming and the visible range.
animatedbooleanDefault: falseWhether to animate initial display and data changes.
animationDurationnumberDefault: 600Animation duration in milliseconds.
animationEasingWaferMapEasingDefault: 'ease-out'Allowed values: linear, ease-out, ease-in, ease-in-out. Default: 'ease-out'.
animationTypeWaferMapAnimationTypeDefault: undefined`initial` = the reveal only; `update` = the change morph only; unset = both.
Other properties 38
Attribute / PropertyType / DefaultDescription
numberDefault: 300Wafer diameter in mm (default 300).
flatLengthnumberDefault: undefinedFlat chord length in mm (default diameter × 0.2).
notchDepthnumberDefault: undefinedNotch depth in mm (default 2.5).
dieWidthnumberDefault: 10Die size in mm (defaults 10 × 10).
dieHeightnumberDefault: 10Set as an HTML attribute or JavaScript property. type: number.
offsetXnumberDefault: 0Grid shift in mm relative to the centred lattice.
offsetYnumberDefault: 0Set as an HTML attribute or JavaScript property. type: number.
binColorsReadonly<Record<string, string>>Default: undefinedExplicit per-bin colours (`{ [bin]: colour }`) — bin mode only.
passColorstringDefault: '#16a34a'Pass-bin fill.
failColorstringDefault: '#dc2626'Fail fill (`mode="binary"` — every non-pass bin).
colorAxisWaferValueAxisInputDefault: 'auto'Value-axis config for `mode="value"`: `auto` (data extent, blues) or `{min, max, scheme, minColor, maxColor, stops, center}` — a diverging scheme name (rdbu, spectral, …) anchors its midpoint on `center`.
'none' | 'defect'Default: 'none'Overlay layer on top of any mode: `none` / `defect`.
'die' | 'shot'Default: 'die'Grid chrome: `die` (scribe streets only) or `shot` (+ reticle boundaries).
shotColsnumberDefault: 3Dies per exposure shot (defaults 3 × 2).
shotRowsnumberDefault: 2Set as an HTML attribute or JavaScript property. type: number.
shotOffsetXnumberDefault: 0Shot-grid alignment shift in whole dies.
shotOffsetYnumberDefault: 0Set as an HTML attribute or JavaScript property. type: number.
shotColorstringDefault: '#334155'Shot boundary stroke.
WaferDefectDataDefault: undefinedInspection defects (`{x, y, class?, size?}`, wafer mm, notch frame).
defectColorstringDefault: '#0f172a'Dot colour for unclassified defects (classes cycle the palette).
keyof typeof categoricalDefault: 'tableau10'Categorical palette cycled over fail bins (sorted order).
legendFloatAlign'start' | 'center' | 'end'Default: 'end'`legend-position="float"`: the overlay's horizontal anchor inside the drawing rectangle.
legendFloatVerticalAlign'top' | 'middle' | 'bottom'Default: 'top'`legend-position="float"`: the overlay's vertical anchor inside the drawing rectangle.
legendDraggablebooleanDefault: false`legend-position="float"`: the floating legend can be dragged inside the chart bounds.
dieIndexOriginDieIndexOriginDefault: 'top-left'Die-index convention (fab map formats): `top-left` counts from the lattice bounding-box corner, `center` keeps signed notch-frame coordinates. Indices are notch-frame-stable — the view `orientation` never renumbers a die.
dieIndexBasenumberDefault: 0First index value (0 or 1).
waferColorstring | ReadonlyArray<string>Default: '#eef2f7'Substrate disc fill.
dieColorstring | ReadonlyArray<string>Default: '#cbd5e1'Full (probeable) die fill.
partialColorstring | ReadonlyArray<string>Default: '#e2e8f0'Edge (partial) die fill.
dataColorstring | ReadonlyArray<string>Default: '#2563eb'Fill for dies that carry data (until the mode days colour by it).
edgeColorstringDefault: 'rgba(255,255,255,0.9)'Scribe-street stroke between dies.
outlineColorstringDefault: '#64748b'Wafer outline stroke.
tooltipFormat(detail: WaferDieEventDetail) => stringDefault: undefinedCustom tooltip text (return a string; default: index · bin/value · shot).
streamSourceWaferMapStreamSourceDefault: undefinedA stream source for live data. Check the contract for the specific type.
streamMaxnumberDefault: undefinedThe maximum number of streaming data points to retain.
streamWindownumberDefault: undefinedThe streaming data range to keep visible.
WaferMapEngineModeDefault: 'auto'Renderer selection: auto, standard, or pro. Engine selection is separate from permission to use a Pro chart type.
WaferMapUnavailableBehaviourDefault: 'fallback'Allowed values: fallback, error, throw. Default: 'fallback'.
Events 12
EventsDetail typeDescription
WaferMapRenderResult & { tier: WaferMapEngineTier }Emits rendering results in detail when chart drawing completes.
WaferDieEventDetail | nullPointer entered/left a die (`null` on leave).
WaferDieEventDetailA die was clicked.
WaferDieEventDetail | nullSelection changed (click toggles; `null` when cleared).
ChartPointContextMenuEventDetail<WaferDieEventDetail>A die was right-clicked (the shared point context-menu detail: the die + the pointer's local / viewport position).
{ count: number }Dies streamed in (`appendPoint` / `appendDie` / `appendBatch` / `updateDie`): the dies the ring stored.
{ dropped: number }The oldest streamed dies left the ring (`stream-max`) or were shifted out — they revert to the base map.
voidCustomEvent.detail type: void. Event names are case-sensitive.
voidCustomEvent.detail type: void. Event names are case-sensitive.
voidCustomEvent.detail type: void. Event names are case-sensitive.
{ col: number; row: number; ix: number; iy: number; previousBin: number | string; bin: number | string; }An upsert CHANGED an already-probed die's bin (a re-test flipping the verdict) — the signal a live yield display keys on.
CartesianZoomChangeEventDetailStorybook parity (2026-09-10) — fired after every zoom change (drag / pan / wheel / pinch / keyboard / api / reset) with the new state.
Methods 32

Stencil methods return Promises. Use await within an async function to read the result.

Method / ArgumentsReturn typeDescription
Promise<{ total: number; offWafer: number; byClass: Array<{ key: string; count: number }> }>Per-class defect counts over the on-wafer points (`overlay="defect"`).
col: number, row: numberPromise<{ shotCol: number; shotRow: number }>Shot (reticle exposure) coordinate of a lattice cell.
cssX: number, cssY: numberPromise<WaferDieEventDetail | null>Die under a component-local CSS point, or null (streets, off-wafer).
col: number, row: numberPromise<WaferDieEventDetail | null>Select a die programmatically (null-safe no-op off the lattice).
Promise<void>An asynchronous method. Check the argument and return types below.
Promise<WaferDieEventDetail | null>The current selection (null when none).
request: CartesianZoomRequestPromise<CartesianZoomChangeEventDetail | null>Zoom to explicit windows of the drawing (`x` / `y` as `{ min, max }` or `[min, max]` fractions 0 … 1; `null` clears that orientation).
factor: number, anchorFraction?: numberPromise<CartesianZoomChangeEventDetail | null>Scale the current windows by `factor` (< 1 zooms in) around `anchorFraction` (0..1, default centre).
delta: { x?: number; y?: number }Promise<CartesianZoomChangeEventDetail | null>Slide the zoomed windows by fractions of the drawing (`{ x?, y? }`); a no-op at the full extent.
Promise<CartesianZoomChangeEventDetail | null>Back to the full drawing.
Promise<CartesianZoomState | null>The current zoom state (`null` = the full drawing).
request?: CartesianZoomExtentRequestPromise<CartesianZoomExtentDetail | null>The full extent of the viewport axes (`[0, 1]` each, key `'0'`).
values: WaferMapDataPromise<void>Replace the die data set (facade `setData` route) — the base map; the streamed dies stay on top of it.
datum: WaferDieDatumPromise<void>Stream one probe result in: an upsert by cell into the die ring (a re-probed die replaces its result and moves to the newest position; when its BIN changes, `binChanged` carries the previous verdict). The universal name of the stream surface — `appendDie` is the wafer's own alias of it.
datum: WaferDieDatumPromise<void>An asynchronous method. Check the argument and return types below.
data: WaferMapDataPromise<void>Stream a batch of probe results (one repaint, one `appended`).
count: numberPromise<void>Drop the `count` oldest streamed dies (`windowSlid`); they revert to the base map. Without `chart.streaming` there is no streamed set apart from the base, and the base never leaves: nothing is dropped.
data: WaferMapDataPromise<void>Swap the streamed set (`replace([])` clears it); the base `values` never leave. Without `chart.streaming` the dies upsert into the base like a batch (quietly: no `appended`, no `binChanged`, as a ring replace).
Promise<WaferMapStreamSource | undefined>The die ring in use: the bound `stream-source`, else the internal one (undefined before the first push, and without `chart.streaming`).
col: number, row: number, patch: { bin?: number | string; value?: number }Promise<WaferDieEventDetail | null>Patch an existing die's data (creates the cell when absent — a late probe log is still a probe log): the merged result streams in through the ring. Returns the resulting detail.
options: { duration?: number; easing?: WaferMapEasing; enabled?: boolean; type?: WaferMapAnimationType }Promise<void>An asynchronous method. Check the argument and return types below.
Promise<void>An asynchronous method. Check the argument and return types below.
Promise<void>An asynchronous method. Check the argument and return types below.
Promise<void>Run the reveal again.
Promise<{ dies: number; fullDies: number; partialDies: number }>Layout + grid summary for tooling/specs.
Promise<BinarySummary>Pass/fail/yield summary over the probed dies (any mode).
Promise<WaferValueStats>Descriptive statistics over the measured on-wafer values (any mode).
col: number, row: numberPromise<DieIndexEntry | null>Map index of a notch-frame lattice cell, or null when off the wafer.
ix: number, iy: numberPromise<DieIndexEntry | null>Die entry addressed by its map index, or null.
Promise<WaferMapEngineTier>An asynchronous method. Check the argument and return types below.
Promise<WaferMapRenderResult>An asynchronous method. Check the argument and return types below.
Promise<ChartEngineStatus>Requested engine vs what runs, and why (CHART-ADD-08): always Standard (this type has no WebGPU renderer); read without side effects, never consults the license.