create-polygon-kit 0.2.0 → 0.3.0

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/dist/index.js CHANGED
@@ -54,6 +54,7 @@ async function main() {
54
54
  choices: [
55
55
  { title: 'Next.js', value: 'nextjs', description: 'React framework with SSR' },
56
56
  { title: 'Vite', value: 'vite', description: 'Fast build tool with HMR' },
57
+ { title: 'Remix', value: 'remix', description: 'Full stack web framework' },
57
58
  ],
58
59
  initial: 0,
59
60
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAQ3C,KAAK,UAAU,IAAI;IACjB,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;;;;;;;CAWhC,CAAC,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAE5F,oDAAoD;IACpD,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B;SACvD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,WAAW,kBAAkB,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;QAC5B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAC9E,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACzE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE;aAC5E;YACD,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAmB;QACrC,WAAW;QACX,GAAG,OAAO;KACX,CAAC;IAEF,iBAAiB;IACjB,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAuB;IAClD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,SAAS,EACT,IAAI,EACJ,WAAW,EACX,SAAS,EACT,YAAY,CACb,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,YAAY,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEtC,wCAAwC;QACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC;QAC/B,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAE9D,uBAAuB;QACvB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzB,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7C,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-polygon-kit",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "CLI tool to create PolygonKit projects",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,2 @@
1
+ # Get your free Reown Project ID from https://cloud.reown.com
2
+ VITE_REOWN_PROJECT_ID=your_project_id_here
@@ -0,0 +1,47 @@
1
+ # PolygonKit Remix App
2
+
3
+ This project was created with [create-polygon-kit](https://github.com/sanketsaagar/create-polygon-kit).
4
+
5
+ ## Getting Started
6
+
7
+ ### 1. Set up your Reown Project ID
8
+
9
+ This app uses Reown (formerly WalletConnect) for wallet connections. You'll need a free project ID:
10
+
11
+ 1. Go to [cloud.reown.com](https://cloud.reown.com) and create a free account
12
+ 2. Create a new project
13
+ 3. Copy your Project ID
14
+ 4. Create a `.env` file in the root directory:
15
+
16
+ ```bash
17
+ cp .env.example .env
18
+ ```
19
+
20
+ 5. Add your project ID to `.env`:
21
+
22
+ ```bash
23
+ VITE_REOWN_PROJECT_ID=your_project_id_here
24
+ ```
25
+
26
+ ### 2. Run the development server
27
+
28
+ ```bash
29
+ npm run dev
30
+ ```
31
+
32
+ Open [http://localhost:5173](http://localhost:5173) with your browser to see the result.
33
+
34
+ ## Learn More
35
+
36
+ To learn more about PolygonKit and Remix, check out the following resources:
37
+
38
+ - [PolygonKit Documentation](https://docs.polygonkit.com) - learn about PolygonKit features and API
39
+ - [Remix Documentation](https://remix.run/docs) - learn about Remix features and API
40
+ - [GitHub Repository](https://github.com/sanketsaagar/polygonKit) - source code and issues
41
+
42
+ ## Built With
43
+
44
+ - [Remix](https://remix.run/) - Full stack web framework
45
+ - [React](https://react.dev/) - The library for web and native user interfaces
46
+ - [PolygonKit](https://docs.polygonkit.com) - React components for Polygon apps
47
+ - [TailwindCSS](https://tailwindcss.com/) - A utility-first CSS framework
@@ -0,0 +1,15 @@
1
+ import { ReactNode, useEffect, useState } from 'react';
2
+
3
+ export function ClientOnly({ children }: { children: () => ReactNode }) {
4
+ const [hasMounted, setHasMounted] = useState(false);
5
+
6
+ useEffect(() => {
7
+ setHasMounted(true);
8
+ }, []);
9
+
10
+ if (!hasMounted) {
11
+ return null;
12
+ }
13
+
14
+ return <>{children()}</>;
15
+ }
@@ -0,0 +1,194 @@
1
+ import {
2
+ Wallet,
3
+ WalletDropdown,
4
+ Identity,
5
+ usePolygonKit,
6
+ } from '@sanketsaagar/polygon-kit';
7
+ import { useState } from 'react';
8
+
9
+ export function Dashboard() {
10
+ const { address, chainId } = usePolygonKit();
11
+ const [activeTab, setActiveTab] = useState<'overview' | 'activity' | 'settings'>('overview');
12
+
13
+ const getNetworkName = (chainId?: number) => {
14
+ switch (chainId) {
15
+ case 137:
16
+ return 'Polygon PoS';
17
+ case 1101:
18
+ return 'Polygon zkEVM';
19
+ case 80002:
20
+ return 'Amoy Testnet';
21
+ default:
22
+ return 'Unknown Network';
23
+ }
24
+ };
25
+
26
+ return (
27
+ <div className="min-h-screen bg-gradient-to-br from-slate-50 via-purple-50 to-indigo-50 dark:from-gray-900 dark:via-purple-900/20 dark:to-indigo-900/20">
28
+ {/* Header */}
29
+ <header className="border-b border-gray-200 dark:border-gray-800 bg-white/50 dark:bg-gray-900/50 backdrop-blur-lg sticky top-0 z-50">
30
+ <div className="container mx-auto px-4 py-4">
31
+ <div className="flex justify-between items-center">
32
+ <div className="flex items-center space-x-3">
33
+ <div className="w-10 h-10 bg-gradient-to-br from-purple-500 to-pink-500 rounded-lg" />
34
+ <div>
35
+ <h1 className="text-xl font-bold text-gray-900 dark:text-white">My Polygon App</h1>
36
+ <p className="text-sm text-gray-500 dark:text-gray-400">{getNetworkName(chainId)}</p>
37
+ </div>
38
+ </div>
39
+ <Wallet>
40
+ <WalletDropdown />
41
+ </Wallet>
42
+ </div>
43
+ </div>
44
+ </header>
45
+
46
+ <div className="container mx-auto px-4 py-8">
47
+ {/* Tabs */}
48
+ <div className="flex space-x-2 mb-8 bg-white/50 dark:bg-gray-800/50 backdrop-blur-sm p-1 rounded-lg w-fit">
49
+ {[
50
+ { id: 'overview', label: 'Overview', icon: '📊' },
51
+ { id: 'activity', label: 'Activity', icon: '⚡' },
52
+ { id: 'settings', label: 'Settings', icon: '⚙️' },
53
+ ].map((tab) => (
54
+ <button
55
+ key={tab.id}
56
+ onClick={() => setActiveTab(tab.id as typeof activeTab)}
57
+ className={`px-6 py-2 rounded-md font-semibold transition-all duration-200 ${
58
+ activeTab === tab.id
59
+ ? 'bg-gradient-to-r from-purple-500 to-pink-500 text-white shadow-lg'
60
+ : 'text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'
61
+ }`}
62
+ >
63
+ <span className="mr-2">{tab.icon}</span>
64
+ {tab.label}
65
+ </button>
66
+ ))}
67
+ </div>
68
+
69
+ {/* Overview Tab */}
70
+ {activeTab === 'overview' && (
71
+ <div className="space-y-6">
72
+ {/* Wallet Overview */}
73
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
74
+ <div className="lg:col-span-2 bg-gradient-to-br from-purple-500 to-pink-500 p-8 rounded-2xl text-white shadow-xl">
75
+ <h2 className="text-lg font-semibold mb-4 opacity-90">Your Wallet</h2>
76
+ <Identity
77
+ address={address!}
78
+ showAvatar
79
+ showAddress
80
+ showBalance
81
+ className="scale-110"
82
+ />
83
+ <div className="mt-6 flex gap-3">
84
+ <button className="flex-1 py-3 bg-white/20 backdrop-blur-sm rounded-lg font-semibold hover:bg-white/30 transition-all">
85
+ Send
86
+ </button>
87
+ <button className="flex-1 py-3 bg-white/20 backdrop-blur-sm rounded-lg font-semibold hover:bg-white/30 transition-all">
88
+ Receive
89
+ </button>
90
+ <button className="flex-1 py-3 bg-white/20 backdrop-blur-sm rounded-lg font-semibold hover:bg-white/30 transition-all">
91
+ Swap
92
+ </button>
93
+ </div>
94
+ </div>
95
+
96
+ <div className="bg-white/80 dark:bg-gray-800/80 backdrop-blur-lg p-6 rounded-2xl shadow-lg border border-gray-200 dark:border-gray-700">
97
+ <h3 className="text-sm font-semibold text-gray-600 dark:text-gray-400 mb-4">Network Status</h3>
98
+ <div className="space-y-4">
99
+ <div className="flex items-center justify-between">
100
+ <span className="text-gray-700 dark:text-gray-300">Status</span>
101
+ <span className="flex items-center gap-2 text-green-600 dark:text-green-400 font-semibold">
102
+ <span className="w-2 h-2 bg-green-500 rounded-full animate-pulse" />
103
+ Connected
104
+ </span>
105
+ </div>
106
+ <div className="flex items-center justify-between">
107
+ <span className="text-gray-700 dark:text-gray-300">Chain ID</span>
108
+ <span className="font-mono font-semibold text-gray-900 dark:text-white">{chainId || 'N/A'}</span>
109
+ </div>
110
+ <div className="flex items-center justify-between">
111
+ <span className="text-gray-700 dark:text-gray-300">Gas Price</span>
112
+ <span className="text-gray-900 dark:text-white font-semibold">~30 Gwei</span>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+
118
+ {/* Quick Actions */}
119
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
120
+ {[
121
+ { icon: '💸', title: 'Send Tokens', desc: 'Transfer assets' },
122
+ { icon: '🔄', title: 'Swap', desc: 'Exchange tokens' },
123
+ { icon: '🌉', title: 'Bridge', desc: 'Cross-chain transfer' },
124
+ { icon: '📈', title: 'Stake', desc: 'Earn rewards' },
125
+ ].map((action) => (
126
+ <button
127
+ key={action.title}
128
+ className="p-6 bg-white/80 dark:bg-gray-800/80 backdrop-blur-lg rounded-xl border border-gray-200 dark:border-gray-700 hover:scale-105 transition-all duration-200 text-left group shadow-lg hover:shadow-xl"
129
+ >
130
+ <div className="text-4xl mb-3 group-hover:scale-110 transition-transform">{action.icon}</div>
131
+ <h3 className="font-bold text-gray-900 dark:text-white mb-1">{action.title}</h3>
132
+ <p className="text-sm text-gray-600 dark:text-gray-400">{action.desc}</p>
133
+ </button>
134
+ ))}
135
+ </div>
136
+
137
+ {/* Recent Activity */}
138
+ <div className="bg-white/80 dark:bg-gray-800/80 backdrop-blur-lg p-8 rounded-2xl shadow-lg border border-gray-200 dark:border-gray-700">
139
+ <h2 className="text-xl font-bold text-gray-900 dark:text-white mb-6">Recent Activity</h2>
140
+ <div className="space-y-4">
141
+ {[
142
+ { type: 'Received', amount: '100 MATIC', time: '2 mins ago' },
143
+ { type: 'Sent', amount: '50 MATIC', time: '1 hour ago' },
144
+ { type: 'Swapped', amount: '25 MATIC → 40 USDC', time: '3 hours ago' },
145
+ ].map((tx, idx) => (
146
+ <div key={idx} className="flex items-center justify-between p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg">
147
+ <div className="flex items-center gap-4">
148
+ <div className={`w-10 h-10 rounded-full flex items-center justify-center ${
149
+ tx.type === 'Received' ? 'bg-green-100 dark:bg-green-900/30' :
150
+ tx.type === 'Sent' ? 'bg-red-100 dark:bg-red-900/30' :
151
+ 'bg-blue-100 dark:bg-blue-900/30'
152
+ }`}>
153
+ {tx.type === 'Received' ? '↓' : tx.type === 'Sent' ? '↑' : '↔'}
154
+ </div>
155
+ <div>
156
+ <p className="font-semibold text-gray-900 dark:text-white">{tx.type}</p>
157
+ <p className="text-sm text-gray-600 dark:text-gray-400">{tx.amount}</p>
158
+ </div>
159
+ </div>
160
+ <div className="text-right">
161
+ <p className="text-sm text-gray-600 dark:text-gray-400">{tx.time}</p>
162
+ <span className="text-xs text-green-600 dark:text-green-400">✓ Confirmed</span>
163
+ </div>
164
+ </div>
165
+ ))}
166
+ </div>
167
+ </div>
168
+ </div>
169
+ )}
170
+
171
+ {/* Activity Tab */}
172
+ {activeTab === 'activity' && (
173
+ <div className="bg-white/80 dark:bg-gray-800/80 backdrop-blur-lg p-8 rounded-2xl shadow-lg border border-gray-200 dark:border-gray-700">
174
+ <h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">Transaction History</h2>
175
+ <p className="text-gray-600 dark:text-gray-400">Your transaction history will appear here.</p>
176
+ </div>
177
+ )}
178
+
179
+ {/* Settings Tab */}
180
+ {activeTab === 'settings' && (
181
+ <div className="bg-white/80 dark:bg-gray-800/80 backdrop-blur-lg p-8 rounded-2xl shadow-lg border border-gray-200 dark:border-gray-700">
182
+ <h2 className="text-2xl font-bold text-gray-900 dark:text-white mb-6">Settings</h2>
183
+ <div className="space-y-6">
184
+ <div>
185
+ <h3 className="font-semibold text-gray-900 dark:text-white mb-2">Preferences</h3>
186
+ <p className="text-gray-600 dark:text-gray-400">Configure your app settings here.</p>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ )}
191
+ </div>
192
+ </div>
193
+ );
194
+ }
@@ -0,0 +1,135 @@
1
+ import { ConnectWallet } from '@sanketsaagar/polygon-kit';
2
+
3
+ export function LandingPage() {
4
+ return (
5
+ <div className="min-h-screen bg-gradient-to-br from-purple-900 via-indigo-900 to-blue-900">
6
+ {/* Hero Section */}
7
+ <div className="container mx-auto px-4 py-16">
8
+ <nav className="flex justify-between items-center mb-20">
9
+ <div className="flex items-center space-x-2">
10
+ <div className="w-10 h-10 bg-gradient-to-br from-purple-400 to-pink-400 rounded-lg" />
11
+ <span className="text-2xl font-bold text-white">PolygonKit</span>
12
+ </div>
13
+ <ConnectWallet />
14
+ </nav>
15
+
16
+ <div className="text-center max-w-4xl mx-auto mb-20">
17
+ <h1 className="text-6xl font-bold text-white mb-6 leading-tight">
18
+ Build Amazing Web3 Apps
19
+ <span className="block bg-gradient-to-r from-purple-400 via-pink-400 to-blue-400 bg-clip-text text-transparent">
20
+ On Polygon
21
+ </span>
22
+ </h1>
23
+ <p className="text-xl text-gray-300 mb-8 max-w-2xl mx-auto">
24
+ The fastest way to create decentralized applications with React components,
25
+ TypeScript utilities, and Web3 primitives.
26
+ </p>
27
+ <div className="flex gap-4 justify-center">
28
+ <ConnectWallet />
29
+ <a
30
+ href="https://docs.polygonkit.com"
31
+ target="_blank"
32
+ rel="noopener noreferrer"
33
+ className="px-8 py-3 bg-white/10 backdrop-blur-sm text-white rounded-lg font-semibold hover:bg-white/20 transition-all duration-200"
34
+ >
35
+ View Docs
36
+ </a>
37
+ </div>
38
+ </div>
39
+
40
+ {/* Network Badges */}
41
+ <div className="flex flex-wrap justify-center gap-4 mb-20">
42
+ {[
43
+ { name: 'Polygon PoS', color: 'from-purple-500 to-purple-600' },
44
+ { name: 'Polygon zkEVM', color: 'from-blue-500 to-blue-600' },
45
+ { name: 'Amoy Testnet', color: 'from-pink-500 to-pink-600' },
46
+ ].map((network) => (
47
+ <div
48
+ key={network.name}
49
+ className={`px-6 py-3 bg-gradient-to-r ${network.color} rounded-full text-white font-semibold shadow-lg`}
50
+ >
51
+ {network.name}
52
+ </div>
53
+ ))}
54
+ </div>
55
+
56
+ {/* Features Grid */}
57
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-8 mb-20">
58
+ {[
59
+ {
60
+ icon: '⚡',
61
+ title: 'Lightning Fast',
62
+ description: 'Build and deploy in minutes with pre-built components and hooks',
63
+ },
64
+ {
65
+ icon: '🔒',
66
+ title: 'Secure by Default',
67
+ description: 'Battle-tested wallet connections and transaction handling',
68
+ },
69
+ {
70
+ icon: '🎨',
71
+ title: 'Beautiful UI',
72
+ description: 'Modern, responsive components that work out of the box',
73
+ },
74
+ {
75
+ icon: '🔗',
76
+ title: 'Multi-Chain',
77
+ description: 'Support for Polygon PoS, zkEVM, and more chains',
78
+ },
79
+ {
80
+ icon: '📱',
81
+ title: 'Mobile Ready',
82
+ description: 'Responsive design that works on all devices',
83
+ },
84
+ {
85
+ icon: '🛠️',
86
+ title: 'Developer First',
87
+ description: 'TypeScript support, great DX, and detailed documentation',
88
+ },
89
+ ].map((feature) => (
90
+ <div
91
+ key={feature.title}
92
+ className="p-8 bg-white/5 backdrop-blur-lg rounded-2xl border border-white/10 hover:bg-white/10 transition-all duration-300 hover:scale-105"
93
+ >
94
+ <div className="text-4xl mb-4">{feature.icon}</div>
95
+ <h3 className="text-xl font-bold text-white mb-2">{feature.title}</h3>
96
+ <p className="text-gray-300">{feature.description}</p>
97
+ </div>
98
+ ))}
99
+ </div>
100
+
101
+ {/* Stats */}
102
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-8 max-w-4xl mx-auto">
103
+ {[
104
+ { label: 'Components', value: '20+' },
105
+ { label: 'Networks', value: '3' },
106
+ { label: 'Developers', value: '1000+' },
107
+ { label: 'Open Source', value: '100%' },
108
+ ].map((stat) => (
109
+ <div key={stat.label} className="text-center">
110
+ <div className="text-4xl font-bold text-white mb-2">{stat.value}</div>
111
+ <div className="text-gray-400">{stat.label}</div>
112
+ </div>
113
+ ))}
114
+ </div>
115
+ </div>
116
+
117
+ {/* Footer */}
118
+ <footer className="border-t border-white/10 py-8">
119
+ <div className="container mx-auto px-4 text-center text-gray-400">
120
+ <p>
121
+ Built with ❤️ for the Polygon community •{' '}
122
+ <a
123
+ href="https://github.com/sanketsaagar/polygonKit"
124
+ target="_blank"
125
+ rel="noopener noreferrer"
126
+ className="text-purple-400 hover:text-purple-300"
127
+ >
128
+ View on GitHub
129
+ </a>
130
+ </p>
131
+ </div>
132
+ </footer>
133
+ </div>
134
+ );
135
+ }
@@ -0,0 +1,18 @@
1
+ import { PolygonKitProvider } from '@sanketsaagar/polygon-kit';
2
+ import { ReactNode } from 'react';
3
+
4
+ export function Providers({ children }: { children: ReactNode }) {
5
+ const projectId = typeof window !== 'undefined'
6
+ ? (window as any).ENV?.VITE_REOWN_PROJECT_ID
7
+ : undefined;
8
+
9
+ return (
10
+ <PolygonKitProvider
11
+ config={{
12
+ projectId,
13
+ }}
14
+ >
15
+ {children}
16
+ </PolygonKitProvider>
17
+ );
18
+ }
@@ -0,0 +1,44 @@
1
+ import {
2
+ Links,
3
+ Meta,
4
+ Outlet,
5
+ Scripts,
6
+ ScrollRestoration,
7
+ } from '@remix-run/react';
8
+ import { Providers } from './providers';
9
+ import type { LinksFunction } from '@remix-run/node';
10
+
11
+ export const links: LinksFunction = () => [
12
+ { rel: 'preconnect', href: 'https://fonts.googleapis.com' },
13
+ {
14
+ rel: 'preconnect',
15
+ href: 'https://fonts.gstatic.com',
16
+ crossOrigin: 'anonymous',
17
+ },
18
+ ];
19
+
20
+ export function Layout({ children }: { children: React.ReactNode }) {
21
+ return (
22
+ <html lang="en">
23
+ <head>
24
+ <meta charSet="utf-8" />
25
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
26
+ <Meta />
27
+ <Links />
28
+ </head>
29
+ <body>
30
+ {children}
31
+ <ScrollRestoration />
32
+ <Scripts />
33
+ </body>
34
+ </html>
35
+ );
36
+ }
37
+
38
+ export default function App() {
39
+ return (
40
+ <Providers>
41
+ <Outlet />
42
+ </Providers>
43
+ );
44
+ }
@@ -0,0 +1,25 @@
1
+ import type { MetaFunction } from '@remix-run/node';
2
+ import { ClientOnly } from '~/components/client-only';
3
+ import { Dashboard } from '~/components/dashboard';
4
+ import { LandingPage } from '~/components/landing-page';
5
+ import { usePolygonKit } from '@sanketsaagar/polygon-kit';
6
+
7
+ export const meta: MetaFunction = () => {
8
+ return [
9
+ { title: 'My Polygon App' },
10
+ { name: 'description', content: 'Built with PolygonKit' },
11
+ ];
12
+ };
13
+
14
+ function HomeContent() {
15
+ const { isConnected } = usePolygonKit();
16
+ return isConnected ? <Dashboard /> : <LandingPage />;
17
+ }
18
+
19
+ export default function Index() {
20
+ return (
21
+ <ClientOnly>
22
+ {() => <HomeContent />}
23
+ </ClientOnly>
24
+ );
25
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "my-polygon-app",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "type": "module",
6
+ "scripts": {
7
+ "build": "remix vite:build",
8
+ "dev": "remix vite:dev",
9
+ "start": "remix-serve ./build/server/index.js",
10
+ "typecheck": "tsc"
11
+ },
12
+ "dependencies": {
13
+ "@remix-run/node": "^2.15.1",
14
+ "@remix-run/react": "^2.15.1",
15
+ "@remix-run/serve": "^2.15.1",
16
+ "@sanketsaagar/polygon-kit": "^0.1.5",
17
+ "wagmi": "^2.12.29",
18
+ "@wagmi/connectors": "^5.5.5",
19
+ "viem": "^2.21.45",
20
+ "@tanstack/react-query": "^5.59.20",
21
+ "isbot": "^4.1.0",
22
+ "react": "^18.3.1",
23
+ "react-dom": "^18.3.1"
24
+ },
25
+ "devDependencies": {
26
+ "@remix-run/dev": "^2.15.1",
27
+ "@types/react": "^18.3.12",
28
+ "@types/react-dom": "^18.3.1",
29
+ "typescript": "^5.6.2",
30
+ "vite": "^5.4.10",
31
+ "tailwindcss": "^4.0.0",
32
+ "@tailwindcss/vite": "^4.0.0"
33
+ },
34
+ "engines": {
35
+ "node": ">=20.0.0"
36
+ }
37
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "include": [
3
+ "**/*.ts",
4
+ "**/*.tsx",
5
+ "**/.server/**/*.ts",
6
+ "**/.server/**/*.tsx",
7
+ "**/.client/**/*.ts",
8
+ "**/.client/**/*.tsx"
9
+ ],
10
+ "compilerOptions": {
11
+ "lib": ["DOM", "DOM.Iterable", "ES2022"],
12
+ "types": ["@remix-run/node", "vite/client"],
13
+ "isolatedModules": true,
14
+ "esModuleInterop": true,
15
+ "jsx": "react-jsx",
16
+ "module": "ESNext",
17
+ "moduleResolution": "Bundler",
18
+ "resolveJsonModule": true,
19
+ "target": "ES2022",
20
+ "strict": true,
21
+ "allowJs": true,
22
+ "skipLibCheck": true,
23
+ "forceConsistentCasingInFileNames": true,
24
+ "baseUrl": ".",
25
+ "paths": {
26
+ "~/*": ["./app/*"]
27
+ },
28
+ "noEmit": true
29
+ }
30
+ }
@@ -0,0 +1,16 @@
1
+ import { vitePlugin as remix } from '@remix-run/dev';
2
+ import { defineConfig } from 'vite';
3
+ import tailwindcss from '@tailwindcss/vite';
4
+
5
+ export default defineConfig({
6
+ plugins: [
7
+ remix({
8
+ future: {
9
+ v3_fetcherPersist: true,
10
+ v3_relativeSplatPath: true,
11
+ v3_throwAbortReason: true,
12
+ },
13
+ }),
14
+ tailwindcss(),
15
+ ],
16
+ });