your personal website on atproto - mirror blento.app
at snake 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 { SnakeGameCardDefinition } from './games/SnakeGameCard'; 10import { EmbedCardDefinition } from './media/EmbedCard'; 11import { TetrisCardDefinition } from './games/TetrisCard'; 12import { ImageCardDefinition } from './core/ImageCard'; 13import { LinkCardDefinition } from './core/LinkCard'; 14import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './media/LivestreamCard'; 15import { MapCardDefinition } from './core/MapCard'; 16import { SectionCardDefinition } from './core/SectionCard'; 17import { UpdatedBlentosCardDefitition } from './special/UpdatedBlentos'; 18import { TextCardDefinition } from './core/TextCard'; 19import type { CardDefinition } from './types'; 20import { YoutubeCardDefinition } from './media/YoutubeVideoCard'; 21import { BlueskyProfileCardDefinition } from './social/BlueskyProfileCard'; 22import { GithubProfileCardDefitition } from './social/GitHubProfileCard'; 23import { FluidTextCardDefinition } from './visual/FluidTextCard'; 24import { GifCardDefinition } from './media/GIFCard'; 25import { PopfeedReviewsCardDefinition } from './media/PopfeedReviews'; 26import { TealFMPlaysCardDefinition } from './media/TealFMPlaysCard'; 27import { PhotoGalleryCardDefinition } from './media/PhotoGalleryCard'; 28import { StandardSiteDocumentListCardDefinition } from './content/StandardSiteDocumentListCard'; 29import { StatusphereCardDefinition } from './media/StatusphereCard'; 30import { EventCardDefinition } from './social/EventCard'; 31import { VCardCardDefinition } from './social/VCardCard'; 32import { DrawCardDefinition } from './visual/DrawCard'; 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'; 44import { NpmxLikesCardDefinition } from './social/NpmxLikesCard'; 45import { NpmxLikesLeaderboardCardDefinition } from './social/NpmxLikesLeaderboardCard'; 46import { LastFMRecentTracksCardDefinition } from './media/LastFMCard/LastFMRecentTracksCard'; 47import { LastFMTopTracksCardDefinition } from './media/LastFMCard/LastFMTopTracksCard'; 48import { LastFMTopAlbumsCardDefinition } from './media/LastFMCard/LastFMTopAlbumsCard'; 49import { LastFMProfileCardDefinition } from './media/LastFMCard/LastFMProfileCard'; 50import { PlyrFMCardDefinition, PlyrFMCollectionCardDefinition } from './media/PlyrFMCard'; 51import { MarginCardDefinition } from './social/MarginCard'; 52import { SembleCollectionCardDefinition } from './social/SembleCollectionCard'; 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 SnakeGameCardDefinition, 76 BlueskyProfileCardDefinition, 77 GithubProfileCardDefitition, 78 TetrisCardDefinition, 79 FluidTextCardDefinition, 80 GifCardDefinition, 81 PopfeedReviewsCardDefinition, 82 TealFMPlaysCardDefinition, 83 PhotoGalleryCardDefinition, 84 StandardSiteDocumentListCardDefinition, 85 StatusphereCardDefinition, 86 EventCardDefinition, 87 VCardCardDefinition, 88 DrawCardDefinition, 89 TimerCardDefinition, 90 ClockCardDefinition, 91 CountdownCardDefinition, 92 SpotifyCardDefinition, 93 AppleMusicCardDefinition, 94 // Model3DCardDefinition 95 FriendsCardDefinition, 96 GitHubContributorsCardDefinition, 97 ProductHuntCardDefinition, 98 KickstarterCardDefinition, 99 NpmxLikesCardDefinition, 100 NpmxLikesLeaderboardCardDefinition, 101 LastFMRecentTracksCardDefinition, 102 LastFMTopTracksCardDefinition, 103 LastFMTopAlbumsCardDefinition, 104 LastFMProfileCardDefinition, 105 PlyrFMCardDefinition, 106 PlyrFMCollectionCardDefinition, 107 MarginCardDefinition, 108 SembleCollectionCardDefinition 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}