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 { 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 { RecordVisualizerCardDefinition } from './visual/RecordVisualizerCard';
33import { TimerCardDefinition } from './utilities/TimerCard';
34import { ClockCardDefinition } from './utilities/ClockCard';
35import { CountdownCardDefinition } from './utilities/CountdownCard';
36import { SpotifyCardDefinition } from './media/SpotifyCard';
37import { AppleMusicCardDefinition } from './media/AppleMusicCard';
38import { ButtonCardDefinition } from './utilities/ButtonCard';
39import { GuestbookCardDefinition } from './social/GuestbookCard';
40import { FriendsCardDefinition } from './social/FriendsCard';
41import { GitHubContributorsCardDefinition } from './social/GitHubContributorsCard';
42import { ProductHuntCardDefinition } from './social/ProductHuntCard';
43import { KickstarterCardDefinition } from './social/KickstarterCard';
44// import { Model3DCardDefinition } from './visual/Model3DCard';
45
46export const AllCardDefinitions = [
47 GuestbookCardDefinition,
48 ButtonCardDefinition,
49 ImageCardDefinition,
50 TextCardDefinition,
51 LinkCardDefinition,
52 BigSocialCardDefinition,
53 UpdatedBlentosCardDefitition,
54 YoutubeCardDefinition,
55 BlueskyPostCardDefinition,
56 LatestBlueskyPostCardDefinition,
57 BlueskyFeedCardDefinition,
58 LivestreamCardDefitition,
59 LivestreamEmbedCardDefitition,
60 // EmbedCardDefinition,
61 MapCardDefinition,
62 ATProtoCollectionsCardDefinition,
63 SectionCardDefinition,
64 BlueskyMediaCardDefinition,
65 DinoGameCardDefinition,
66 BlueskyProfileCardDefinition,
67 GithubProfileCardDefitition,
68 TetrisCardDefinition,
69 FluidTextCardDefinition,
70 GifCardDefinition,
71 PopfeedReviewsCardDefinition,
72 TealFMPlaysCardDefinition,
73 PhotoGalleryCardDefinition,
74 StandardSiteDocumentListCardDefinition,
75 StatusphereCardDefinition,
76 EventCardDefinition,
77 VCardCardDefinition,
78 DrawCardDefinition,
79 RecordVisualizerCardDefinition,
80 TimerCardDefinition,
81 ClockCardDefinition,
82 CountdownCardDefinition,
83 SpotifyCardDefinition,
84 AppleMusicCardDefinition,
85 // Model3DCardDefinition
86 FriendsCardDefinition,
87 GitHubContributorsCardDefinition,
88 ProductHuntCardDefinition,
89 KickstarterCardDefinition
90] as const;
91
92export const CardDefinitionsByType = AllCardDefinitions.reduce(
93 (acc, item) => {
94 acc[item.type] = item;
95 return acc;
96 },
97 {} as Record<string, CardDefinition>
98);
99
100export function getColor(item: Item): string {
101 if (item.color) return item.color;
102
103 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor;
104
105 return cardDefColor || 'base';
106}