your personal website on atproto - mirror blento.app
at fix-cards-loading 123 lines 5.4 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'; 52// import { Model3DCardDefinition } from './visual/Model3DCard'; 53 54export const AllCardDefinitions = [ 55 GuestbookCardDefinition, 56 ButtonCardDefinition, 57 ImageCardDefinition, 58 TextCardDefinition, 59 LinkCardDefinition, 60 BigSocialCardDefinition, 61 UpdatedBlentosCardDefitition, 62 YoutubeCardDefinition, 63 BlueskyPostCardDefinition, 64 LatestBlueskyPostCardDefinition, 65 BlueskyFeedCardDefinition, 66 LivestreamCardDefitition, 67 LivestreamEmbedCardDefitition, 68 // EmbedCardDefinition, 69 MapCardDefinition, 70 ATProtoCollectionsCardDefinition, 71 SectionCardDefinition, 72 BlueskyMediaCardDefinition, 73 DinoGameCardDefinition, 74 BlueskyProfileCardDefinition, 75 GithubProfileCardDefitition, 76 TetrisCardDefinition, 77 FluidTextCardDefinition, 78 GifCardDefinition, 79 PopfeedReviewsCardDefinition, 80 TealFMPlaysCardDefinition, 81 PhotoGalleryCardDefinition, 82 StandardSiteDocumentListCardDefinition, 83 StatusphereCardDefinition, 84 EventCardDefinition, 85 VCardCardDefinition, 86 DrawCardDefinition, 87 TimerCardDefinition, 88 ClockCardDefinition, 89 CountdownCardDefinition, 90 SpotifyCardDefinition, 91 AppleMusicCardDefinition, 92 // Model3DCardDefinition 93 FriendsCardDefinition, 94 GitHubContributorsCardDefinition, 95 ProductHuntCardDefinition, 96 KickstarterCardDefinition, 97 NpmxLikesCardDefinition, 98 NpmxLikesLeaderboardCardDefinition, 99 LastFMRecentTracksCardDefinition, 100 LastFMTopTracksCardDefinition, 101 LastFMTopAlbumsCardDefinition, 102 LastFMProfileCardDefinition, 103 PlyrFMCardDefinition, 104 PlyrFMCollectionCardDefinition, 105 MarginCardDefinition, 106 SembleCollectionCardDefinition 107] as const; 108 109export const CardDefinitionsByType = AllCardDefinitions.reduce( 110 (acc, item) => { 111 acc[item.type] = item; 112 return acc; 113 }, 114 {} as Record<string, CardDefinition> 115); 116 117export function getColor(item: Item): string { 118 if (item.color) return item.color; 119 120 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 121 122 return cardDefColor || 'base'; 123}