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