Ported HomePanel to TypeScript