fix: react-doctor label-has-associated-control (-15, nested-interactive -1)

Add htmlFor/id pairs to label/input pairs across ~24 files.
Convert section-header labels (Role/Permissions/Visibility/Environment/
Send via/Quick messages/Campaign Type/When to Send/Preview) to <p>.
Convert clickable divs to buttons (AbandonedCartDashboard → native dialog).
Hoist regex patterns out of loops in ai-import.ts.
This commit is contained in:
Nora
2026-06-26 04:02:10 -06:00
parent f6bf91951e
commit 16a6756ad1
30 changed files with 220 additions and 192 deletions
+4 -4
View File
@@ -481,7 +481,7 @@ export default function AdminOrdersPanel({
key={stop.id}
className="flex items-center gap-3 rounded-lg px-3 py-2 cursor-pointer transition-colors"
style={{ color: "var(--admin-text-primary)" }}
>
htmlFor="fld-togglestopstopid-classnameh-4-w-4-rounde">
<input
type="checkbox"
checked={selectedStops.includes(stop.id)}
@@ -637,7 +637,7 @@ export default function AdminOrdersPanel({
<thead style={{ backgroundColor: "var(--admin-bg)" }}>
<tr style={{ borderBottom: "1px solid var(--admin-border)" }}>
<th className="w-10 px-4 py-3">
<input aria-label="Checkbox"
<input id="fld-togglestopstopid-classnameh-4-w-4-rounde" aria-label="Checkbox"
type="checkbox"
checked={selectedOrders.size === paginatedOrders.length && paginatedOrders.length > 0}
onChange={toggleSelectAll}
@@ -945,7 +945,7 @@ export default function AdminOrdersPanel({
<label
className="block text-xs font-semibold"
style={{ color: "var(--admin-text-secondary)" }}
>
htmlFor="fld-items">
Items
</label>
<span
@@ -1006,7 +1006,7 @@ export default function AdminOrdersPanel({
{prod?.name ?? item.product_id}
</div>
<div className="col-span-2">
<input aria-label="Number"
<input id="fld-items" aria-label="Number"
type="number"
min={1}
value={item.quantity}