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