f03cb303c3
Modal gains closeIfPristine(entityId): when editing an existing entity and no tracked field has changed, the helper force-closes the modal silently and returns true so the caller can skip the PUT and the misleading "updated" toast. Each editor's save handler now early-returns on the no-op edit path: advanced-calibration, assets, audio-processing-templates, audio-sources, calibration, devices, game-integration, ha-light-targets, home-assistant-sources, mqtt-sources, pattern-templates, scene-presets, sync-clocks, targets, weather-sources.