import { useEffect, useState } from 'react';
function formatClock(date) {
return new Intl.DateTimeFormat(undefined, {
hour: '2-digit',
minute: '2-digit',
}).format(date);
}
function formatDate(date) {
return new Intl.DateTimeFormat(undefined, {
weekday: 'short',
month: 'short',
day: 'numeric',
}).format(date);
}
function EditIcon() {
return (
);
}
function ListIcon() {
return (
);
}
function InstallIcon() {
return (
);
}
function CastIcon({ size = 22 }) {
return (
);
}
function VolumeIcon() {
return (
);
}
function MutedIcon() {
return (
);
}
function HeaderControls() {
const [now, setNow] = useState(() => new Date());
useEffect(() => {
const intervalId = window.setInterval(() => setNow(new Date()), 1000);
return () => window.clearInterval(intervalId);
}, []);
return (
RadioPlayer
);
}
function ArtworkPanel() {
return (
1
);
}
function TrackInfo() {
return (
);
}
function ProgressBar() {
return (
);
}
function PlayerControls() {
return (
);
}
function VolumeControl() {
return (
);
}
function RetroStarfield() {
const stars = Array.from({ length: 120 }, (_, index) => {
const angle = (index * 137.508) % 360;
const radius = 90 + ((index * 47) % 520);
const verticalBias = ((index * 29) % 180) - 90;
const x0 = Math.cos(angle * Math.PI / 180) * radius * 0.34;
const y0 = Math.sin(angle * Math.PI / 180) * radius * 0.24 + verticalBias * 0.18;
const x1 = Math.cos((angle + 24) * Math.PI / 180) * radius * 1.08;
const y1 = Math.sin((angle + 18) * Math.PI / 180) * radius * 0.72 + verticalBias;
const size = 2 + (index % 6) * 0.75;
const duration = 7 + (index % 9) * 1.1;
const delay = -((index * 0.71) % duration);
return {
id: index,
style: {
'--x0': `${x0.toFixed(1)}px`,
'--y0': `${y0.toFixed(1)}px`,
'--x1': `${x1.toFixed(1)}px`,
'--y1': `${y1.toFixed(1)}px`,
'--star-size': `${size.toFixed(1)}px`,
'--star-duration': `${duration.toFixed(1)}s`,
'--star-delay': `${delay.toFixed(1)}s`,
},
};
});
return (
{stars.map((star) => (
))}
);
}
function StationsOverlay() {
return (
Stations
-
Loading...
Preparing stations
);
}
function EditorOverlay() {
return (
);
}
function StationLibrary() {
return (
);
}
export default function App() {
return (
);
}