Name themes.js as the third adopter of the described theme picker
makeover-layout 0.38.0 describes the theme picker (518c650a, ruled by Max on
70028e00), and goingson and audiofiles both took it. This frontend is the last
hand-written one in the tree and the only live optgroup left in it, which is
the measurement that made the picker worth describing at all.
A comment rather than a conversion: this frontend has not been ported, so the
note is there to stop the port hand-writing a fourth one. Both of the other
two ported the grouping into a described Select first and sat flat for a
month, which is the specific mistake worth naming in advance.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_01AAbx8dxVmuVeyKbKoRrUL2
2 files changed,
+26 insertions,
-12 deletions
| 8073 |
8073 |
|
"winnow 1.0.4",
|
| 8074 |
8074 |
|
]
|
| 8075 |
8075 |
|
|
| 8076 |
|
- |
[[patch.unused]]
|
| 8077 |
|
- |
name = "kberg"
|
| 8078 |
|
- |
version = "0.1.0"
|
| 8079 |
|
- |
|
| 8080 |
|
- |
[[patch.unused]]
|
| 8081 |
|
- |
name = "ops-status"
|
| 8082 |
|
- |
version = "0.1.0"
|
| 8083 |
|
- |
|
| 8084 |
|
- |
[[patch.unused]]
|
| 8085 |
|
- |
name = "painhours"
|
| 8086 |
|
- |
version = "0.1.0"
|
| 8087 |
|
- |
|
| 8088 |
8076 |
|
[[patch.unused]]
|
| 8089 |
8077 |
|
name = "quasi-axum"
|
| 8090 |
8078 |
|
version = "0.74.0"
|
| 8120 |
8108 |
|
[[patch.unused]]
|
| 8121 |
8109 |
|
name = "quasi-webview"
|
| 8122 |
8110 |
|
version = "0.74.0"
|
|
8111 |
+ |
|
|
8112 |
+ |
[[patch.unused]]
|
|
8113 |
+ |
name = "kberg"
|
|
8114 |
+ |
version = "0.1.0"
|
|
8115 |
+ |
|
|
8116 |
+ |
[[patch.unused]]
|
|
8117 |
+ |
name = "ops-status"
|
|
8118 |
+ |
version = "0.1.0"
|
|
8119 |
+ |
|
|
8120 |
+ |
[[patch.unused]]
|
|
8121 |
+ |
name = "painhours"
|
|
8122 |
+ |
version = "0.1.0"
|
| 135 |
135 |
|
return;
|
| 136 |
136 |
|
}
|
| 137 |
137 |
|
|
|
138 |
+ |
// THE THIRD ADOPTER OF `FieldKind::Theme`, when this frontend converts.
|
|
139 |
+ |
//
|
|
140 |
+ |
// Everything below -- the three variant filters, the optgroup builder,
|
|
141 |
+ |
// the follow-the-system option in front of them -- is described as of
|
|
142 |
+ |
// makeover-layout 0.38.0, and goingson and audiofiles both took it on
|
|
143 |
+ |
// 2026-08-28. This is the last hand-written theme picker in the tree
|
|
144 |
+ |
// and the only live `optgroup` left in it, which is the measurement
|
|
145 |
+ |
// that made the picker worth describing at all (`70028e00`).
|
|
146 |
+ |
//
|
|
147 |
+ |
// So the conversion replaces this whole function with one
|
|
148 |
+ |
// `Field::theme` over `makeover::theme_options`, and it gets the
|
|
149 |
+ |
// contrast badge for free -- a fact this picker never had. It does not
|
|
150 |
+ |
// port the grouping by hand into a described `Select`, which is what
|
|
151 |
+ |
// both of the other two did first and what left them flat for a month.
|
| 138 |
152 |
|
const selection = await storedSelection() ?? FOLLOW;
|
| 139 |
153 |
|
const light = themes.filter(t => t.variant === 'light');
|
| 140 |
154 |
|
const dark = themes.filter(t => t.variant === 'dark');
|