your personal website on atproto - mirror blento.app
at next 94 lines 3.6 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 { YoutubeCardDefinition } from './YoutubeVideoCard'; 19import { BlueskyProfileCardDefinition } from './BlueskyProfileCard'; 20import { GithubProfileCardDefitition } from './GitHubProfileCard'; 21import { FluidTextCardDefinition } from './FluidTextCard'; 22import { GifCardDefinition } from './GIFCard'; 23import { PopfeedReviewsCardDefinition } from './PopfeedReviews'; 24import { TealFMPlaysCardDefinition } from './TealFMPlaysCard'; 25import { PhotoGalleryCardDefinition } from './PhotoGalleryCard'; 26import { StandardSiteDocumentListCardDefinition } from './StandardSiteDocumentListCard'; 27import { StatusphereCardDefinition } from './StatusphereCard'; 28import { EventCardDefinition } from './EventCard'; 29import { VCardCardDefinition } from './VCardCard'; 30import { DrawCardDefinition } from './DrawCard'; 31import { TimerCardDefinition } from './TimerCard'; 32import { ClockCardDefinition } from './ClockCard'; 33import { CountdownCardDefinition } from './CountdownCard'; 34import { SpotifyCardDefinition } from './SpotifyCard'; 35import { ButtonCardDefinition } from './ButtonCard'; 36import { GuestbookCardDefinition } from './GuestbookCard'; 37import { FriendsCardDefinition } from './FriendsCard'; 38// import { Model3DCardDefinition } from './Model3DCard'; 39 40export const AllCardDefinitions = [ 41 GuestbookCardDefinition, 42 ButtonCardDefinition, 43 ImageCardDefinition, 44 TextCardDefinition, 45 LinkCardDefinition, 46 BigSocialCardDefinition, 47 UpdatedBlentosCardDefitition, 48 YoutubeCardDefinition, 49 BlueskyPostCardDefinition, 50 LatestBlueskyPostCardDefinition, 51 LivestreamCardDefitition, 52 LivestreamEmbedCardDefitition, 53 // EmbedCardDefinition, 54 MapCardDefinition, 55 ATProtoCollectionsCardDefinition, 56 SectionCardDefinition, 57 BlueskyMediaCardDefinition, 58 DinoGameCardDefinition, 59 BlueskyProfileCardDefinition, 60 GithubProfileCardDefitition, 61 TetrisCardDefinition, 62 FluidTextCardDefinition, 63 GifCardDefinition, 64 PopfeedReviewsCardDefinition, 65 TealFMPlaysCardDefinition, 66 PhotoGalleryCardDefinition, 67 StandardSiteDocumentListCardDefinition, 68 StatusphereCardDefinition, 69 EventCardDefinition, 70 VCardCardDefinition, 71 DrawCardDefinition, 72 TimerCardDefinition, 73 ClockCardDefinition, 74 CountdownCardDefinition, 75 SpotifyCardDefinition, 76 // Model3DCardDefinition 77 FriendsCardDefinition 78] as const; 79 80export const CardDefinitionsByType = AllCardDefinitions.reduce( 81 (acc, item) => { 82 acc[item.type] = item; 83 return acc; 84 }, 85 {} as Record<string, CardDefinition> 86); 87 88export function getColor(item: Item): string { 89 if (item.color) return item.color; 90 91 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 92 93 return cardDefColor || 'base'; 94}