# Checkbox — Figma Assembly Rules
<!-- figma-assembly.v2
{ "schemaVersion":"figma-assembly.v2", "id":"component.checkbox", "level":"atom", "kind":"published", "aliases":["Checkbox-set","Checkbox","wbl-checkbox"], "uxSpec":"specs/ux/components/atoms/checkbox.md", "inventoryTarget":"checkbox", "componentKeys":["4a344c8137a61eec97e8e928ef987624d83dc8fd"], "dependencies":[], "optionalDependencies":[], "coveredBy":[] }
-->

Status: active Figma assembly contract.

## Scope

Use this contract when placing or revising the standalone WB Logistics Checkbox
in Figma. Table selection wrappers remain governed by their table sidecars.

## Source Evidence

- [Checkbox UX spec](checkbox.md).
- Direct Figma evidence:.
- Canonical Figma component set: `29801:431343`, `Checkbox-set`, key
  `4a344c8137a61eec97e8e928ef987624d83dc8fd`.
- Auxiliary indeterminate artwork is evidenced by source node `3583:92537`, but
  it is not a property of the main component set.

## Exact Component Properties

| Exact key | Type | Default / values | Assembly use |
| --- | --- | --- | --- |
| `Hint#29799:0` | Boolean | `false` | Keep off; the runtime component has no active hint API. |
| `Description#29799:5` | Boolean | `false` | Shows the description text layer. |
| `Label#29799:10` | Boolean | `true` | Shows the label text layer. |
| `Size` | Variant | `M - 24`; `S - 16` | Published checkbox sizes. |
| `Selected` | Variant | `off`; `on` | Represents the checked value. |
| `State` | Variant | `Normal`; `Hover`; `Disabled`; `Error` | Published evidence states. |

The main set exposes no top-level label-text, description-text, or indeterminate
property key. Their raw GUIDs are unresolved and must not be invented.

## Required Assembly

- Rule ID: `checkbox.published` — configure the canonical Checkbox-set and its
  descendants without detachment or guessed properties.
- Import or reuse the canonical component by key; do not redraw the checkbox
  track, check icon, label, or description.
- Set visibility through `Label#29799:10` and `Description#29799:5`.
- Set value through `Selected`, size through `Size`, and visual evidence state
  through `State`.
- When label or description copy must change, edit the existing descendant text
  layers named `Label` and `Description` as instance overrides. Do not detach
  them and do not create guessed component-property keys.
- Keep `Hint#29799:0=false`; hint has no source-backed runtime API.
- Do not add an `Intermediate` variant to the main set. The auxiliary artwork
  does not prove a reusable main-set property; indeterminate assembly remains a
  documented library gap until a verified composition exposes it.

## States

- Unchecked: `Selected=off`, normally `State=Normal`.
- Checked: `Selected=on`, normally `State=Normal`.
- Disabled and error use their published `State` value with the intended
  selected value. Hover is design-state evidence only.

## Verification Checklist

- `checkbox.published`: the instance owner is the canonical key above.
- Instance owner key is the canonical key above.
- Generated visibility keys are exact; no label/description GUID was guessed.
- Label and description remain instance text overrides without detachment.
- Hint is absent and the main-set indeterminate gap is not hidden by a fake
  variant.
