your personal website on atproto - mirror blento.app
at germ 125 lines 5.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 { TimerCardDefinition } from './utilities/TimerCard'; 33import { ClockCardDefinition } from './utilities/ClockCard'; 34import { CountdownCardDefinition } from './utilities/CountdownCard'; 35import { SpotifyCardDefinition } from './media/SpotifyCard'; 36import { AppleMusicCardDefinition } from './media/AppleMusicCard'; 37import { ButtonCardDefinition } from './utilities/ButtonCard'; 38import { GuestbookCardDefinition } from './social/GuestbookCard'; 39import { FriendsCardDefinition } from './social/FriendsCard'; 40import { GitHubContributorsCardDefinition } from './social/GitHubContributorsCard'; 41import { ProductHuntCardDefinition } from './social/ProductHuntCard'; 42import { KickstarterCardDefinition } from './social/KickstarterCard'; 43import { NpmxLikesCardDefinition } from './social/NpmxLikesCard'; 44import { NpmxLikesLeaderboardCardDefinition } from './social/NpmxLikesLeaderboardCard'; 45import { LastFMRecentTracksCardDefinition } from './media/LastFMCard/LastFMRecentTracksCard'; 46import { LastFMTopTracksCardDefinition } from './media/LastFMCard/LastFMTopTracksCard'; 47import { LastFMTopAlbumsCardDefinition } from './media/LastFMCard/LastFMTopAlbumsCard'; 48import { LastFMProfileCardDefinition } from './media/LastFMCard/LastFMProfileCard'; 49import { PlyrFMCardDefinition, PlyrFMCollectionCardDefinition } from './media/PlyrFMCard'; 50import { MarginCardDefinition } from './social/MarginCard'; 51import { SembleCollectionCardDefinition } from './social/SembleCollectionCard'; 52import { GermDMCardDefinition } from './social/GermDMCard'; 53// import { Model3DCardDefinition } from './visual/Model3DCard'; 54 55export const AllCardDefinitions = [ 56 GuestbookCardDefinition, 57 ButtonCardDefinition, 58 ImageCardDefinition, 59 TextCardDefinition, 60 LinkCardDefinition, 61 BigSocialCardDefinition, 62 UpdatedBlentosCardDefitition, 63 YoutubeCardDefinition, 64 BlueskyPostCardDefinition, 65 LatestBlueskyPostCardDefinition, 66 BlueskyFeedCardDefinition, 67 LivestreamCardDefitition, 68 LivestreamEmbedCardDefitition, 69 // EmbedCardDefinition, 70 MapCardDefinition, 71 ATProtoCollectionsCardDefinition, 72 SectionCardDefinition, 73 BlueskyMediaCardDefinition, 74 DinoGameCardDefinition, 75 BlueskyProfileCardDefinition, 76 GithubProfileCardDefitition, 77 TetrisCardDefinition, 78 FluidTextCardDefinition, 79 GifCardDefinition, 80 PopfeedReviewsCardDefinition, 81 TealFMPlaysCardDefinition, 82 PhotoGalleryCardDefinition, 83 StandardSiteDocumentListCardDefinition, 84 StatusphereCardDefinition, 85 EventCardDefinition, 86 VCardCardDefinition, 87 DrawCardDefinition, 88 TimerCardDefinition, 89 ClockCardDefinition, 90 CountdownCardDefinition, 91 SpotifyCardDefinition, 92 AppleMusicCardDefinition, 93 // Model3DCardDefinition 94 FriendsCardDefinition, 95 GitHubContributorsCardDefinition, 96 ProductHuntCardDefinition, 97 KickstarterCardDefinition, 98 NpmxLikesCardDefinition, 99 NpmxLikesLeaderboardCardDefinition, 100 LastFMRecentTracksCardDefinition, 101 LastFMTopTracksCardDefinition, 102 LastFMTopAlbumsCardDefinition, 103 LastFMProfileCardDefinition, 104 PlyrFMCardDefinition, 105 PlyrFMCollectionCardDefinition, 106 MarginCardDefinition, 107 SembleCollectionCardDefinition, 108 GermDMCardDefinition 109] as const; 110 111export const CardDefinitionsByType = AllCardDefinitions.reduce( 112 (acc, item) => { 113 acc[item.type] = item; 114 return acc; 115 }, 116 {} as Record<string, CardDefinition> 117); 118 119export function getColor(item: Item): string { 120 if (item.color) return item.color; 121 122 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 123 124 return cardDefColor || 'base'; 125}