wrolpi/app/src/components/admin
Roland 528a5702d0
ui: migrate the extension pages and Configs; five components they needed
Phase 2, part 1.  Three files leave Semantic UI (baseline 75 -> 72), and the
components they needed join the library and the gallery:

  Header       Semantic's shape (as/icon/subheader/dividing).  47 files use
               <Header>, and the level now picks the size, so the type scale
               stays a scale instead of each call site choosing a font size.
  Message      gains an icon and a dismiss button.
  ActionInput  input and button sharing one outline, for <Input action={...}/>.
  Loading      centered loader with a caption, replacing the
               <Loader active inline='centered'> + wrapper div in 19 places.
  Modal        becomes compound - Modal.Header/.Content/.Actions, plus
               Semantic's open, closeIcon, and size names - because 34 files
               are written against that shape.

test-utils mounts MantineProvider with ThemeProvider's exact configuration:
migrated components render Mantine internals and every one of their test files
would otherwise need its own provider.

One Semantic bleed found and fixed: semantic.min.css sets
`h1,h2,h3,h4,h5 { font-family: Lato }` and loads after Mantine's element rule,
so headings ignored the theme's body face.  Only visible in amber, where the
body is mono and the headings were not.  A class-level restatement outranks it;
the rule comes out when Semantic does.

Verified: 925 jest tests, clean production build, and a night-mode audit of
every painted pixel in the gallery (red-only, one known false positive).  The
Configs backup and restore flow was exercised against the real API.
2026-08-05 18:34:46 -06:00
..
AdminRoute.js Creating browser extension to facilitate starting downloads. Chrome/Brave and Firefox supported. 2026-05-03 11:48:50 -06:00
browserDetect.js app: treat pure Chromium UA as supported for extension banner 2026-07-18 13:52:26 -06:00
Configs.js ui: migrate the extension pages and Configs; five components they needed 2026-08-05 18:34:46 -06:00
ControllerPage.js controller: VNC toggle, gated on the Desktop running 2026-07-29 18:10:05 -06:00
ControllerPage.test.js controller: VNC toggle, gated on the Desktop running 2026-07-29 18:10:05 -06:00
Downloads.js downloads: surface daily-limit stall to users 2026-07-29 14:58:37 -06:00
Downloads.test.js Adding selection to the Downloads page, user can delete or retry multiple downloads at once. 2025-12-26 10:35:30 -07:00
ExtensionInstallSuggestion.js ui: migrate the extension pages and Configs; five components they needed 2026-08-05 18:34:46 -06:00
ExtensionInstallSuggestion.test.js app: treat pure Chromium UA as supported for extension banner 2026-07-18 13:52:26 -06:00
ExtensionPage.js ui: migrate the extension pages and Configs; five components they needed 2026-08-05 18:34:46 -06:00
ExtensionPage.test.js Creating browser extension to facilitate starting downloads. Chrome/Brave and Firefox supported. 2026-05-03 11:48:50 -06:00
Settings.js ui: theme picker in Settings, and ship the component gallery 2026-08-05 18:34:45 -06:00
Status.js controller: report cooling fan RPM in CPU status 2026-07-23 19:52:47 -06:00