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