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