···11-# Todo for beta version
22-33-- site.standard
44- - move description to markdownDescription and set description as text only
55-66-- allow editing on mobile
77-88-- get automatic layout for mobile if only edited on desktop (and vice versa)
99-1010-- add cards in middle of current position (both mobile and desktop version)
1111-1212-- show nsfw warnings
1313-1414-- card with big call to action button "create your blento"
1515-1616-- ask to fill with some default cards on page creation
1717-1818-- when adding images try to add them in a size that best fits aspect ratio
1919-2020-- onboarding?
2121-2222-- switch sidebar to a quick list of available cards with search function
2323-2424-- test
2525- - selfhosting
2626-2727-- guestbook card
2828-2929-- onboarding?
3030-3131-- switch sidebar to a quick list of available cards with search function
3232-3333-- test
3434- - selfhosting
3535-3636-- guestbook card
3737-3838-- analytics?
3939-4040-- refresh recently updated blentos (move to top of list, update profiles every 24 hours)
4141-4242-- server side oauth?
···1515import { UpdatedBlentosCardDefitition } from './SpecialCards/UpdatedBlentos';
1616import { TextCardDefinition } from './TextCard';
1717import type { CardDefinition } from './types';
1818-import { VideoCardDefinition } from './VideoCard';
1918import { YoutubeCardDefinition } from './YoutubeVideoCard';
2019import { BlueskyProfileCardDefinition } from './BlueskyProfileCard';
2120import { GithubProfileCardDefitition } from './GitHubProfileCard';
···3029import { VCardCardDefinition } from './VCardCard';
3130import { DrawCardDefinition } from './DrawCard';
3231import { TimerCardDefinition } from './TimerCard';
3232+import { ClockCardDefinition } from './ClockCard';
3333+import { CountdownCardDefinition } from './CountdownCard';
3334import { SpotifyCardDefinition } from './SpotifyCard';
3435import { ButtonCardDefinition } from './ButtonCard';
3536import { GuestbookCardDefinition } from './GuestbookCard';
3737+import { FriendsCardDefinition } from './FriendsCard';
3638// import { Model3DCardDefinition } from './Model3DCard';
37393840export const AllCardDefinitions = [
3941 GuestbookCardDefinition,
4042 ButtonCardDefinition,
4143 ImageCardDefinition,
4242- VideoCardDefinition,
4344 TextCardDefinition,
4445 LinkCardDefinition,
4546 BigSocialCardDefinition,
···4950 LatestBlueskyPostCardDefinition,
5051 LivestreamCardDefitition,
5152 LivestreamEmbedCardDefitition,
5252- EmbedCardDefinition,
5353+ // EmbedCardDefinition,
5354 MapCardDefinition,
5455 ATProtoCollectionsCardDefinition,
5556 SectionCardDefinition,
···6970 VCardCardDefinition,
7071 DrawCardDefinition,
7172 TimerCardDefinition,
7272- SpotifyCardDefinition
7373+ ClockCardDefinition,
7474+ CountdownCardDefinition,
7575+ SpotifyCardDefinition,
7376 // Model3DCardDefinition
7777+ FriendsCardDefinition
7478] as const;
75797680export const CardDefinitionsByType = AllCardDefinitions.reduce(
+6-7
src/lib/cards/types.ts
···1313 onclose: () => void;
1414};
15151616-export type SidebarComponentProps = {
1717- onclick: () => void;
1818-};
1919-2016export type ContentComponentProps = {
2117 item: Item;
2218 isEditing?: boolean;
···3228 creationModalComponent?: Component<CreationModalComponentProps>;
33293430 upload?: (item: Item) => Promise<Item>; // optionally upload some other data needed for this card
3535-3636- // has to be set for a card to appear in the sidebar
3737- sidebarButtonText?: string;
38313932 // if this component exists, a settings button with a popover will be shown containing this component
4033 settingsComponent?: Component<SettingsComponentProps>;
···7366 canHaveLabel?: boolean;
74677568 migrate?: (item: Item) => void;
6969+7070+ groups?: string[];
7171+7272+ keywords?: string[];
7373+7474+ icon?: string;
7675};