f52701ef74
- Refactor AnalogClockWidget: Latin 1-12 digits (was Roman), `size` (px) prop with scale-based interior, optional `showLabels`. - Add useHomeClockSize (compact|large) and useHomeClockPosition hooks in clock.tsx — both persist to localStorage and broadcast a custom event so consumers stay in sync within the tab. - home.tsx: introduce SortableClockTile that participates in the same dnd-kit grid as app icons via id `__clock`. App ids now prefixed `app-` so they don't collide. Long-press (500ms) toggles compact↔large; large = col-span-2 row-span-2. Custom pointer handlers chain with dnd-kit's listener so drag still works. - handleDragEnd computes new app order excluding the clock and only fires updateOrder when app order actually changed. - Remove the standalone AnalogClockWidget block above the apps grid; clock now lives inside the grid. - When homeClockVisible is false, the clock is also excluded from sortable items (no dnd-kit warnings). - e2e test passed: in-grid placement, Latin digits, long-press resize, drag-reorder, position persists across reload.