wrolpi/app/src/components
lrnselfreliance 7e63bbb3e2
ui: the Files filter's clear button rejoins its input (#650)
The clear button sat detached from the filter field and 11px below it, and it
dragged the collapse-all button out of line with both.

One stale rule did all of that.  `.search-clear { margin: 0.625rem }` is left
over from the Semantic-era filter, where the clear button was a sibling of the
input and needed the gap.  It is now ActionInput's action, which joins the two
by dropping the input's right border -- so the margin reopened the seam the
component exists to close, pushed the button down by its own top margin, and,
because a flex line is as tall as its tallest item plus that item's margins,
stretched the wrapper to 62px around a 40px field.  The collapse-all button
beside it was centred in that 62px, which is why it looked wrong too.

Removing the rule fixes all three: the button abuts the field and shares its
outline, like the filters on Videos and Archives, and the row is one height.
The class had exactly one user left, so the rule goes with it.

The test asserts the button is inside ActionInput's wrapper, and that no rule
reintroduces a margin on it -- jsdom applies no stylesheet, so the geometry
itself cannot be measured there.  Confirmed it fails when the rule is put back.
2026-08-08 18:05:55 -06:00
..
admin ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
calculators review: the scan the first two commits needed 2026-08-08 18:05:53 -06:00
collections ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
inventory test: the component suite's twelve failures, none of them about the component 2026-08-08 18:05:54 -06:00
ui ui: sample data names Blender and WROLPi, not real channels (#647) 2026-08-08 18:05:55 -06:00
AddToPlaylist.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Apps.js fix: break the import cycle that put useCalculators in the TDZ 2026-08-08 18:05:47 -06:00
Archive.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
ArchivePreview.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
BulkTagModal.js ui: only the top modal answers Escape, and the audited widths 2026-08-08 18:05:49 -06:00
BulkTagModal.test.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Calculators.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
CbzViewer.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Channels.cy.js test: the component suite's twelve failures, none of them about the component 2026-08-08 18:05:54 -06:00
Channels.js ui: a Back button is a row of one, not a stretched flex child 2026-08-08 18:05:52 -06:00
Common.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
Common.test.js ui: sample data names Blender and WROLPi, not real channels (#647) 2026-08-08 18:05:55 -06:00
DatesSelector.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
DesktopToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Docs.js review: the scan the first two commits needed 2026-08-08 18:05:53 -06:00
DomainEditPage.test.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
DomainsPage.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
DomainTagging.test.js test: one place for fixtures, real providers instead of mocked context modules 2026-08-08 18:04:04 -06:00
DonatePage.js ui: only the top modal answers Escape, and the audited widths 2026-08-08 18:05:49 -06:00
Download.cy.js test: the component suite's twelve failures, none of them about the component 2026-08-08 18:05:54 -06:00
Download.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
Download.test.js Reformatting code. 2025-12-06 15:11:37 -07:00
ErrorBoundary.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
FileBrowser.js ui: the Files filter's clear button rejoins its input (#650) 2026-08-08 18:05:55 -06:00
FileBrowser.test.js ui: the Files filter's clear button rejoins its input (#650) 2026-08-08 18:05:55 -06:00
FilePreview.js ui: only the top modal answers Escape, and the audited widths 2026-08-08 18:05:49 -06:00
FilePreview.test.js File preview: Open in Slicer button for STL/3MF files. 2026-07-05 13:31:40 -06:00
Files.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
Flasher.js ui: scale the whole interface by 10%, off the root font-size 2026-08-08 18:05:51 -06:00
Flasher.test.js ui: migrate Flasher.js off Semantic UI React 2026-08-08 18:04:02 -06:00
Headline.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
HelpModal.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
KeyboardShortcutsProvider.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
Map.js review: finish the sweep the first pass claimed 2026-08-08 18:05:52 -06:00
Map.test.js review: name the icon-only controls, and make two guards mean what they say 2026-08-08 18:05:50 -06:00
MapSearchView.js ui: widen a card's track by 25% 2026-08-08 18:05:51 -06:00
MapViewer.js review: close the mixed-unit gaps the scale left behind 2026-08-08 18:05:51 -06:00
Nav.js ui: the navbar shows which section you are in (#649) 2026-08-08 18:05:55 -06:00
Nav.test.js ui: the navbar shows which section you are in (#649) 2026-08-08 18:05:55 -06:00
otp.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
otp.test.js Move One-Time Pad encryption to the browser (#479) 2026-06-13 13:52:34 -06:00
Placeholder.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Playlists.js review: the scan the first two commits needed 2026-08-08 18:05:53 -06:00
Playlists.test.js Add ordered collections (playlists): polymorphic items + item API (#475) 2026-06-11 19:46:34 -06:00
Search.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
SearchFilterModal.test.js ui: thirty-five files off Semantic, leaving fifteen 2026-08-08 18:04:01 -06:00
Share.js ui: only the top modal answers Escape, and the audited widths 2026-08-08 18:05:49 -06:00
ShortcutHint.js Displaying cmd+k/ctrl+k global search keyboard shortcut suggestion. 2026-02-23 16:07:22 -07:00
SortableTable.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
Tables.js ui: nine leaf files off Semantic, and the components they needed 2026-08-08 18:04:00 -06:00
TaggedDeleteConfirmModal.js ui: let a confirmation choose its width 2026-08-08 18:05:51 -06:00
TaggedDeleteConfirmModal.test.js ui: let a confirmation choose its width 2026-08-08 18:05:51 -06:00
Theme.tsx ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
ThemeProvider.test.js test: act on review — observe the wiring, and stop the soft assertions 2026-08-08 18:05:45 -06:00
ThemeSamplePage.js ui: sample data names Blender and WROLPi, not real channels (#647) 2026-08-08 18:05:55 -06:00
Upload.js ui: migrate Downloads, Upload, and BulkTagModal off Semantic 2026-08-08 18:04:02 -06:00
Vars.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
VideoPlayer.js ui: the last of Semantic UI, in name and in dead CSS 2026-08-08 18:05:54 -06:00
VideoPlayer.test.js videos: address review — tighten auto-caption detection 2026-07-16 18:29:18 -06:00
Videos.js ui: a Back button is a row of one, not a stretched flex child 2026-08-08 18:05:52 -06:00
VncToggle.test.js ui: Common.js and thirteen more files off Semantic 2026-08-08 18:04:00 -06:00
Zim.js review: finish the sweep the first pass claimed 2026-08-08 18:05:52 -06:00
Zim.test.js fix: an unnamed language code took down the whole Zim manage page 2026-08-08 18:05:49 -06:00