Extract the full representation into a dedicated component

main.qml was 263 KB across 6568 lines, with the fullRepresentation inline
from `fullRepresentation: Item {` to the end of the file (~1500 lines). Move
it into contents/ui/components/FullRepresentation.qml, mirroring the existing
CompactRepresentation pattern instead of inventing a new one.

The extracted component receives an explicit `applet` property carrying the
already-normalized data and helpers; CLI commands, parsing, normalization,
nonce and process lifecycle stay in main.qml. Scoped references moved with the
code: `root.*` and previously-unqualified PlasmoidItem properties are now
reached through `applet.*`, child components take `applet: fullRoot.applet`,
and every Repeater/view delegate declares `required property var modelData`.
No user-facing strings change; the .pot only relocates file references and
keeps the same msgid set.

Static assertions follow the code across files (Surface/require_in_surface),
so most checks needed no rewrites. The one per-file contract in
test_security_regressions.sh now points at FullRepresentation.qml for the
icon `fallback: "view-statistics"` contract, and the UI regression check
reads the fullRepresentation body through the surface `fullRoot` block.

Verified with `make check` (exit 0), `./install.sh` plus a clean plasmashell
journal, and a clean `plasmawindowed` load.
450b6f7d76Simone committed on 8/17/2026, 11:01:12 PMparent0a8d19a
6 files changedLine totals unavailable