refactor(calendar): stack layout, wider grid, fixed cell height
- Calendar widget stays stacked (calendar above events list) - Grid widens to max-w-2xl with fixed h-10 cells (no aspect-square height growth) - Gap between cells: 0.5 → 1.5 - Button system extracted to shared btn-* utility classes in app.css - Replaced Google Calendar link + Google Maps with OSM - Removed google icon from iconify subset Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-20
@@ -122,25 +122,7 @@ export function downloadICS(item: CalendarItemICS, filename: string): void {
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
|
||||
/** Google-Calendar's render-template URL. Times must be UTC, in
|
||||
* YYYYMMDDTHHMMSSZ format, joined by `/`. */
|
||||
export function googleCalUrl(item: CalendarItemICS): string {
|
||||
const start = item.start;
|
||||
const end =
|
||||
item.end ?? new Date(start.getTime() + 60 * 60 * 1000);
|
||||
const dates = `${fmtICSDate(start)}/${fmtICSDate(end)}`;
|
||||
const params = new URLSearchParams({
|
||||
action: "TEMPLATE",
|
||||
text: item.title,
|
||||
dates,
|
||||
});
|
||||
if (item.description) params.set("details", item.description);
|
||||
if (item.location) params.set("location", item.location);
|
||||
return `https://calendar.google.com/calendar/render?${params.toString()}`;
|
||||
}
|
||||
|
||||
/** Generic maps URL — Google Maps search by query. Safe with addresses
|
||||
* or place names. */
|
||||
/** OpenStreetMap search URL for an address or place name. */
|
||||
export function mapsUrl(location: string): string {
|
||||
return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(location)}`;
|
||||
return `https://www.openstreetmap.org/search?query=${encodeURIComponent(location)}`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user