your personal website on atproto - mirror blento.app
at record-visualizer-card 106 lines 4.5 kB view raw
1import type { Item } from '$lib/types'; 2import { ATProtoCollectionsCardDefinition } from './social/ATProtoCollectionsCard'; 3import { BigSocialCardDefinition } from './social/BigSocialCard'; 4import { BlueskyMediaCardDefinition } from './media/BlueskyMediaCard'; 5import { BlueskyPostCardDefinition } from './social/BlueskyPostCard'; 6import { BlueskyFeedCardDefinition } from './social/BlueskyFeedCard'; 7import { LatestBlueskyPostCardDefinition } from './social/LatestBlueskyPostCard'; 8import { DinoGameCardDefinition } from './games/DinoGameCard'; 9import { EmbedCardDefinition } from './media/EmbedCard'; 10import { TetrisCardDefinition } from './games/TetrisCard'; 11import { ImageCardDefinition } from './core/ImageCard'; 12import { LinkCardDefinition } from './core/LinkCard'; 13import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './media/LivestreamCard'; 14import { MapCardDefinition } from './core/MapCard'; 15import { SectionCardDefinition } from './core/SectionCard'; 16import { UpdatedBlentosCardDefitition } from './special/UpdatedBlentos'; 17import { TextCardDefinition } from './core/TextCard'; 18import type { CardDefinition } from './types'; 19import { YoutubeCardDefinition } from './media/YoutubeVideoCard'; 20import { BlueskyProfileCardDefinition } from './social/BlueskyProfileCard'; 21import { GithubProfileCardDefitition } from './social/GitHubProfileCard'; 22import { FluidTextCardDefinition } from './visual/FluidTextCard'; 23import { GifCardDefinition } from './media/GIFCard'; 24import { PopfeedReviewsCardDefinition } from './media/PopfeedReviews'; 25import { TealFMPlaysCardDefinition } from './media/TealFMPlaysCard'; 26import { PhotoGalleryCardDefinition } from './media/PhotoGalleryCard'; 27import { StandardSiteDocumentListCardDefinition } from './content/StandardSiteDocumentListCard'; 28import { StatusphereCardDefinition } from './media/StatusphereCard'; 29import { EventCardDefinition } from './social/EventCard'; 30import { VCardCardDefinition } from './social/VCardCard'; 31import { DrawCardDefinition } from './visual/DrawCard'; 32import { RecordVisualizerCardDefinition } from './visual/RecordVisualizerCard'; 33import { TimerCardDefinition } from './utilities/TimerCard'; 34import { ClockCardDefinition } from './utilities/ClockCard'; 35import { CountdownCardDefinition } from './utilities/CountdownCard'; 36import { SpotifyCardDefinition } from './media/SpotifyCard'; 37import { AppleMusicCardDefinition } from './media/AppleMusicCard'; 38import { ButtonCardDefinition } from './utilities/ButtonCard'; 39import { GuestbookCardDefinition } from './social/GuestbookCard'; 40import { FriendsCardDefinition } from './social/FriendsCard'; 41import { GitHubContributorsCardDefinition } from './social/GitHubContributorsCard'; 42import { ProductHuntCardDefinition } from './social/ProductHuntCard'; 43import { KickstarterCardDefinition } from './social/KickstarterCard'; 44// import { Model3DCardDefinition } from './visual/Model3DCard'; 45 46export const AllCardDefinitions = [ 47 GuestbookCardDefinition, 48 ButtonCardDefinition, 49 ImageCardDefinition, 50 TextCardDefinition, 51 LinkCardDefinition, 52 BigSocialCardDefinition, 53 UpdatedBlentosCardDefitition, 54 YoutubeCardDefinition, 55 BlueskyPostCardDefinition, 56 LatestBlueskyPostCardDefinition, 57 BlueskyFeedCardDefinition, 58 LivestreamCardDefitition, 59 LivestreamEmbedCardDefitition, 60 // EmbedCardDefinition, 61 MapCardDefinition, 62 ATProtoCollectionsCardDefinition, 63 SectionCardDefinition, 64 BlueskyMediaCardDefinition, 65 DinoGameCardDefinition, 66 BlueskyProfileCardDefinition, 67 GithubProfileCardDefitition, 68 TetrisCardDefinition, 69 FluidTextCardDefinition, 70 GifCardDefinition, 71 PopfeedReviewsCardDefinition, 72 TealFMPlaysCardDefinition, 73 PhotoGalleryCardDefinition, 74 StandardSiteDocumentListCardDefinition, 75 StatusphereCardDefinition, 76 EventCardDefinition, 77 VCardCardDefinition, 78 DrawCardDefinition, 79 RecordVisualizerCardDefinition, 80 TimerCardDefinition, 81 ClockCardDefinition, 82 CountdownCardDefinition, 83 SpotifyCardDefinition, 84 AppleMusicCardDefinition, 85 // Model3DCardDefinition 86 FriendsCardDefinition, 87 GitHubContributorsCardDefinition, 88 ProductHuntCardDefinition, 89 KickstarterCardDefinition 90] as const; 91 92export const CardDefinitionsByType = AllCardDefinitions.reduce( 93 (acc, item) => { 94 acc[item.type] = item; 95 return acc; 96 }, 97 {} as Record<string, CardDefinition> 98); 99 100export function getColor(item: Item): string { 101 if (item.color) return item.color; 102 103 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 104 105 return cardDefColor || 'base'; 106}