your personal website on atproto - mirror
blento.app
1import type { Blob } from '@atcute/lexicons';
2import type { AppBskyActorDefs } from '@atcute/bluesky';
3
4export type Item = {
5 id: string;
6
7 w: number;
8 h: number;
9 x: number;
10 y: number;
11
12 mobileW: number;
13 mobileH: number;
14 mobileX: number;
15 mobileY: number;
16
17 cardType: string;
18
19 color?: string;
20
21 cardData: any;
22
23 updatedAt?: string;
24
25 version?: number;
26
27 page?: string;
28};
29
30export type PronounSet = {
31 forms: string[];
32};
33
34export type PronounsRecord = {
35 value?: {
36 sets?: PronounSet[];
37 displayMode?: string;
38 createdAt?: string;
39 updatedAt?: string;
40 };
41};
42
43export type WebsiteData = {
44 page: string;
45 did: string;
46 handle: string;
47
48 cards: Item[];
49 publication: {
50 url?: string;
51 name?: string;
52 description?: string;
53 icon?: Blob;
54 preferences?: {
55 /**
56 * @deprecated
57 *
58 * use hideProfileSection instead
59 */
60 hideProfile?: boolean;
61
62 // use this instead
63 hideProfileSection?: boolean;
64
65 // 'side' (default on desktop) or 'top' (always top like mobile view)
66 profilePosition?: 'side' | 'top';
67
68 // theme colors
69 accentColor?: string;
70 baseColor?: string;
71
72 // layout mirroring: 0/undefined=never edited, 1=desktop only, 2=mobile only, 3=both
73 editedOn?: number;
74 };
75 };
76 profile: AppBskyActorDefs.ProfileViewDetailed;
77 pronouns?: string;
78 pronounsRecord?: PronounsRecord;
79
80 additionalData: Record<string, unknown>;
81 updatedAt: number;
82 version?: number;
83};