ColorPickerWidget

A plain RGB colour picker — saturation/value square, hue strip, RGB fields, hex field, and a before/after swatch. With setAlphaEnabled(), an alpha field too, and the hex field takes `#RRGGBBAA` (rendering-revamp §RVM-9: a gradient stop is RGBA).

Inherits QWidget

Declared in src/libs/libwidgets/components/ColorPickerWidget.hpp.

Detailed description

⚠ REUSABLE BY CONSTRUCTION: it is a QWidget in libwidgets with no dependency on any app. `ColorPickerDialog` shows it modally (what a settings row opens) and `ColorPickerActivity` shows it as a page (what an activity host pushes). One implementation, two presentations — the same shape §XM-0 rules for the viewport, and for the same reason: two implementations of one picker would need keeping in agreement forever.

⚠ HUE AND SATURATION ARE HELD AS STATE, not re-derived from the QColor on every edit. A round trip through QColor loses hue whenever saturation or value reaches zero — black and white have no hue to report — so a picker that re-derived would snap the strip to red the moment the user dragged into a corner, and the colour would jump on the way back out. `ColorInput` learned this before it was a picker; it is written down here so the next implementation does not learn it again.

In this section