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