your personal website on atproto - mirror blento.app
at show-login-error 96 lines 3.7 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 { AppleMusicCardDefinition } from './AppleMusicCard'; 36import { ButtonCardDefinition } from './ButtonCard'; 37import { GuestbookCardDefinition } from './GuestbookCard'; 38import { FriendsCardDefinition } from './FriendsCard'; 39// import { Model3DCardDefinition } from './Model3DCard'; 40 41export const AllCardDefinitions = [ 42 GuestbookCardDefinition, 43 ButtonCardDefinition, 44 ImageCardDefinition, 45 TextCardDefinition, 46 LinkCardDefinition, 47 BigSocialCardDefinition, 48 UpdatedBlentosCardDefitition, 49 YoutubeCardDefinition, 50 BlueskyPostCardDefinition, 51 LatestBlueskyPostCardDefinition, 52 LivestreamCardDefitition, 53 LivestreamEmbedCardDefitition, 54 // EmbedCardDefinition, 55 MapCardDefinition, 56 ATProtoCollectionsCardDefinition, 57 SectionCardDefinition, 58 BlueskyMediaCardDefinition, 59 DinoGameCardDefinition, 60 BlueskyProfileCardDefinition, 61 GithubProfileCardDefitition, 62 TetrisCardDefinition, 63 FluidTextCardDefinition, 64 GifCardDefinition, 65 PopfeedReviewsCardDefinition, 66 TealFMPlaysCardDefinition, 67 PhotoGalleryCardDefinition, 68 StandardSiteDocumentListCardDefinition, 69 StatusphereCardDefinition, 70 EventCardDefinition, 71 VCardCardDefinition, 72 DrawCardDefinition, 73 TimerCardDefinition, 74 ClockCardDefinition, 75 CountdownCardDefinition, 76 SpotifyCardDefinition, 77 AppleMusicCardDefinition, 78 // Model3DCardDefinition 79 FriendsCardDefinition 80] as const; 81 82export const CardDefinitionsByType = AllCardDefinitions.reduce( 83 (acc, item) => { 84 acc[item.type] = item; 85 return acc; 86 }, 87 {} as Record<string, CardDefinition> 88); 89 90export function getColor(item: Item): string { 91 if (item.color) return item.color; 92 93 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 94 95 return cardDefColor || 'base'; 96}