your personal website on atproto - mirror blento.app
at timer-card-tiny-fix 82 lines 3.2 kB view raw
1import type { Item } from '$lib/types'; 2import { ATProtoCollectionsCardDefinition } from './ATProtoCollectionsCard'; 3import { BigSocialCardDefinition } from './BigSocialCard'; 4import { BlueskyMediaCardDefinition } from './BlueskyMediaCard'; 5import { BlueskyPostCardDefinition } from './BlueskyPostCard'; 6import { LatestBlueskyPostCardDefinition } from './LatestBlueskyPostCard'; 7import { DinoGameCardDefinition } from './GameCards/DinoGameCard'; 8import { EmbedCardDefinition } from './EmbedCard'; 9import { TetrisCardDefinition } from './GameCards/TetrisCard'; 10import { ImageCardDefinition } from './ImageCard'; 11import { LinkCardDefinition } from './LinkCard'; 12import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './LivestreamCard'; 13import { MapCardDefinition } from './MapCard'; 14import { SectionCardDefinition } from './SectionCard'; 15import { UpdatedBlentosCardDefitition } from './SpecialCards/UpdatedBlentos'; 16import { TextCardDefinition } from './TextCard'; 17import type { CardDefinition } from './types'; 18import { VideoCardDefinition } from './VideoCard'; 19import { YoutubeCardDefinition } from './YoutubeVideoCard'; 20import { BlueskyProfileCardDefinition } from './BlueskyProfileCard'; 21import { GithubProfileCardDefitition } from './GitHubProfileCard'; 22import { FluidTextCardDefinition } from './FluidTextCard'; 23import { GifCardDefinition } from './GIFCard'; 24import { PopfeedReviewsCardDefinition } from './PopfeedReviews'; 25import { TealFMPlaysCardDefinition } from './TealFMPlaysCard'; 26import { PhotoGalleryCardDefinition } from './PhotoGalleryCard'; 27import { StandardSiteDocumentListCardDefinition } from './StandardSiteDocumentListCard'; 28import { StatusphereCardDefinition } from './StatusphereCard'; 29import { EventCardDefinition } from './EventCard'; 30import { VCardCardDefinition } from './VCardCard'; 31import { DrawCardDefinition } from './DrawCard'; 32import { TimerCardDefinition } from './TimerCard'; 33 34export const AllCardDefinitions = [ 35 ImageCardDefinition, 36 VideoCardDefinition, 37 TextCardDefinition, 38 LinkCardDefinition, 39 BigSocialCardDefinition, 40 UpdatedBlentosCardDefitition, 41 YoutubeCardDefinition, 42 BlueskyPostCardDefinition, 43 LatestBlueskyPostCardDefinition, 44 LivestreamCardDefitition, 45 LivestreamEmbedCardDefitition, 46 EmbedCardDefinition, 47 MapCardDefinition, 48 ATProtoCollectionsCardDefinition, 49 SectionCardDefinition, 50 BlueskyMediaCardDefinition, 51 DinoGameCardDefinition, 52 BlueskyProfileCardDefinition, 53 GithubProfileCardDefitition, 54 TetrisCardDefinition, 55 FluidTextCardDefinition, 56 GifCardDefinition, 57 PopfeedReviewsCardDefinition, 58 TealFMPlaysCardDefinition, 59 PhotoGalleryCardDefinition, 60 StandardSiteDocumentListCardDefinition, 61 StatusphereCardDefinition, 62 EventCardDefinition, 63 VCardCardDefinition, 64 DrawCardDefinition, 65 TimerCardDefinition 66] as const; 67 68export const CardDefinitionsByType = AllCardDefinitions.reduce( 69 (acc, item) => { 70 acc[item.type] = item; 71 return acc; 72 }, 73 {} as Record<string, CardDefinition> 74); 75 76export function getColor(item: Item): string { 77 if (item.color) return item.color; 78 79 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 80 81 return cardDefColor || 'base'; 82}