# API index

> Package `@umriss-ui/calculation`, version 0.40.0. Demo page: <https://romanhaendler.github.io/umriss-ui/calculation/api/>. Every page in one line: [llms.txt](https://romanhaendler.github.io/umriss-ui/calculation/llms.txt); every page in full: [llms-full.txt](https://romanhaendler.github.io/umriss-ui/calculation/llms-full.txt).

Everything `@umriss-ui/calculation` exports, with its signature. A component's props stand on its own page.

Demo page: https://romanhaendler.github.io/umriss-ui/calculation/api/

## Components

### `Calculation`

[Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/) – Lets a reader follow and redo a figure (also called a KPI tree or calculation tree): each line a quantity with its operator, derived lines folded until opened beneath themselves. Reach for it where a number on the screen gets questioned: a cost, an availability, an invoice total.

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Installation](https://romanhaendler.github.io/umriss-ui/calculation/installation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Chain`

[Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/) – A sheet read top to bottom (a running calculation): each line worked into the value before it, and interims naming the value where they stand. Reach for it for invoices, budgets and cost sheets.

Used on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Difference`

The first operand minus every other: a − b − c.

```ts
const Difference: (props: OperatorProps) => null;
```

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Installation](https://romanhaendler.github.io/umriss-ui/calculation/installation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `DividedBy`

Divides the named value before it by its operand.

```ts
const DividedBy: (props: ChainOperandProps) => null;
```

Used on [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Given`

[Given](https://romanhaendler.github.io/umriss-ui/calculation/given/) – The numbers a calculation starts from (inputs, leaves): where they came from, when they were true, and whether they are still fresh.

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Installation](https://romanhaendler.github.io/umriss-ui/calculation/installation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Interim`

Names the value of a chain where it stands.

```ts
const Interim: (props: QuantityProps) => null;
```

Used on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Minus`

Takes its operand from the value before it.

```ts
const Minus: (props: ChainOperandProps) => null;
```

Used on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/) and [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/).

### `Plus`

Adds its operand to the value before it.

```ts
const Plus: (props: ChainOperandProps) => null;
```

Used on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Product`

The product of two or more operands.

```ts
const Product: (props: OperatorProps) => null;
```

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Quotient`

Exactly two operands: the first divided by the second.

```ts
const Quotient: (props: OperatorProps) => null;
```

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Installation](https://romanhaendler.github.io/umriss-ui/calculation/installation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Ref`

[Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/) – A quantity defined elsewhere in the calculation, standing as an operand.

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Installation](https://romanhaendler.github.io/umriss-ui/calculation/installation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Sum`

The sum of its operands, however many: rows from data, one or none
included. The sum of none is zero, and its line says it has no entries.

```ts
const Sum: (props: OperatorProps) => null;
```

Used on [Scenarios](https://romanhaendler.github.io/umriss-ui/calculation/), [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/), [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/), [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/), [What can go wrong](https://romanhaendler.github.io/umriss-ui/calculation/what-can-go-wrong/) and [Worked examples](https://romanhaendler.github.io/umriss-ui/calculation/worked-examples/).

### `Times`

Multiplies the named value before it by its operand.

```ts
const Times: (props: ChainOperandProps) => null;
```

Used on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/), [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/) and [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/).

## Types

### `CalculationProps`

Its table stands on [Calculation](https://romanhaendler.github.io/umriss-ui/calculation/calculation/#type-CalculationProps).

### `ChainOperandProps`

Its table stands on [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/#type-ChainOperandProps).

### `ChainProps`

Its table stands on [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/#type-ChainProps).

### `GivenProps`

Its table stands on [Given](https://romanhaendler.github.io/umriss-ui/calculation/given/#type-GivenProps).

### `Metric`

Its table stands on [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/#type-Metric).

Used on [Rows from data](https://romanhaendler.github.io/umriss-ui/calculation/rows-from-data/) and [Metrics](https://romanhaendler.github.io/umriss-ui/calculation/metrics/).

### `MetricValues`

A given's numbers where the calculation has metrics: one per metric id,
`null` where the number is absent.

```ts
type MetricValues = Readonly<Record<string, number | null>>;
```

### `OperatorProps`

Its table stands on [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/#type-OperatorProps).

### `QuantityProps`

Its table stands on [Chain](https://romanhaendler.github.io/umriss-ui/calculation/chain/#type-QuantityProps).

### `RefProps`

Its table stands on [Tree](https://romanhaendler.github.io/umriss-ui/calculation/tree/#type-RefProps).
