claude-code-marketplace 0.2.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/README.md +85 -0
- package/package.json +55 -0
- package/public/app.js +1088 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/icons/icon-svg.svg +9 -0
- package/public/index.html +151 -0
- package/public/manifest.json +14 -0
- package/public/style.css +1242 -0
- package/public/sw.js +33 -0
- package/server.js +733 -0
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
|
|
2
|
+
<rect width="512" height="512" rx="64" fill="#101114"/>
|
|
3
|
+
<g transform="translate(96 96) scale(13.33)" fill="none" stroke="#e86f33" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
4
|
+
<rect x="3" y="3" width="7" height="7"/>
|
|
5
|
+
<rect x="14" y="3" width="7" height="7"/>
|
|
6
|
+
<rect x="3" y="14" width="7" height="7"/>
|
|
7
|
+
<rect x="14" y="14" width="7" height="7"/>
|
|
8
|
+
</g>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,151 @@
|
|
|
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>Claude Code Marketplace</title>
|
|
7
|
+
<link rel="stylesheet" href="style.css">
|
|
8
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github-dark.min.css" id="hljsDark">
|
|
9
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github.min.css" id="hljsLight" disabled>
|
|
10
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
|
|
11
|
+
<link rel="manifest" href="/manifest.json">
|
|
12
|
+
<link rel="icon" type="image/svg+xml" href="/icons/icon-svg.svg">
|
|
13
|
+
<meta name="theme-color" content="#101114" media="(prefers-color-scheme: dark)">
|
|
14
|
+
<meta name="theme-color" content="#e8e6e3" media="(prefers-color-scheme: light)">
|
|
15
|
+
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
16
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
17
|
+
<link rel="apple-touch-icon" href="/icons/icon-192.png">
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div class="topbar">
|
|
21
|
+
<div class="topbar-logo">
|
|
22
|
+
<div class="logo-mark"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"/></svg></div>
|
|
23
|
+
<span class="logo-text">Marketplace</span>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="spacer"></div>
|
|
26
|
+
<div class="topbar-search">
|
|
27
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg>
|
|
28
|
+
<input type="text" id="searchInput" placeholder="Filter plugins..." autocomplete="off">
|
|
29
|
+
</div>
|
|
30
|
+
<select class="topbar-select" id="scopeFilter">
|
|
31
|
+
<option value="installed" selected>Installed</option>
|
|
32
|
+
<option value="all">All</option>
|
|
33
|
+
<option value="user">User</option>
|
|
34
|
+
<option value="project">Project</option>
|
|
35
|
+
<option value="local">Local</option>
|
|
36
|
+
</select>
|
|
37
|
+
<div class="topbar-project" id="projectBtn">
|
|
38
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z"/></svg>
|
|
39
|
+
<span id="projectPath"></span>
|
|
40
|
+
</div>
|
|
41
|
+
<button class="topbar-btn" id="addMarketplaceBtn" title="Add marketplace">
|
|
42
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
|
43
|
+
Add
|
|
44
|
+
</button>
|
|
45
|
+
<button class="topbar-btn" id="refreshBtn" title="Refresh data">
|
|
46
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 11-2.12-9.36L23 10"/></svg>
|
|
47
|
+
Refresh
|
|
48
|
+
</button>
|
|
49
|
+
<button class="topbar-btn" id="helpBtn" title="Keyboard shortcuts (?)">
|
|
50
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><circle cx="12" cy="17" r="0.5" fill="currentColor"/></svg>
|
|
51
|
+
<kbd style="font-size:10px">?</kbd>
|
|
52
|
+
</button>
|
|
53
|
+
<button class="topbar-btn" id="themeBtn" title="Toggle theme">
|
|
54
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
|
|
55
|
+
</button>
|
|
56
|
+
<a class="topbar-btn" href="https://github.com/NikiforovAll/claude-code-marketplace" target="_blank" rel="noopener" title="GitHub">
|
|
57
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" stroke="none"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
|
|
58
|
+
</a>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<div class="main-layout">
|
|
62
|
+
<div class="tree-panel">
|
|
63
|
+
<div class="tree-container" id="treeContainer">
|
|
64
|
+
<div class="loading">Loading marketplaces...</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="detail-panel" id="detailPanel">
|
|
68
|
+
<div class="detail-empty">
|
|
69
|
+
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" opacity="0.3"><path d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"/></svg>
|
|
70
|
+
<span>Select a plugin to view details</span>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="toast" id="toast"></div>
|
|
76
|
+
|
|
77
|
+
<!-- Add marketplace modal -->
|
|
78
|
+
<div class="modal-overlay" id="addMarketplaceModal">
|
|
79
|
+
<div class="modal">
|
|
80
|
+
<div class="modal-header">
|
|
81
|
+
<h3>Add Marketplace</h3>
|
|
82
|
+
<button class="modal-close" onclick="closeModal('addMarketplaceModal')">✕</button>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="modal-body">
|
|
85
|
+
<div class="modal-field">
|
|
86
|
+
<label>Source</label>
|
|
87
|
+
<input type="text" id="marketplaceSource" placeholder="github:owner/repo or /path/to/directory" autocomplete="off">
|
|
88
|
+
<span class="modal-hint">GitHub repo (e.g. anthropics/skills), git URL (e.g. https://github.com/org/repo.git), or local directory path</span>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="modal-actions">
|
|
91
|
+
<button class="action-btn" onclick="closeModal('addMarketplaceModal')">Cancel</button>
|
|
92
|
+
<button class="action-btn primary" id="addMarketplaceSubmit" onclick="submitAddMarketplace()">Add</button>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<!-- Help modal -->
|
|
99
|
+
<div class="modal-overlay" id="helpModal">
|
|
100
|
+
<div class="modal help-modal" onclick="event.stopPropagation()">
|
|
101
|
+
<div class="modal-header">
|
|
102
|
+
<h3>Keyboard Shortcuts</h3>
|
|
103
|
+
<button class="modal-close" onclick="closeModal('helpModal')">✕</button>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="modal-body">
|
|
106
|
+
<div class="help-sections">
|
|
107
|
+
<div class="help-section">
|
|
108
|
+
<h4>Global</h4>
|
|
109
|
+
<table>
|
|
110
|
+
<tr><td><kbd>?</kbd></td><td>Show keyboard shortcuts</td></tr>
|
|
111
|
+
<tr><td><kbd>/</kbd></td><td>Focus search</td></tr>
|
|
112
|
+
<tr><td><kbd>S</kbd></td><td>Focus scope filter</td></tr>
|
|
113
|
+
<tr><td><kbd>R</kbd></td><td>Refresh data</td></tr>
|
|
114
|
+
<tr><td><kbd>Esc</kbd></td><td>Close panel / blur input</td></tr>
|
|
115
|
+
</table>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="help-section">
|
|
118
|
+
<h4>Navigation</h4>
|
|
119
|
+
<table>
|
|
120
|
+
<tr><td><kbd>J</kbd> / <kbd>↓</kbd></td><td>Next row</td></tr>
|
|
121
|
+
<tr><td><kbd>K</kbd> / <kbd>↑</kbd></td><td>Previous row</td></tr>
|
|
122
|
+
<tr><td><kbd>L</kbd> / <kbd>→</kbd></td><td>Expand marketplace</td></tr>
|
|
123
|
+
<tr><td><kbd>H</kbd> / <kbd>←</kbd></td><td>Collapse / go to parent</td></tr>
|
|
124
|
+
<tr><td><kbd>Enter</kbd> / <kbd>Space</kbd></td><td>Select / toggle</td></tr>
|
|
125
|
+
</table>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<!-- Content modal -->
|
|
133
|
+
<div class="modal-overlay" id="contentModal">
|
|
134
|
+
<div class="modal content-modal" onclick="event.stopPropagation()">
|
|
135
|
+
<div class="modal-header">
|
|
136
|
+
<h3 id="contentModalTitle">File Preview</h3>
|
|
137
|
+
<button class="modal-close" onclick="closeModal('contentModal')">✕</button>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="content-modal-body">
|
|
140
|
+
<div class="content-tree" id="contentTree"></div>
|
|
141
|
+
<div class="content-viewer" id="contentViewer">
|
|
142
|
+
<div class="content-viewer-path" id="contentViewerPath"></div>
|
|
143
|
+
<pre class="content-viewer-code" id="contentViewerCode"><code></code></pre>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<script src="app.js"></script>
|
|
150
|
+
</body>
|
|
151
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Claude Code Marketplace",
|
|
3
|
+
"short_name": "CC Market",
|
|
4
|
+
"description": "Browse and manage Claude Code plugins",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#101114",
|
|
8
|
+
"theme_color": "#101114",
|
|
9
|
+
"icons": [
|
|
10
|
+
{ "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" },
|
|
11
|
+
{ "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" },
|
|
12
|
+
{ "src": "/icons/icon-svg.svg", "sizes": "any", "type": "image/svg+xml" }
|
|
13
|
+
]
|
|
14
|
+
}
|