@linktr.ee/linkapp 0.0.21 → 0.0.23
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/README.md +5 -5
- package/dev-server/components/SettingsPreview.tsx +330 -0
- package/dev-server/components/ui/dialog.tsx +6 -3
- package/dev-server/env.d.ts +8 -0
- package/dev-server/featured/main.tsx +48 -43
- package/dev-server/featured.html +21 -35
- package/dev-server/index.html +8 -1
- package/dev-server/lib/utils.ts +6 -0
- package/dev-server/package-lock.json +245 -287
- package/dev-server/package.json +7 -4
- package/dev-server/postcss/tailwind-source-fallback.js +94 -0
- package/dev-server/postcss.config.mjs +30 -0
- package/dev-server/preview/Preview.tsx +182 -381
- package/dev-server/preview/preview.css +22 -34
- package/dev-server/public/apple-touch-icon.png +0 -0
- package/dev-server/public/favicon-96x96.png +0 -0
- package/dev-server/public/favicon.ico +0 -0
- package/dev-server/public/favicon.svg +6 -0
- package/dev-server/public/site.webmanifest +21 -0
- package/dev-server/public/web-app-manifest-192x192.png +0 -0
- package/dev-server/public/web-app-manifest-512x512.png +0 -0
- package/dev-server/rsbuild.config.ts +45 -0
- package/dev-server/shared/theme-presets.ts +315 -0
- package/dev-server/shared/theme-utils.ts +38 -0
- package/dev-server/sheet/main.tsx +44 -0
- package/dev-server/sheet.html +56 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +20 -12
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +55 -36
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +74 -59
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +564 -43
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +19 -9
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +9 -4
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/test-url-match-rules.d.ts.map +1 -1
- package/dist/commands/test-url-match-rules.js +24 -13
- package/dist/commands/test-url-match-rules.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/lib/auth/device-flow.d.ts +1 -6
- package/dist/lib/auth/device-flow.d.ts.map +1 -1
- package/dist/lib/auth/device-flow.js +3 -9
- package/dist/lib/auth/device-flow.js.map +1 -1
- package/dist/lib/auth/token-storage.d.ts +0 -5
- package/dist/lib/auth/token-storage.d.ts.map +1 -1
- package/dist/lib/auth/token-storage.js +16 -14
- package/dist/lib/auth/token-storage.js.map +1 -1
- package/dist/lib/build/detect-layouts.d.ts +1 -1
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +8 -7
- package/dist/lib/build/detect-layouts.js.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +1 -1
- package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
- package/dist/lib/deploy/pack-project.js +2 -2
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts +2 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.js +1 -1
- package/dist/lib/deploy/test-url-match-rules.js.map +1 -1
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +7 -3
- 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 +8 -5
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/rsbuild/config-factory.d.ts +24 -0
- package/dist/lib/rsbuild/config-factory.d.ts.map +1 -0
- package/dist/lib/rsbuild/config-factory.js +135 -0
- package/dist/lib/rsbuild/config-factory.js.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js +62 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.js +32 -0
- package/dist/lib/rsbuild/plugins/copy-public.js.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts +12 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js +60 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js.map +1 -0
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +78 -17
- package/dist/lib/utils/setup-runtime.js.map +1 -1
- package/dist/lib/vite/config-factory.d.ts.map +1 -1
- package/dist/lib/vite/config-factory.js +8 -3
- package/dist/lib/vite/config-factory.js.map +1 -1
- package/dist/lib/vite/plugins/copy-public.d.ts +12 -0
- package/dist/lib/vite/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/vite/plugins/copy-public.js +31 -0
- package/dist/lib/vite/plugins/copy-public.js.map +1 -0
- package/dist/schema/config.schema.d.ts +121 -32
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +28 -17
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/types.d.ts +6 -57
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -4
- package/runtime/index.html +19 -36
- package/dev-server/classic/main.tsx +0 -62
- package/dev-server/classic.html +0 -70
- package/dev-server/vite.config.ts +0 -29
package/dist/types.d.ts
CHANGED
|
@@ -2,54 +2,13 @@
|
|
|
2
2
|
* Type definitions for LinkApp
|
|
3
3
|
* Note: Uses snake_case for API-facing types to match API requirements
|
|
4
4
|
*/
|
|
5
|
+
export type { PreviewProps, LinkAppTheme, Viewport, Position, LinkAppConfig, } from './schema/config.schema.js';
|
|
5
6
|
export type Environment = "production" | "qa";
|
|
6
|
-
/**
|
|
7
|
-
* Theme configuration passed to link app iframes via postMessage
|
|
8
|
-
*/
|
|
9
|
-
export interface LinkAppTheme {
|
|
10
|
-
cssVariables: Record<string, string>;
|
|
11
|
-
/** @deprecated Use cssVariables['--button-style-text'] instead */
|
|
12
|
-
textColor: string;
|
|
13
|
-
/** @deprecated Use cssVariables['--button-style-background'] instead */
|
|
14
|
-
backgroundColor: string;
|
|
15
|
-
/** @deprecated Use cssVariables['--button-style-inner-radius'] instead */
|
|
16
|
-
borderRadius: string;
|
|
17
|
-
/** @deprecated Use cssVariables['--button-style-border-color'] instead */
|
|
18
|
-
borderColor: string;
|
|
19
|
-
/** @deprecated Use cssVariables['--button-style-background-hover'] instead */
|
|
20
|
-
backgroundHover: string;
|
|
21
|
-
/** @deprecated Use cssVariables['--button-style-contrast-color'] instead */
|
|
22
|
-
contrastColor: string;
|
|
23
|
-
/** @deprecated Use cssVariables instead */
|
|
24
|
-
textHoverColor: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Viewport dimensions
|
|
28
|
-
*/
|
|
29
|
-
export interface Viewport {
|
|
30
|
-
width: number;
|
|
31
|
-
height: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Geographic position
|
|
35
|
-
*/
|
|
36
|
-
export interface Position {
|
|
37
|
-
latitude: number;
|
|
38
|
-
longitude: number;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Core Linktree context available to all LinkApps
|
|
42
|
-
*/
|
|
43
|
-
export interface LinktreeContext {
|
|
44
|
-
linkUrl?: string;
|
|
45
|
-
layout?: "stack" | "grid" | "carousel" | "featured";
|
|
46
|
-
theme?: LinkAppTheme;
|
|
47
|
-
}
|
|
48
7
|
/**
|
|
49
8
|
* Props available to layout components
|
|
50
9
|
* Extend with custom settings from your config
|
|
51
10
|
*/
|
|
52
|
-
export type AppProps<TSettings = Record<string, unknown>> =
|
|
11
|
+
export type AppProps<TSettings = Record<string, unknown>> = import('./schema/config.schema.js').PreviewProps & TSettings;
|
|
53
12
|
export interface LinkAppManifest {
|
|
54
13
|
name: string;
|
|
55
14
|
tagline: string;
|
|
@@ -185,22 +144,12 @@ export interface SettingsElement {
|
|
|
185
144
|
}
|
|
186
145
|
export interface UrlMatchRules {
|
|
187
146
|
hostnames: string[];
|
|
188
|
-
patterns
|
|
147
|
+
patterns?: Array<{
|
|
148
|
+
pathname: string;
|
|
149
|
+
}>;
|
|
150
|
+
notPatterns?: Array<{
|
|
189
151
|
pathname: string;
|
|
190
152
|
}>;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Preview props for development mode
|
|
194
|
-
*/
|
|
195
|
-
export interface PreviewProps extends LinktreeContext {
|
|
196
|
-
[key: string]: unknown;
|
|
197
|
-
}
|
|
198
|
-
export interface LinkAppConfig {
|
|
199
|
-
id: string;
|
|
200
|
-
manifest: LinkAppManifest;
|
|
201
|
-
settings: LinkAppSettings;
|
|
202
|
-
url_match_rules?: UrlMatchRules;
|
|
203
|
-
preview_props?: PreviewProps;
|
|
204
153
|
}
|
|
205
154
|
export interface AppConfig {
|
|
206
155
|
auth: {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4CH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,uCAAe,CAAA;IACf,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,qDAA6B,CAAA;IAC7B,qCAAa,CAAA;IACb,mCAAW,CAAA;IACX,mDAA2B,CAAA;IAC3B,mDAA2B,CAAA;IAC3B,uCAAe,CAAA;AACjB,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B;AAED,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8EAAqD,CAAA;AACvD,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAED,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;AACjB,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yCAA6B,CAAA;AAC/B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linktr.ee/linkapp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "Development, build, and deployment tooling for LinkApps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -46,14 +46,18 @@
|
|
|
46
46
|
"@ngrok/ngrok": "^1.4.1",
|
|
47
47
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
48
48
|
"@radix-ui/react-tabs": "^1.1.7",
|
|
49
|
-
"@
|
|
50
|
-
"@
|
|
49
|
+
"@rsbuild/core": "^1.1.14",
|
|
50
|
+
"@rsbuild/plugin-react": "^1.1.0",
|
|
51
|
+
"@tailwindcss/postcss": "^4.1.14",
|
|
52
|
+
"postcss": "^8.5.6",
|
|
51
53
|
"archiver": "^7.0.1",
|
|
52
54
|
"axios": "^1.7.9",
|
|
53
55
|
"cac": "^6.7.14",
|
|
56
|
+
"chokidar": "^3.6.0",
|
|
54
57
|
"class-variance-authority": "^0.7.1",
|
|
55
58
|
"clsx": "^2.1.1",
|
|
56
59
|
"connect": "^3.7.0",
|
|
60
|
+
"detect-port": "^2.1.0",
|
|
57
61
|
"form-data": "^4.0.1",
|
|
58
62
|
"fs-extra": "^11.2.0",
|
|
59
63
|
"jiti": "^2.6.1",
|
|
@@ -66,7 +70,6 @@
|
|
|
66
70
|
"react": "^19.1.0",
|
|
67
71
|
"react-dom": "^19.1.0",
|
|
68
72
|
"tailwind-merge": "^3.3.1",
|
|
69
|
-
"vite": "^6.0.3",
|
|
70
73
|
"zod": "^4.1.12"
|
|
71
74
|
},
|
|
72
75
|
"devDependencies": {
|
package/runtime/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>LinkApp</title>
|
|
7
7
|
|
|
8
8
|
<!-- iframe-resizer: Required for LinkApps to communicate with Linktree parent frame -->
|
|
9
|
-
<script crossorigin src="https://unpkg.com/iframe-resizer@4.3.2/js/iframeResizer.contentWindow.
|
|
9
|
+
<script crossorigin src="https://unpkg.com/iframe-resizer@4.3.2/js/iframeResizer.contentWindow.js"></script>
|
|
10
10
|
|
|
11
11
|
<!-- Linktree theme variables will be injected here -->
|
|
12
12
|
<style id="linktree-theme"></style>
|
|
@@ -24,46 +24,29 @@
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
27
|
+
* Apply theme CSS variables to :root
|
|
28
|
+
* Called once on mount when extension-data message is received
|
|
29
|
+
* @param {Record<string, string>} variables - CSS variables to apply
|
|
29
30
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
typeof event.data === 'object' &&
|
|
35
|
-
event.data.type === 'THEME_UPDATE'
|
|
36
|
-
) {
|
|
37
|
-
const themeUpdate = event.data
|
|
38
|
-
|
|
39
|
-
// Get the style element where theme variables are injected
|
|
40
|
-
const themeStyle = document.getElementById('linktree-theme')
|
|
31
|
+
function applyTheme(variables) {
|
|
32
|
+
if (!variables || typeof variables !== 'object') {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
41
35
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return
|
|
45
|
-
}
|
|
36
|
+
// Get the style element where theme variables are injected
|
|
37
|
+
const themeStyle = document.getElementById('linktree-theme')
|
|
46
38
|
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
if (!themeStyle) {
|
|
40
|
+
console.warn('linktree-theme style element not found')
|
|
41
|
+
return
|
|
42
|
+
}
|
|
49
43
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (className.startsWith('linktree-theme-')) {
|
|
54
|
-
classesToRemove.push(className)
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
classesToRemove.forEach((className) => {
|
|
58
|
-
document.documentElement.classList.remove(className)
|
|
59
|
-
})
|
|
44
|
+
// Inject CSS variables into :root
|
|
45
|
+
themeStyle.textContent = ':root { ' + renderCssVariables(variables) + ' }'
|
|
46
|
+
}
|
|
60
47
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
document.documentElement.classList.add('linktree-theme-' + themeUpdate.payload.name)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}, false)
|
|
48
|
+
// Export applyTheme to be used by main.tsx when receiving extension-data
|
|
49
|
+
window.__linkapp_applyTheme = applyTheme
|
|
67
50
|
</script>
|
|
68
51
|
</head>
|
|
69
52
|
<body>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import Classic from "@/app/classic";
|
|
2
|
-
import { StrictMode } from "react";
|
|
3
|
-
import { createRoot } from "react-dom/client";
|
|
4
|
-
import "@/app/globals.css";
|
|
5
|
-
|
|
6
|
-
// Conditionally import Layout if it exists
|
|
7
|
-
const layoutModules = import.meta.glob("@/app/layout.{ts,tsx}", {
|
|
8
|
-
eager: true,
|
|
9
|
-
});
|
|
10
|
-
const Layout = Object.values(layoutModules)[0]?.default as
|
|
11
|
-
| React.ComponentType<{ children: React.ReactNode; theme?: any }>
|
|
12
|
-
| undefined;
|
|
13
|
-
|
|
14
|
-
// Preview props injected by dev server via Vite define
|
|
15
|
-
declare const __PREVIEW_PROPS__: Record<string, unknown>;
|
|
16
|
-
|
|
17
|
-
const previewProps = __PREVIEW_PROPS__ || {
|
|
18
|
-
linkUrl: "https://example.com/demo",
|
|
19
|
-
theme: {
|
|
20
|
-
cssVariables: {
|
|
21
|
-
"--button-style-text": "#000000",
|
|
22
|
-
"--button-style-background": "#ffffff",
|
|
23
|
-
"--button-style-inner-radius": "12px",
|
|
24
|
-
"--button-style-border-color": "#e5e7eb",
|
|
25
|
-
"--button-style-background-hover": "#f3f4f6",
|
|
26
|
-
"--button-style-contrast-color": "#ffffff",
|
|
27
|
-
"--profileBackground": "#ffffff",
|
|
28
|
-
},
|
|
29
|
-
// Legacy properties (deprecated)
|
|
30
|
-
textColor: "#000000",
|
|
31
|
-
backgroundColor: "#ffffff",
|
|
32
|
-
borderRadius: "12px",
|
|
33
|
-
borderColor: "#e5e7eb",
|
|
34
|
-
backgroundHover: "#f3f4f6",
|
|
35
|
-
contrastColor: "#ffffff",
|
|
36
|
-
textHoverColor: "#111827",
|
|
37
|
-
},
|
|
38
|
-
locale: "en-US",
|
|
39
|
-
currency: "USD",
|
|
40
|
-
username: "demo-user",
|
|
41
|
-
viewport: {
|
|
42
|
-
width: 680,
|
|
43
|
-
height: 800,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const rootElement = document.getElementById("root");
|
|
48
|
-
if (!rootElement) {
|
|
49
|
-
throw new Error("Root element not found");
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
createRoot(rootElement).render(
|
|
53
|
-
<StrictMode>
|
|
54
|
-
{Layout ? (
|
|
55
|
-
<Layout theme={previewProps.theme}>
|
|
56
|
-
<Classic {...previewProps} />
|
|
57
|
-
</Layout>
|
|
58
|
-
) : (
|
|
59
|
-
<Classic {...previewProps} />
|
|
60
|
-
)}
|
|
61
|
-
</StrictMode>,
|
|
62
|
-
);
|
package/dev-server/classic.html
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Classic - LinkApp</title>
|
|
7
|
-
|
|
8
|
-
<!-- Linktree theme variables will be injected here -->
|
|
9
|
-
<style id="linktree-theme"></style>
|
|
10
|
-
|
|
11
|
-
<script>
|
|
12
|
-
/**
|
|
13
|
-
* Helper function to convert CSS variables object to CSS string
|
|
14
|
-
* @param {Record<string, string>} vars - Object with CSS variable names as keys
|
|
15
|
-
* @returns {string} CSS string like "--var1: value1; --var2: value2;"
|
|
16
|
-
*/
|
|
17
|
-
function renderCssVariables(vars) {
|
|
18
|
-
return Object.entries(vars)
|
|
19
|
-
.map((entry) => entry.join(': '))
|
|
20
|
-
.join('; ') + ';'
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Listen for theme updates from parent window
|
|
25
|
-
* Applies CSS variables to the document root
|
|
26
|
-
*/
|
|
27
|
-
window.addEventListener('message', function(event) {
|
|
28
|
-
// Only process messages with the correct structure
|
|
29
|
-
if (
|
|
30
|
-
event.data &&
|
|
31
|
-
typeof event.data === 'object' &&
|
|
32
|
-
event.data.type === 'THEME_UPDATE'
|
|
33
|
-
) {
|
|
34
|
-
const themeUpdate = event.data
|
|
35
|
-
|
|
36
|
-
// Get the style element where theme variables are injected
|
|
37
|
-
const themeStyle = document.getElementById('linktree-theme')
|
|
38
|
-
|
|
39
|
-
if (!themeStyle) {
|
|
40
|
-
console.warn('linktree-theme style element not found')
|
|
41
|
-
return
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Inject CSS variables into :root
|
|
45
|
-
themeStyle.textContent = ':root { ' + renderCssVariables(themeUpdate.payload.variables) + ' }'
|
|
46
|
-
|
|
47
|
-
// Remove any existing theme classes
|
|
48
|
-
const classesToRemove = []
|
|
49
|
-
document.documentElement.classList.forEach((className) => {
|
|
50
|
-
if (className.startsWith('linktree-theme-')) {
|
|
51
|
-
classesToRemove.push(className)
|
|
52
|
-
}
|
|
53
|
-
})
|
|
54
|
-
classesToRemove.forEach((className) => {
|
|
55
|
-
document.documentElement.classList.remove(className)
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
// Add theme class for additional styling hooks
|
|
59
|
-
if (themeUpdate.payload.name && themeUpdate.payload.name !== 'legacy') {
|
|
60
|
-
document.documentElement.classList.add('linktree-theme-' + themeUpdate.payload.name)
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, false)
|
|
64
|
-
</script>
|
|
65
|
-
</head>
|
|
66
|
-
<body>
|
|
67
|
-
<div id="root"></div>
|
|
68
|
-
<script type="module" src="/classic/main.tsx"></script>
|
|
69
|
-
</body>
|
|
70
|
-
</html>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vite'
|
|
2
|
-
import react from '@vitejs/plugin-react'
|
|
3
|
-
import tailwindcss from '@tailwindcss/vite'
|
|
4
|
-
import { resolve } from 'path'
|
|
5
|
-
|
|
6
|
-
export default defineConfig({
|
|
7
|
-
plugins: [react(), tailwindcss()],
|
|
8
|
-
root: resolve(__dirname),
|
|
9
|
-
server: {
|
|
10
|
-
port: 3000,
|
|
11
|
-
strictPort: true,
|
|
12
|
-
},
|
|
13
|
-
resolve: {
|
|
14
|
-
alias: {
|
|
15
|
-
'@': resolve(__dirname, '..'),
|
|
16
|
-
'@/components': resolve(__dirname, 'components'),
|
|
17
|
-
'@/lib': resolve(__dirname, 'lib'),
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
build: {
|
|
21
|
-
rollupOptions: {
|
|
22
|
-
input: {
|
|
23
|
-
main: resolve(__dirname, 'index.html'),
|
|
24
|
-
classic: resolve(__dirname, 'classic.html'),
|
|
25
|
-
featured: resolve(__dirname, 'featured.html'),
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
})
|