@@ -20,6 +20,7 @@ import { Button } from "../common/Button";
2020import { Separator } from "../common/Separator" ;
2121import { Checkbox } from "../ui/form/Checkbox" ;
2222import { InputField } from "../ui/form/InputField" ;
23+ import { LabeledField } from "../ui/form/LabeledField" ;
2324import { SubmitButton } from "../ui/form/SubmitButton" ;
2425import SlimSelect from "../ui/SlimSelect" ;
2526
@@ -228,15 +229,14 @@ export function WordFilterModal(props: {
228229 } }
229230 >
230231 < fieldset disabled = { loading ( ) } class = "grid gap-4" >
231- < div class = "grid gap-1" >
232- < div class = "text-sub" > language</ div >
232+ < LabeledField label = "language" >
233233 < SlimSelect
234234 options = { languageOptions }
235235 selected = { language ( ) }
236236 onChange = { setLanguage }
237237 disabled = { loading ( ) }
238238 />
239- </ div >
239+ </ LabeledField >
240240 < div class = "text-xs text-sub" >
241241 You can manually filter words by length, words or characters
242242 (separated by spaces) on the left side. On the right side you can
@@ -246,21 +246,18 @@ export function WordFilterModal(props: {
246246 < div class = "grid grid-cols-1 gap-4 md:grid-cols-[1fr_auto_1fr]" >
247247 < div class = "grid gap-4 self-start" >
248248 < div class = "grid grid-cols-2 gap-4" >
249- < div class = "grid gap-1" >
250- < div class = "text-sub" > min length</ div >
249+ < LabeledField label = "min length" >
251250 < form . Field name = "minLength" >
252251 { ( field ) => < InputField field = { field } type = "number" /> }
253252 </ form . Field >
254- </ div >
255- < div class = "grid gap-1" >
256- < div class = "text-sub" > max length</ div >
253+ </ LabeledField >
254+ < LabeledField label = "max length" >
257255 < form . Field name = "maxLength" >
258256 { ( field ) => < InputField field = { field } type = "number" /> }
259257 </ form . Field >
260- </ div >
258+ </ LabeledField >
261259 </ div >
262- < div class = "grid gap-1" >
263- < div class = "text-sub" > include</ div >
260+ < LabeledField label = "include" >
264261 < form . Field name = "include" >
265262 { ( field ) => < InputField field = { field } /> }
266263 </ form . Field >
@@ -283,39 +280,36 @@ export function WordFilterModal(props: {
283280 />
284281 ) }
285282 </ form . Field >
286- </ div >
287- < div class = "grid gap-1" >
288- < div class = "text-sub" > exclude</ div >
283+ </ LabeledField >
284+ < LabeledField label = "exclude" >
289285 < form . Field name = "exclude" >
290286 { ( field ) => (
291287 < InputField field = { field } disabled = { isExactMatch ( ) } />
292288 ) }
293289 </ form . Field >
294- </ div >
290+ </ LabeledField >
295291 </ div >
296292
297293 < Separator vertical class = "hidden md:block" />
298294 < Separator class = "block md:hidden" />
299295
300296 < div class = "grid gap-4 self-start" >
301- < div class = "grid gap-1" >
302- < div class = "text-sub" > presets</ div >
297+ < LabeledField label = "presets" >
303298 < SlimSelect
304299 options = { presetOptions }
305300 selected = { preset ( ) }
306301 onChange = { setPreset }
307302 disabled = { loading ( ) }
308303 />
309- </ div >
310- < div class = "grid gap-1" >
311- < div class = "text-sub" > layout</ div >
304+ </ LabeledField >
305+ < LabeledField label = "layout" >
312306 < SlimSelect
313307 options = { layoutOptions }
314308 selected = { layout ( ) }
315309 onChange = { setLayout }
316310 disabled = { loading ( ) }
317311 />
318- </ div >
312+ </ LabeledField >
319313 < Button
320314 variant = "button"
321315 text = "apply"
0 commit comments