your personal website on atproto - mirror
blento.app
1import type { CardDefinition } from '../types';
2import TimerCard from './TimerCard.svelte';
3import TimerCardSettings from './TimerCardSettings.svelte';
4
5export type TimerMode = 'clock' | 'event';
6
7export type TimerCardData = {
8 mode: TimerMode;
9 label?: string;
10 // For clock mode
11 timezone?: string;
12 // For event mode: target date as ISO string
13 targetDate?: string;
14};
15
16export const TimerCardDefinition = {
17 type: 'timer',
18 contentComponent: TimerCard,
19 settingsComponent: TimerCardSettings,
20 sidebarButtonText: 'Timer',
21
22 createNew: (card) => {
23 card.w = 4;
24 card.h = 2;
25 card.mobileW = 8;
26 card.mobileH = 3;
27 card.cardData = {
28 mode: 'clock',
29 timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
30 } as TimerCardData;
31 },
32
33 allowSetColor: true,
34 name: 'Timer Card',
35 minW: 4,
36 canHaveLabel: true
37} as CardDefinition & { type: 'timer' };