+ {/* Search/filter */}
+
+ setSearch(e.target.value)}
+ placeholder="Filter..."
+ aria-label="Filter times"
+ style={{
+ width: "100%", height: 30, borderRadius: 6,
+ border: "0.5px solid #374151", background: "#1f2937",
+ color: "#e5e7eb", fontSize: 12, fontFamily: "inherit",
+ padding: "0 8px", outline: "none",
+ }}
+ onFocus={e => (e.currentTarget.style.borderColor = "#6366f1")}
+ onBlur={e => (e.currentTarget.style.borderColor = "#374151")}
+ />
+
+
+ {/* Time slot list — scrollable, 44px touch target */}
+
+ {filtered.length === 0 && (
+ - No results
+ )}
+ {filtered.map((s, i) => {
+ const isSelected = value && s.value.hours === value.hours && s.value.minutes === value.minutes;
+ return (
+ - select(s.value)}
+ style={{
+ padding: "0 10px",
+ height: 36, // ≥36px pointer, approx 44px touch via line-height
+ display: "flex", alignItems: "center",
+ fontSize: 13, cursor: "pointer", borderRadius: 6,
+ background: isSelected ? "#6366f1" : "transparent",
+ color: isSelected ? "#fff" : "#d1d5db",
+ transition: "background 0.1s",
+ }}
+ onMouseEnter={e => { if (!isSelected) (e.currentTarget as HTMLElement).style.background = "#1f2937"; }}
+ onMouseLeave={e => { if (!isSelected) (e.currentTarget as HTMLElement).style.background = "transparent"; }}
+ >
+ {s.label}
+
+ );
+ })}
+
+
+ {/* Clear */}
+ {value && (
+
+
+
+ )}
+