+ style=${{
+ background: `rgb(${cardRgb[0]},${cardRgb[1]},${cardRgb[2]})`,
+ ...(fscPlot ? { gridColumn: fscPlot.cardCol(fscPlot.landing[ri]) } : {}),
+ }}>
<${SkyScope} elev=${r.elev} dt=${r.dt} glob=${r.glob} size=${42} />
diff --git a/assets/js/components/DayTabs.js b/assets/js/components/DayTabs.js
index 70da23e..8c02873 100644
--- a/assets/js/components/DayTabs.js
+++ b/assets/js/components/DayTabs.js
@@ -22,8 +22,8 @@
// activeProfile - current filter profile key
// outdoorsVariant - current outdoors sub-variant key
// openPanel - opens the profile/config nav dropdown
-// vehicleType/vehicleSpeed - current vehicle config (vehicle-cabin day-tab
-// reference calc + row label)
+// vehicleType - current vehicle config, for the "Viewing" row
+// label
// buildingType/indoorManaged/utciEnv/furColor - current config values,
// for the "Viewing" row label
// dayTabsRef - ref for the scrollable tab strip element
@@ -33,9 +33,8 @@
import { h, Fragment } from '../../vendor/preact.js';
import htm from '../../vendor/htm.js';
-import { confidenceBand, utciCategory, petCategory, hexToRgb, mixRgb, rainTint, cloudTint, snowTint, VEHICLE_SPEEDS, VEHICLE_TYPES, BUILDING_TYPES, FUR_COLORS } from '../utils.js';
+import { confidenceBand, utciCategory, petCategory, hexToRgb, mixRgb, rainTint, cloudTint, snowTint, VEHICLE_TYPES, BUILDING_TYPES, FUR_COLORS } from '../utils.js';
import { FREE_DAYS, UTCI_ENVIRONMENTS, deriveProfileMain, FILTER_PROFILES, variantIcons } from '../config.js';
-import { calcVehicleInteriorTempPass } from '../physics.js';
import { CloudIcon, PrecipIcon, HouseIcon, CarIcon, FogIcon, IceIcon } from '../components.js';
import { SubscribeModal } from './SubscribeModal.js';
@@ -124,7 +123,7 @@ export function DayTabs({
proPromptSource, setProPromptSource,
activeProfile, outdoorsVariant,
openPanel,
- vehicleType, vehicleSpeed, buildingType, indoorManaged, utciEnv, furColor,
+ vehicleType, buildingType, indoorManaged, utciEnv, furColor,
dayTabsRef, canScrollLeft, canScrollRight, scrollDayTabs,
}) {
// Which metric drives the day-tab's hi/lo readout depends on the active
@@ -215,7 +214,7 @@ export function DayTabs({
${isHomeOrOffice ? 'Home' : isVehicleProfile ? 'Alert' : 'Sky'}
${mainMetricLabel}
- ${(isVehicleProfile || secondaryField) && html`
+ ${secondaryField && html`
${secondaryMetricLabel}`}
@@ -233,22 +232,11 @@ export function DayTabs({
const dayHi = mainVals.length ? Math.round(Math.max(...mainVals)) : null;
const dayLo = mainVals.length ? Math.round(Math.min(...mainVals)) : null;
- // Vehicle/Driver: no table column exists for the ventilated cabin
- // temp (ventilation is just an input toggle on the main vehicleT
- // calc), so run the physics model again with vent forced on, to
- // show "if you opened the windows" as a reference hi/lo.
+ // Vehicle/Driver has no secondary field — the cabin number already
+ // reflects the selected vehicle type, ventilation and speed, so the
+ // tab shows that alone rather than a second reference figure.
let shadeHi = null, shadeLo = null;
- if (isVehicleProfile) {
- const speedMph = (VEHICLE_SPEEDS[vehicleSpeed] ?? VEHICLE_SPEEDS.static).mph;
- // Run the lagged pass over the whole day, not per-hour equilibrium,
- // so this hi/lo is directly comparable with the vehicleT column.
- const ventVals = calcVehicleInteriorTempPass(
- d.rows.map(r => r.Ta), d.rows.map(r => r.glob), d.rows.map(r => r.elev),
- d.rows.map(r => r.va), vehicleType, true, speedMph
- ).filter(v => v != null && isFinite(v));
- shadeHi = ventVals.length ? Math.round(Math.max(...ventVals)) : null;
- shadeLo = ventVals.length ? Math.round(Math.min(...ventVals)) : null;
- } else if (secondaryField) {
+ if (secondaryField) {
const secondaryVals = d.rows.map(r => r[secondaryField]).filter(v => isFinite(v));
shadeHi = secondaryVals.length ? Math.round(Math.max(...secondaryVals)) : null;
shadeLo = secondaryVals.length ? Math.round(Math.min(...secondaryVals)) : null;
diff --git a/assets/js/config.js b/assets/js/config.js
index d52242f..69f96e4 100644
--- a/assets/js/config.js
+++ b/assets/js/config.js
@@ -209,11 +209,9 @@ export function deriveProfileMain(activeProfile, outdoorsVariant) {
// every field matches its column key except utciAdj, whose column is utciP.
const colKey = mainField === 'utciAdj' ? 'utciP' : mainField;
const mainMetric = COL_DESCRIPTIONS[colKey] || {};
- // Vehicle/Driver has no secondary column — the small number is a live
- // re-run of the cabin model with ventilation forced on (see DayTabs).
- const secondaryMetric = isVehicleProfile
- ? { title: 'Windows Open', desc: 'The same vehicle interior estimate, recalculated with the windows open — how much cooler the cabin would run if it were ventilated.' }
- : (secondaryField ? (COL_DESCRIPTIONS[secondaryField] || {}) : null);
+ // Vehicle/Driver has no secondary column — the day tab shows only the cabin
+ // temp for the config actually selected (vehicle type, ventilation, speed).
+ const secondaryMetric = secondaryField ? (COL_DESCRIPTIONS[secondaryField] || {}) : null;
return {
isHomeOrOffice, isVehicleProfile, isPetsProfile,