Beacon Style Preference
fun BeaconStylePreference(beaconValues: List<String>, beaconDescriptions: List<String>, modifier: Modifier, textColor: Color, onPreviewStart: (String) -> Unit, onPreviewUpdate: (String) -> Unit, onPreviewStop: (Boolean, String?) -> Unit)
Beacon style preference with an inline audio preview.
Tapping the row opens a dialog that:
on open, asks the service to stop any running beacon and start a preview beacon directly north of the listener using the currently saved style;
on each option tap, swaps the preview beacon to the tapped style without persisting the choice yet (so a Cancel cleanly reverts);
on OK, persists the selected style and tells the service to restore the previously-running beacon (now using the new style);
on Cancel/back, reverts the engine to the original style and restores the previously-running beacon.