@linktr.ee/linkapp 0.0.1 → 0.0.3
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 +82 -0
- package/dev-server/classic/main.tsx +24 -0
- package/dev-server/classic.html +12 -0
- package/dev-server/components/ui/dialog.tsx +142 -0
- package/dev-server/components/ui/tabs.tsx +52 -0
- package/dev-server/components.json +21 -0
- package/dev-server/featured/main.tsx +24 -0
- package/dev-server/featured.html +12 -0
- package/dev-server/index.html +12 -0
- package/dev-server/lib/utils.ts +6 -0
- package/dev-server/package-lock.json +3070 -0
- package/dev-server/package.json +29 -0
- package/dev-server/preview/Preview.tsx +62 -0
- package/dev-server/preview/main.tsx +15 -0
- package/dev-server/preview/preview.css +122 -0
- package/dev-server/vite.config.ts +29 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +3 -8
- package/dist/commands/dev.js.map +1 -1
- package/package.json +12 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "linkapp-dev-server",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "node server.ts"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
11
|
+
"@radix-ui/react-tabs": "^1.1.7",
|
|
12
|
+
"class-variance-authority": "^0.7.1",
|
|
13
|
+
"clsx": "^2.1.1",
|
|
14
|
+
"lucide-react": "^0.545.0",
|
|
15
|
+
"react": "^19.1.0",
|
|
16
|
+
"react-dom": "^19.1.0",
|
|
17
|
+
"tailwind-merge": "^3.3.1"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@tailwindcss/vite": "^4.1.14",
|
|
21
|
+
"@types/react": "^19.2.2",
|
|
22
|
+
"@types/react-dom": "^19",
|
|
23
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
24
|
+
"tailwindcss": "^4",
|
|
25
|
+
"tw-animate-css": "^1.4.0",
|
|
26
|
+
"typescript": "^5",
|
|
27
|
+
"vite": "^6.0.3"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '../components/ui/dialog'
|
|
3
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from '../components/ui/tabs'
|
|
4
|
+
import { Portal } from '@radix-ui/react-portal'
|
|
5
|
+
import { cn } from '../lib/utils'
|
|
6
|
+
|
|
7
|
+
export default function Preview() {
|
|
8
|
+
const [selectedTab, setSelectedTab] = useState<'classic' | 'featured'>('classic')
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className={cn("min-h-screen", {
|
|
12
|
+
"bg-black/50": selectedTab === 'classic',
|
|
13
|
+
"bg-gray-200": selectedTab === 'featured'
|
|
14
|
+
})} id="preview">
|
|
15
|
+
<Tabs value={selectedTab} onValueChange={(value) => setSelectedTab(value as 'classic' | 'featured')}>
|
|
16
|
+
<Portal>
|
|
17
|
+
<div className="fixed top-0 left-0 right-0 p-4 flex justify-center bg-background border-b" style={{ zIndex: 1000000 }}>
|
|
18
|
+
<TabsList>
|
|
19
|
+
<TabsTrigger value="classic">Classic</TabsTrigger>
|
|
20
|
+
<TabsTrigger value="featured">Featured</TabsTrigger>
|
|
21
|
+
</TabsList>
|
|
22
|
+
</div>
|
|
23
|
+
</Portal>
|
|
24
|
+
|
|
25
|
+
{/* Main Content with Padding for Fixed Tabs */}
|
|
26
|
+
<div className="pt-20">
|
|
27
|
+
<TabsContent value="classic" className="m-0">
|
|
28
|
+
{/* Classic Modal - Always Open */}
|
|
29
|
+
<Dialog open={true} modal={false}>
|
|
30
|
+
<DialogContent className="max-w-[512px] max-h-[calc(100%-64px)] overflow-auto">
|
|
31
|
+
<DialogHeader className='sticky top-0 bg-white px-4'>
|
|
32
|
+
<DialogTitle>Classic Layout Preview</DialogTitle>
|
|
33
|
+
</DialogHeader>
|
|
34
|
+
|
|
35
|
+
<div className="mt-4">
|
|
36
|
+
<iframe
|
|
37
|
+
src="/classic"
|
|
38
|
+
className="w-full h-[600px] border-0 rounded-lg"
|
|
39
|
+
title="Classic Layout Preview"
|
|
40
|
+
/>
|
|
41
|
+
</div>
|
|
42
|
+
</DialogContent>
|
|
43
|
+
</Dialog>
|
|
44
|
+
</TabsContent>
|
|
45
|
+
|
|
46
|
+
<TabsContent value="featured" className="m-0 flex justify-center p-8">
|
|
47
|
+
{/* Featured Iframe - Max Width 524px */}
|
|
48
|
+
<div className="w-full max-w-[580px] shadow-xl flex flex-col rounded-3xl px-[28px] py-7 items-center bg-gray-100">
|
|
49
|
+
<div className="w-full max-w-[524px]">
|
|
50
|
+
<iframe
|
|
51
|
+
src="/featured"
|
|
52
|
+
className="w-full border-0 rounded-lg"
|
|
53
|
+
title="Featured Layout Preview"
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</TabsContent>
|
|
58
|
+
</div>
|
|
59
|
+
</Tabs>
|
|
60
|
+
</div>
|
|
61
|
+
)
|
|
62
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { StrictMode } from 'react'
|
|
2
|
+
import { createRoot } from 'react-dom/client'
|
|
3
|
+
import Preview from './Preview'
|
|
4
|
+
import './preview.css'
|
|
5
|
+
|
|
6
|
+
const rootElement = document.getElementById('root')
|
|
7
|
+
if (!rootElement) {
|
|
8
|
+
throw new Error('Root element not found')
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
createRoot(rootElement).render(
|
|
12
|
+
<StrictMode>
|
|
13
|
+
<Preview />
|
|
14
|
+
</StrictMode>
|
|
15
|
+
)
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
@import "tw-animate-css";
|
|
3
|
+
|
|
4
|
+
@custom-variant dark (&:is(.dark *));
|
|
5
|
+
|
|
6
|
+
@theme inline {
|
|
7
|
+
--color-background: var(--background);
|
|
8
|
+
--color-foreground: var(--foreground);
|
|
9
|
+
--font-sans: var(--font-geist-sans);
|
|
10
|
+
--font-mono: var(--font-geist-mono);
|
|
11
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
12
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
13
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
14
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
15
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
16
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
17
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
18
|
+
--color-sidebar: var(--sidebar);
|
|
19
|
+
--color-chart-5: var(--chart-5);
|
|
20
|
+
--color-chart-4: var(--chart-4);
|
|
21
|
+
--color-chart-3: var(--chart-3);
|
|
22
|
+
--color-chart-2: var(--chart-2);
|
|
23
|
+
--color-chart-1: var(--chart-1);
|
|
24
|
+
--color-ring: var(--ring);
|
|
25
|
+
--color-input: var(--input);
|
|
26
|
+
--color-border: var(--border);
|
|
27
|
+
--color-destructive: var(--destructive);
|
|
28
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
29
|
+
--color-accent: var(--accent);
|
|
30
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
31
|
+
--color-muted: var(--muted);
|
|
32
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
33
|
+
--color-secondary: var(--secondary);
|
|
34
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
35
|
+
--color-primary: var(--primary);
|
|
36
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
37
|
+
--color-popover: var(--popover);
|
|
38
|
+
--color-card-foreground: var(--card-foreground);
|
|
39
|
+
--color-card: var(--card);
|
|
40
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
41
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
42
|
+
--radius-lg: var(--radius);
|
|
43
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:root {
|
|
47
|
+
--radius: 0.625rem;
|
|
48
|
+
--background: oklch(1 0 0);
|
|
49
|
+
--foreground: oklch(0.145 0 0);
|
|
50
|
+
--card: oklch(1 0 0);
|
|
51
|
+
--card-foreground: oklch(0.145 0 0);
|
|
52
|
+
--popover: oklch(1 0 0);
|
|
53
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
54
|
+
--primary: oklch(0.205 0 0);
|
|
55
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
56
|
+
--secondary: oklch(0.97 0 0);
|
|
57
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
58
|
+
--muted: oklch(0.97 0 0);
|
|
59
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
60
|
+
--accent: oklch(0.97 0 0);
|
|
61
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
62
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
63
|
+
--border: oklch(0.922 0 0);
|
|
64
|
+
--input: oklch(0.922 0 0);
|
|
65
|
+
--ring: oklch(0.708 0 0);
|
|
66
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
67
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
68
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
69
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
70
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
71
|
+
--sidebar: oklch(0.985 0 0);
|
|
72
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
73
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
74
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
75
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
76
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
77
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
78
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.dark {
|
|
82
|
+
--background: oklch(0.145 0 0);
|
|
83
|
+
--foreground: oklch(0.985 0 0);
|
|
84
|
+
--card: oklch(0.205 0 0);
|
|
85
|
+
--card-foreground: oklch(0.985 0 0);
|
|
86
|
+
--popover: oklch(0.205 0 0);
|
|
87
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
88
|
+
--primary: oklch(0.922 0 0);
|
|
89
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
90
|
+
--secondary: oklch(0.269 0 0);
|
|
91
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
92
|
+
--muted: oklch(0.269 0 0);
|
|
93
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
94
|
+
--accent: oklch(0.269 0 0);
|
|
95
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
96
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
97
|
+
--border: oklch(1 0 0 / 10%);
|
|
98
|
+
--input: oklch(1 0 0 / 15%);
|
|
99
|
+
--ring: oklch(0.556 0 0);
|
|
100
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
101
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
102
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
103
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
104
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
105
|
+
--sidebar: oklch(0.205 0 0);
|
|
106
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
107
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
108
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
109
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
110
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
111
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
112
|
+
--sidebar-ring: oklch(0.556 0 0);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
@layer base {
|
|
116
|
+
* {
|
|
117
|
+
@apply border-border outline-ring/50;
|
|
118
|
+
}
|
|
119
|
+
body {
|
|
120
|
+
@apply bg-background text-foreground;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAUA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAqEnD"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import pc from 'picocolors';
|
|
2
|
-
import * as p from '@clack/prompts';
|
|
3
2
|
import { createServer as createViteServer } from 'vite';
|
|
4
3
|
import open from 'open';
|
|
5
4
|
import { dirname, resolve } from 'node:path';
|
|
@@ -9,20 +8,17 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
9
8
|
const __dirname = dirname(__filename);
|
|
10
9
|
export async function devCommand(options) {
|
|
11
10
|
const userProjectPath = process.cwd();
|
|
12
|
-
const s = p.spinner();
|
|
13
11
|
try {
|
|
14
12
|
const startTime = Date.now();
|
|
15
13
|
// Validate layouts exist
|
|
16
|
-
s.start('Validating project structure');
|
|
17
14
|
const validation = validateLayouts(userProjectPath);
|
|
18
15
|
if (!validation.valid) {
|
|
19
|
-
|
|
16
|
+
console.log(pc.red('✗ Invalid project structure'));
|
|
20
17
|
for (const error of validation.errors) {
|
|
21
18
|
console.log(pc.red(` ${error}`));
|
|
22
19
|
}
|
|
23
20
|
process.exit(1);
|
|
24
21
|
}
|
|
25
|
-
s.stop();
|
|
26
22
|
const port = options.port || 3000;
|
|
27
23
|
const devServerPath = resolve(__dirname, '../../dev-server');
|
|
28
24
|
// Create Vite server - just like server.ts, but override @ alias to user's project root
|
|
@@ -43,7 +39,6 @@ export async function devCommand(options) {
|
|
|
43
39
|
logLevel: 'error',
|
|
44
40
|
});
|
|
45
41
|
await viteServer.listen();
|
|
46
|
-
s.stop();
|
|
47
42
|
const readyTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
48
43
|
console.log();
|
|
49
44
|
console.log(pc.bold(pc.cyan(' LinkApp')) + pc.dim(' ready'));
|
|
@@ -65,8 +60,8 @@ export async function devCommand(options) {
|
|
|
65
60
|
await new Promise(() => { });
|
|
66
61
|
}
|
|
67
62
|
catch (error) {
|
|
68
|
-
|
|
69
|
-
console.error(pc.red('
|
|
63
|
+
console.log(pc.red('✗ Failed to start server'));
|
|
64
|
+
console.error(pc.red('✗ Error:'), error);
|
|
70
65
|
process.exit(1);
|
|
71
66
|
}
|
|
72
67
|
}
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linktr.ee/linkapp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Development, build, and deployment tooling for LinkApps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"dist",
|
|
11
11
|
"bin",
|
|
12
12
|
"runtime",
|
|
13
|
+
"dev-server",
|
|
13
14
|
"linkapp-preview"
|
|
14
15
|
],
|
|
15
16
|
"exports": {
|
|
@@ -33,20 +34,28 @@
|
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@clack/prompts": "^0.8.2",
|
|
35
36
|
"@ngrok/ngrok": "^1.4.1",
|
|
37
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
38
|
+
"@radix-ui/react-tabs": "^1.1.7",
|
|
36
39
|
"@tailwindcss/vite": "^4.1.14",
|
|
37
40
|
"@vitejs/plugin-react": "^4.3.4",
|
|
38
41
|
"archiver": "^7.0.1",
|
|
39
42
|
"axios": "^1.7.9",
|
|
40
43
|
"cac": "^6.7.14",
|
|
44
|
+
"class-variance-authority": "^0.7.1",
|
|
45
|
+
"clsx": "^2.1.1",
|
|
41
46
|
"connect": "^3.7.0",
|
|
42
47
|
"form-data": "^4.0.1",
|
|
43
48
|
"fs-extra": "^11.2.0",
|
|
44
49
|
"jiti": "^2.6.1",
|
|
45
50
|
"jsonwebtoken": "^9.0.2",
|
|
51
|
+
"lucide-react": "^0.545.0",
|
|
46
52
|
"netrc-parser": "^3.1.6",
|
|
47
53
|
"open": "^10.1.0",
|
|
48
54
|
"openid-client": "^5.7.1",
|
|
49
55
|
"picocolors": "^1.1.1",
|
|
56
|
+
"react": "^19.1.0",
|
|
57
|
+
"react-dom": "^19.1.0",
|
|
58
|
+
"tailwind-merge": "^3.3.1",
|
|
50
59
|
"vite": "^6.0.3",
|
|
51
60
|
"zod": "^4.1.12"
|
|
52
61
|
},
|
|
@@ -57,6 +66,8 @@
|
|
|
57
66
|
"@types/fs-extra": "^11.0.4",
|
|
58
67
|
"@types/jsonwebtoken": "^9.0.7",
|
|
59
68
|
"@types/node": "^20.17.6",
|
|
69
|
+
"@types/react": "^19.2.2",
|
|
70
|
+
"@types/react-dom": "^19",
|
|
60
71
|
"typescript": "^5.7.2",
|
|
61
72
|
"vitest": "^2.1.9"
|
|
62
73
|
},
|