@linktr.ee/linkapp 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dev-server/classic/main.tsx +45 -24
- package/dev-server/classic.html +58 -0
- package/dev-server/featured/main.tsx +45 -24
- package/dev-server/featured.html +58 -0
- package/dev-server/preview/Preview.tsx +425 -14
- package/dist/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.js +3 -3
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +10 -4
- package/dist/commands/deploy.js.map +1 -1
- package/dist/components/ThemeStyle.d.ts +30 -0
- package/dist/components/ThemeStyle.d.ts.map +1 -0
- package/dist/components/ThemeStyle.js +33 -0
- package/dist/components/ThemeStyle.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +1 -4
- package/dist/lib/build/detect-layouts.js.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.d.ts.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +6 -0
- package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
- package/dist/lib/deploy/pack-project.d.ts.map +1 -1
- package/dist/lib/deploy/pack-project.js +32 -5
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/upload.d.ts +1 -0
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +12 -2
- package/dist/lib/deploy/upload.js.map +1 -1
- package/dist/lib/deploy/validation.d.ts.map +1 -1
- package/dist/lib/deploy/validation.js +4 -61
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +48 -17
- package/dist/lib/utils/setup-runtime.js.map +1 -1
- package/dist/schema/config.schema.d.ts +50 -114
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +94 -18
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/sdk/index.d.ts +21 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +21 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/send-message.d.ts +16 -0
- package/dist/sdk/send-message.d.ts.map +1 -0
- package/dist/sdk/send-message.js +34 -0
- package/dist/sdk/send-message.js.map +1 -0
- package/dist/sdk/use-open-popup.d.ts +23 -0
- package/dist/sdk/use-open-popup.d.ts.map +1 -0
- package/dist/sdk/use-open-popup.js +29 -0
- package/dist/sdk/use-open-popup.js.map +1 -0
- package/dist/types.d.ts +149 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +37 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -3
- package/runtime/index.html +58 -0
|
@@ -27,69 +27,27 @@ declare const manifestSchema: z.ZodObject<{
|
|
|
27
27
|
}, z.core.$strip>;
|
|
28
28
|
}, z.core.$strip>;
|
|
29
29
|
}, z.core.$strip>;
|
|
30
|
-
declare const settingsElementSchema: z.
|
|
31
|
-
id: z.ZodString;
|
|
32
|
-
inputType: z.ZodEnum<{
|
|
33
|
-
number: "number";
|
|
34
|
-
array: "array";
|
|
35
|
-
url: "url";
|
|
36
|
-
text: "text";
|
|
37
|
-
switch: "switch";
|
|
38
|
-
select: "select";
|
|
39
|
-
checkbox: "checkbox";
|
|
40
|
-
linkBehavior: "linkBehavior";
|
|
41
|
-
textarea: "textarea";
|
|
42
|
-
}>;
|
|
43
|
-
title: z.ZodOptional<z.ZodString>;
|
|
44
|
-
description: z.ZodOptional<z.ZodString>;
|
|
45
|
-
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
46
|
-
label: z.ZodOptional<z.ZodString>;
|
|
47
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
48
|
-
validation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
49
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
50
|
-
label: z.ZodString;
|
|
51
|
-
value: z.ZodUnknown;
|
|
52
|
-
}, z.core.$strip>>>;
|
|
53
|
-
linkBehaviorLabels: z.ZodOptional<z.ZodObject<{
|
|
54
|
-
embedLabel: z.ZodString;
|
|
55
|
-
linkOffLabel: z.ZodString;
|
|
56
|
-
}, z.core.$strip>>;
|
|
57
|
-
}, z.core.$loose>;
|
|
30
|
+
declare const settingsElementSchema: z.ZodType<any>;
|
|
58
31
|
declare const settingsSchema: z.ZodObject<{
|
|
59
32
|
title: z.ZodString;
|
|
60
|
-
|
|
61
|
-
|
|
33
|
+
icon: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
file: "file";
|
|
35
|
+
settings: "settings";
|
|
36
|
+
text_and_media: "text_and_media";
|
|
37
|
+
question: "question";
|
|
38
|
+
}>>;
|
|
39
|
+
uses_url: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
settings_tab_title: z.ZodOptional<z.ZodString>;
|
|
41
|
+
overview: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
title: z.ZodOptional<z.ZodString>;
|
|
62
43
|
description: z.ZodString;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
elements: z.ZodArray<z.ZodObject<{
|
|
66
|
-
id: z.ZodString;
|
|
67
|
-
inputType: z.ZodEnum<{
|
|
68
|
-
number: "number";
|
|
69
|
-
array: "array";
|
|
70
|
-
url: "url";
|
|
71
|
-
text: "text";
|
|
72
|
-
switch: "switch";
|
|
73
|
-
select: "select";
|
|
74
|
-
checkbox: "checkbox";
|
|
75
|
-
linkBehavior: "linkBehavior";
|
|
76
|
-
textarea: "textarea";
|
|
77
|
-
}>;
|
|
44
|
+
}, z.core.$strip>>;
|
|
45
|
+
setup_instructions: z.ZodOptional<z.ZodObject<{
|
|
78
46
|
title: z.ZodOptional<z.ZodString>;
|
|
79
|
-
description: z.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
validation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
84
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
85
|
-
label: z.ZodString;
|
|
86
|
-
value: z.ZodUnknown;
|
|
87
|
-
}, z.core.$strip>>>;
|
|
88
|
-
linkBehaviorLabels: z.ZodOptional<z.ZodObject<{
|
|
89
|
-
embedLabel: z.ZodString;
|
|
90
|
-
linkOffLabel: z.ZodString;
|
|
91
|
-
}, z.core.$strip>>;
|
|
92
|
-
}, z.core.$loose>>;
|
|
47
|
+
description: z.ZodString;
|
|
48
|
+
}, z.core.$strip>>;
|
|
49
|
+
elements: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
|
|
50
|
+
has_settings: z.ZodOptional<z.ZodBoolean>;
|
|
93
51
|
supports_featured_layout: z.ZodOptional<z.ZodBoolean>;
|
|
94
52
|
}, z.core.$strip>;
|
|
95
53
|
declare const urlMatchRulesSchema: z.ZodObject<{
|
|
@@ -133,39 +91,24 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
133
91
|
}, z.core.$strip>;
|
|
134
92
|
settings: z.ZodObject<{
|
|
135
93
|
title: z.ZodString;
|
|
136
|
-
|
|
137
|
-
|
|
94
|
+
icon: z.ZodOptional<z.ZodEnum<{
|
|
95
|
+
file: "file";
|
|
96
|
+
settings: "settings";
|
|
97
|
+
text_and_media: "text_and_media";
|
|
98
|
+
question: "question";
|
|
99
|
+
}>>;
|
|
100
|
+
uses_url: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
+
settings_tab_title: z.ZodOptional<z.ZodString>;
|
|
102
|
+
overview: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
title: z.ZodOptional<z.ZodString>;
|
|
138
104
|
description: z.ZodString;
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
elements: z.ZodArray<z.ZodObject<{
|
|
142
|
-
id: z.ZodString;
|
|
143
|
-
inputType: z.ZodEnum<{
|
|
144
|
-
number: "number";
|
|
145
|
-
array: "array";
|
|
146
|
-
url: "url";
|
|
147
|
-
text: "text";
|
|
148
|
-
switch: "switch";
|
|
149
|
-
select: "select";
|
|
150
|
-
checkbox: "checkbox";
|
|
151
|
-
linkBehavior: "linkBehavior";
|
|
152
|
-
textarea: "textarea";
|
|
153
|
-
}>;
|
|
105
|
+
}, z.core.$strip>>;
|
|
106
|
+
setup_instructions: z.ZodOptional<z.ZodObject<{
|
|
154
107
|
title: z.ZodOptional<z.ZodString>;
|
|
155
|
-
description: z.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
validation: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
160
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
161
|
-
label: z.ZodString;
|
|
162
|
-
value: z.ZodUnknown;
|
|
163
|
-
}, z.core.$strip>>>;
|
|
164
|
-
linkBehaviorLabels: z.ZodOptional<z.ZodObject<{
|
|
165
|
-
embedLabel: z.ZodString;
|
|
166
|
-
linkOffLabel: z.ZodString;
|
|
167
|
-
}, z.core.$strip>>;
|
|
168
|
-
}, z.core.$loose>>;
|
|
108
|
+
description: z.ZodString;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
elements: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
|
|
111
|
+
has_settings: z.ZodOptional<z.ZodBoolean>;
|
|
169
112
|
supports_featured_layout: z.ZodOptional<z.ZodBoolean>;
|
|
170
113
|
}, z.core.$strip>;
|
|
171
114
|
url_match_rules: z.ZodOptional<z.ZodObject<{
|
|
@@ -186,11 +129,13 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
186
129
|
carousel: "carousel";
|
|
187
130
|
}>>;
|
|
188
131
|
theme: z.ZodObject<{
|
|
132
|
+
isOutlineStyle: z.ZodBoolean;
|
|
133
|
+
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
189
134
|
textColor: z.ZodString;
|
|
190
135
|
backgroundColor: z.ZodString;
|
|
191
136
|
borderRadius: z.ZodString;
|
|
192
137
|
borderColor: z.ZodString;
|
|
193
|
-
|
|
138
|
+
backgroundHover: z.ZodString;
|
|
194
139
|
contrastColor: z.ZodString;
|
|
195
140
|
textHoverColor: z.ZodString;
|
|
196
141
|
}, z.core.$strip>;
|
|
@@ -251,30 +196,19 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
251
196
|
};
|
|
252
197
|
settings: {
|
|
253
198
|
title: string;
|
|
254
|
-
|
|
255
|
-
|
|
199
|
+
elements: any[];
|
|
200
|
+
icon?: "file" | "settings" | "text_and_media" | "question" | undefined;
|
|
201
|
+
uses_url?: boolean | undefined;
|
|
202
|
+
settings_tab_title?: string | undefined;
|
|
203
|
+
overview?: {
|
|
204
|
+
description: string;
|
|
205
|
+
title?: string | undefined;
|
|
206
|
+
} | undefined;
|
|
207
|
+
setup_instructions?: {
|
|
256
208
|
description: string;
|
|
257
|
-
support_link: string;
|
|
258
|
-
};
|
|
259
|
-
elements: {
|
|
260
|
-
[x: string]: unknown;
|
|
261
|
-
id: string;
|
|
262
|
-
inputType: "number" | "array" | "url" | "text" | "switch" | "select" | "checkbox" | "linkBehavior" | "textarea";
|
|
263
209
|
title?: string | undefined;
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
label?: string | undefined;
|
|
267
|
-
placeholder?: string | undefined;
|
|
268
|
-
validation?: Record<string, unknown> | undefined;
|
|
269
|
-
options?: {
|
|
270
|
-
label: string;
|
|
271
|
-
value: unknown;
|
|
272
|
-
}[] | undefined;
|
|
273
|
-
linkBehaviorLabels?: {
|
|
274
|
-
embedLabel: string;
|
|
275
|
-
linkOffLabel: string;
|
|
276
|
-
} | undefined;
|
|
277
|
-
}[];
|
|
210
|
+
} | undefined;
|
|
211
|
+
has_settings?: boolean | undefined;
|
|
278
212
|
supports_featured_layout?: boolean | undefined;
|
|
279
213
|
};
|
|
280
214
|
url_match_rules?: {
|
|
@@ -290,11 +224,13 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
290
224
|
[x: string]: unknown;
|
|
291
225
|
linkUrl: string;
|
|
292
226
|
theme: {
|
|
227
|
+
isOutlineStyle: boolean;
|
|
228
|
+
cssVariables: Record<string, string>;
|
|
293
229
|
textColor: string;
|
|
294
230
|
backgroundColor: string;
|
|
295
231
|
borderRadius: string;
|
|
296
232
|
borderColor: string;
|
|
297
|
-
|
|
233
|
+
backgroundHover: string;
|
|
298
234
|
contrastColor: string;
|
|
299
235
|
textHoverColor: string;
|
|
300
236
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA8BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBlB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA8BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBlB,CAAA;AAqFF,QAAA,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAqB/B,CAAA;AAGX,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;iBAWlB,CAAA;AAGF,QAAA,MAAM,mBAAmB;;;;;;;;iBAgBvB,CAAA;AAyCF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU9B,CAAA;AAGF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
|
|
@@ -45,35 +45,108 @@ const manifestSchema = z.object({
|
|
|
45
45
|
search_terms: z.array(z.string()).min(1, 'At least one search term is required'),
|
|
46
46
|
author: authorSchema,
|
|
47
47
|
});
|
|
48
|
+
// Enums matching the backend types
|
|
49
|
+
const settingsIconSchema = z.enum(['file', 'settings', 'text_and_media', 'question']);
|
|
50
|
+
const settingsElementInputSchema = z.enum([
|
|
51
|
+
'button',
|
|
52
|
+
'text',
|
|
53
|
+
'textarea',
|
|
54
|
+
'number',
|
|
55
|
+
'radio',
|
|
56
|
+
'checkbox',
|
|
57
|
+
'select',
|
|
58
|
+
'password',
|
|
59
|
+
'switch',
|
|
60
|
+
'linkBehavior',
|
|
61
|
+
'file',
|
|
62
|
+
'url',
|
|
63
|
+
'integration',
|
|
64
|
+
'embedOption',
|
|
65
|
+
'array',
|
|
66
|
+
]);
|
|
67
|
+
const integrationCapabilitySchema = z.enum(['MANAGE_EMAIL_SUBSCRIBERS']);
|
|
68
|
+
const interactionEventSchema = z.enum(['click']);
|
|
69
|
+
const actionTypeSchema = z.enum(['update-link']);
|
|
70
|
+
// Supporting schemas
|
|
71
|
+
const settingsElementActionSchema = z.object({
|
|
72
|
+
on: interactionEventSchema,
|
|
73
|
+
type: actionTypeSchema,
|
|
74
|
+
data: z.object({
|
|
75
|
+
link_type: z.string(),
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
const settingsElementValidationSchema = z.object({
|
|
79
|
+
required: z.boolean().optional(),
|
|
80
|
+
pattern: z.string().optional(),
|
|
81
|
+
minLength: z.number().optional(),
|
|
82
|
+
maxLength: z.number().optional(),
|
|
83
|
+
min: z.number().optional(),
|
|
84
|
+
max: z.number().optional(),
|
|
85
|
+
maxSize: z.number().optional(),
|
|
86
|
+
});
|
|
87
|
+
const settingsOverviewSchema = z.object({
|
|
88
|
+
title: z.string().optional(),
|
|
89
|
+
description: z.string().min(1, 'Overview description is required'),
|
|
90
|
+
});
|
|
91
|
+
const setupInstructionsSchema = z.object({
|
|
92
|
+
title: z.string().optional(),
|
|
93
|
+
description: z.string().min(1, 'Setup instructions description is required'),
|
|
94
|
+
});
|
|
95
|
+
const settingsElementOptionSchema = z.object({
|
|
96
|
+
value: z.string(),
|
|
97
|
+
label: z.string(),
|
|
98
|
+
});
|
|
99
|
+
const settingsElementLinkBehaviorLabelSchema = z.object({
|
|
100
|
+
linkOffLabel: z.string(),
|
|
101
|
+
embedLabel: z.string(),
|
|
102
|
+
});
|
|
103
|
+
const conditionalDisplaySchema = z.object({
|
|
104
|
+
dependsOn: z.string(),
|
|
105
|
+
value: z.union([z.string(), z.boolean()]),
|
|
106
|
+
operator: z.enum(['equals', 'notEquals', 'contains']).optional(),
|
|
107
|
+
});
|
|
108
|
+
const arrayOptionsSchema = z.object({
|
|
109
|
+
add_item_button_text: z.string().optional(),
|
|
110
|
+
add_item_title: z.string().optional(),
|
|
111
|
+
add_second_item_button_text: z.string().optional(),
|
|
112
|
+
edit_item_title: z.string().optional(),
|
|
113
|
+
item_format: z.string().optional(),
|
|
114
|
+
min: z.number().optional(),
|
|
115
|
+
max: z.number().optional(),
|
|
116
|
+
});
|
|
48
117
|
// Settings Element Schema
|
|
49
118
|
const settingsElementSchema = z
|
|
50
119
|
.object({
|
|
51
120
|
id: z.string().min(1, 'Element ID is required'),
|
|
52
|
-
inputType:
|
|
53
|
-
title: z.string().
|
|
121
|
+
inputType: settingsElementInputSchema,
|
|
122
|
+
title: z.string().optional(),
|
|
54
123
|
description: z.string().optional(),
|
|
55
|
-
defaultValue: z.
|
|
124
|
+
defaultValue: z.union([z.string(), z.array(z.string()), z.boolean()]).optional(),
|
|
56
125
|
label: z.string().optional(),
|
|
57
126
|
placeholder: z.string().optional(),
|
|
58
|
-
validation:
|
|
59
|
-
options: z.array(
|
|
60
|
-
linkBehaviorLabels:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
127
|
+
validation: settingsElementValidationSchema.optional(),
|
|
128
|
+
options: z.array(settingsElementOptionSchema).optional(),
|
|
129
|
+
linkBehaviorLabels: settingsElementLinkBehaviorLabelSchema.optional(),
|
|
130
|
+
accept: z.array(z.string()).optional(),
|
|
131
|
+
multiple: z.boolean().optional(),
|
|
132
|
+
action: settingsElementActionSchema.optional(),
|
|
133
|
+
capability: integrationCapabilitySchema.optional(),
|
|
134
|
+
vendor: z.string().optional(),
|
|
135
|
+
array_options: arrayOptionsSchema.optional(),
|
|
136
|
+
array_elements: z.lazy(() => z.array(settingsElementSchema)).optional(),
|
|
137
|
+
conditionalDisplay: conditionalDisplaySchema.optional(),
|
|
66
138
|
})
|
|
67
|
-
.
|
|
139
|
+
.strict();
|
|
68
140
|
// Settings Schema
|
|
69
141
|
const settingsSchema = z.object({
|
|
70
142
|
title: z.string().min(1, 'Settings title is required'),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
143
|
+
icon: settingsIconSchema.optional(),
|
|
144
|
+
uses_url: z.boolean().optional(),
|
|
145
|
+
settings_tab_title: z.string().optional(),
|
|
146
|
+
overview: settingsOverviewSchema.optional(),
|
|
147
|
+
setup_instructions: setupInstructionsSchema.optional(),
|
|
76
148
|
elements: z.array(settingsElementSchema).min(0),
|
|
149
|
+
has_settings: z.boolean().optional(),
|
|
77
150
|
// supports_featured_layout is auto-detected based on app/featured.tsx presence
|
|
78
151
|
supports_featured_layout: z.boolean().optional(),
|
|
79
152
|
});
|
|
@@ -94,11 +167,14 @@ const urlMatchRulesSchema = z.object({
|
|
|
94
167
|
// Preview Props Schema - for development mode
|
|
95
168
|
// Note: Uses camelCase to match LinktreeContext interface
|
|
96
169
|
const themeSchema = z.object({
|
|
170
|
+
isOutlineStyle: z.boolean(),
|
|
171
|
+
cssVariables: z.record(z.string(), z.string()),
|
|
172
|
+
// Legacy properties (deprecated - maintained for backward compatibility)
|
|
97
173
|
textColor: z.string(),
|
|
98
174
|
backgroundColor: z.string(),
|
|
99
175
|
borderRadius: z.string(),
|
|
100
176
|
borderColor: z.string(),
|
|
101
|
-
|
|
177
|
+
backgroundHover: z.string(),
|
|
102
178
|
contrastColor: z.string(),
|
|
103
179
|
textHoverColor: z.string(),
|
|
104
180
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;GAGG;AAEH,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAClC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;AACtC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAAA;AAEhG,0BAA0B;AAC1B,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACvE,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACnE,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC5E,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACjE,CAAC,CAAA;AAEF,gBAAgB;AAChB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,WAAW;KACnB,CAAC;CACH,CAAC,CAAA;AAEF,kBAAkB;AAClB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;SAC5C,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC;SAC7C,QAAQ,CAAC,2BAA2B,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,uCAAuC,CAAC;SAC/C,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC;SAClD,QAAQ,CAAC,mCAAmC,CAAC;IAChD,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,gDAAgD,CAAC;SACxD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACvE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC7D,gBAAgB,EAAE,uBAAuB;IACzC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9F,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;IAChF,MAAM,EAAE,YAAY;CACrB,CAAC,CAAA;AAEF,
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkApp SDK for iframe communication with parent Linktree window
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useOpenPopup } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function FeaturedLayout() {
|
|
9
|
+
* const openPopup = useOpenPopup()
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button onClick={() => openPopup({ itemId: '123' })}>
|
|
13
|
+
* View More
|
|
14
|
+
* </button>
|
|
15
|
+
* )
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { useOpenPopup } from './use-open-popup.js';
|
|
20
|
+
export { sendMessage } from './send-message.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkApp SDK for iframe communication with parent Linktree window
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useOpenPopup } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function FeaturedLayout() {
|
|
9
|
+
* const openPopup = useOpenPopup()
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button onClick={() => openPopup({ itemId: '123' })}>
|
|
13
|
+
* View More
|
|
14
|
+
* </button>
|
|
15
|
+
* )
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { useOpenPopup } from './use-open-popup.js';
|
|
20
|
+
export { sendMessage } from './send-message.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a postMessage from the LinkApp iframe to the parent window
|
|
3
|
+
*
|
|
4
|
+
* @param type - The message type (e.g., 'OPEN_POPUP')
|
|
5
|
+
* @param payload - The message payload
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* sendMessage('OPEN_POPUP', { data: { itemId: '123' } })
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Note: This only works when the LinkApp is embedded in an iframe within Linktree.
|
|
13
|
+
* The parent window must implement a message listener to handle these messages.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sendMessage(type: string, payload: unknown): void;
|
|
16
|
+
//# sourceMappingURL=send-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/sdk/send-message.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBhE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a postMessage from the LinkApp iframe to the parent window
|
|
3
|
+
*
|
|
4
|
+
* @param type - The message type (e.g., 'OPEN_POPUP')
|
|
5
|
+
* @param payload - The message payload
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* sendMessage('OPEN_POPUP', { data: { itemId: '123' } })
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Note: This only works when the LinkApp is embedded in an iframe within Linktree.
|
|
13
|
+
* The parent window must implement a message listener to handle these messages.
|
|
14
|
+
*/
|
|
15
|
+
export function sendMessage(type, payload) {
|
|
16
|
+
// Check if running in an iframe
|
|
17
|
+
if (typeof window === 'undefined') {
|
|
18
|
+
console.warn('[LinkApp SDK] sendMessage called in non-browser environment');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (window === window.parent) {
|
|
22
|
+
console.warn('[LinkApp SDK] sendMessage called outside of iframe context');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const message = {
|
|
26
|
+
source: 'linkapp',
|
|
27
|
+
type: type,
|
|
28
|
+
payload: payload,
|
|
29
|
+
};
|
|
30
|
+
// Send to parent window
|
|
31
|
+
// Using '*' as targetOrigin for now - parent should validate message.source
|
|
32
|
+
window.parent.postMessage(message, '*');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=send-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/sdk/send-message.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAgB;IACxD,gCAAgC;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,IAA8B;QACpC,OAAO,EAAE,OAAoC;KAC9C,CAAA;IAED,wBAAwB;IACxB,4EAA4E;IAC5E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to open a popup/modal in the parent Linktree window
|
|
3
|
+
*
|
|
4
|
+
* @returns A callback function to trigger the popup with optional data
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* function FeaturedLayout() {
|
|
9
|
+
* const openPopup = useOpenPopup()
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button onClick={() => openPopup({ itemId: '123', view: 'details' })}>
|
|
13
|
+
* View More
|
|
14
|
+
* </button>
|
|
15
|
+
* )
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Note: This only works when the LinkApp is embedded in Linktree.
|
|
20
|
+
* The parent window identifies the LinkApp from the iframe's event.source.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useOpenPopup(): (data?: Record<string, unknown>) => void;
|
|
23
|
+
//# sourceMappingURL=use-open-popup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-open-popup.d.ts","sourceRoot":"","sources":["../../src/sdk/use-open-popup.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,YACC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAGnD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { sendMessage } from './send-message.js';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to open a popup/modal in the parent Linktree window
|
|
5
|
+
*
|
|
6
|
+
* @returns A callback function to trigger the popup with optional data
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* function FeaturedLayout() {
|
|
11
|
+
* const openPopup = useOpenPopup()
|
|
12
|
+
*
|
|
13
|
+
* return (
|
|
14
|
+
* <button onClick={() => openPopup({ itemId: '123', view: 'details' })}>
|
|
15
|
+
* View More
|
|
16
|
+
* </button>
|
|
17
|
+
* )
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Note: This only works when the LinkApp is embedded in Linktree.
|
|
22
|
+
* The parent window identifies the LinkApp from the iframe's event.source.
|
|
23
|
+
*/
|
|
24
|
+
export function useOpenPopup() {
|
|
25
|
+
return useCallback((data) => {
|
|
26
|
+
sendMessage('OPEN_POPUP', { data });
|
|
27
|
+
}, []);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=use-open-popup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-open-popup.js","sourceRoot":"","sources":["../../src/sdk/use-open-popup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,CAAC,IAA8B,EAAE,EAAE;QACpD,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC"}
|