@privateclaw/privateclaw-relay 0.1.10 → 0.1.12

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.
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, getLocale, onLocaleChange } from "./i18n.js?v=20260316-3";
1
+ import { applyTranslations, bindLocaleSelect, getLocale, onLocaleChange } from "./i18n.js?v=20260325-1";
2
2
 
3
3
  const POLICY_BUNDLES = {
4
4
  en: {
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, getValue, onLocaleChange, t } from "./i18n.js?v=20260316-3";
1
+ import { applyTranslations, bindLocaleSelect, getValue, onLocaleChange, t } from "./i18n.js?v=20260328-2";
2
2
 
3
3
  const localeSelect = document.getElementById("locale-select");
4
4
  const webEntry = document.getElementById("web-entry");
@@ -95,6 +95,12 @@ function renderSetupSteps() {
95
95
  for (const item of steps) {
96
96
  const card = document.createElement("article");
97
97
  card.className = "setup-card";
98
+ if (item.featured) {
99
+ card.classList.add("setup-card-featured");
100
+ }
101
+ if (typeof item.variant === "string" && item.variant.trim() !== "") {
102
+ card.classList.add(`setup-card-${item.variant.trim().toLowerCase()}`);
103
+ }
98
104
 
99
105
  const stepLabel = document.createElement("div");
100
106
  stepLabel.className = "setup-step-label";
@@ -291,10 +291,82 @@ img {
291
291
  display: block;
292
292
  }
293
293
 
294
+ .button-with-icon,
295
+ .store-button-rich,
296
+ .badge-with-icon {
297
+ gap: 12px;
298
+ }
299
+
300
+ .button-with-icon,
301
+ .store-button-rich {
302
+ padding-inline-start: 14px;
303
+ }
304
+
305
+ .button-icon-surface,
306
+ .badge-icon-surface {
307
+ width: 34px;
308
+ height: 34px;
309
+ border-radius: 12px;
310
+ border: 1px solid rgba(255, 255, 255, 0.12);
311
+ background: rgba(255, 255, 255, 0.08);
312
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
313
+ display: inline-flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ flex-shrink: 0;
317
+ }
318
+
319
+ .primary-button .button-icon-surface {
320
+ border-color: rgba(7, 16, 31, 0.12);
321
+ background: rgba(7, 16, 31, 0.1);
322
+ }
323
+
324
+ .button-icon-image,
325
+ .badge-icon-image {
326
+ width: 20px;
327
+ height: 20px;
328
+ display: block;
329
+ flex-shrink: 0;
330
+ }
331
+
332
+ .store-button-icon-surface {
333
+ width: 38px;
334
+ height: 38px;
335
+ }
336
+
337
+ .store-button-icon-image {
338
+ width: 22px;
339
+ height: 22px;
340
+ }
341
+
342
+ .badge-with-icon {
343
+ gap: 10px;
344
+ padding-inline-start: 8px;
345
+ }
346
+
347
+ .badge-icon-surface {
348
+ width: 28px;
349
+ height: 28px;
350
+ border-radius: 10px;
351
+ }
352
+
353
+ .badge-icon-image {
354
+ width: 16px;
355
+ height: 16px;
356
+ }
357
+
294
358
  .store-button {
295
359
  text-decoration: none;
296
360
  }
297
361
 
362
+ .store-button-rich .store-button-label {
363
+ font-weight: 600;
364
+ line-height: 1.18;
365
+ display: inline-flex;
366
+ align-items: center;
367
+ min-height: 40px;
368
+ }
369
+
298
370
  .store-button:not(.store-button-live) {
299
371
  cursor: not-allowed;
300
372
  opacity: 0.72;
@@ -602,6 +674,24 @@ img {
602
674
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.2);
603
675
  }
604
676
 
677
+ .setup-card-featured {
678
+ grid-column: span 2;
679
+ padding: 22px;
680
+ }
681
+
682
+ .setup-card-recommended {
683
+ border-color: rgba(62, 217, 255, 0.32);
684
+ background:
685
+ linear-gradient(160deg, rgba(143, 125, 255, 0.18), rgba(62, 217, 255, 0.1)),
686
+ rgba(5, 9, 20, 0.62);
687
+ }
688
+
689
+ .setup-card-fallback {
690
+ background:
691
+ linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
692
+ rgba(5, 9, 20, 0.46);
693
+ }
694
+
605
695
  .setup-step-label {
606
696
  color: var(--accent-2);
607
697
  font-size: 0.82rem;
@@ -609,6 +699,14 @@ img {
609
699
  text-transform: uppercase;
610
700
  }
611
701
 
702
+ .setup-card-recommended .setup-step-label {
703
+ color: #91f5ff;
704
+ }
705
+
706
+ .setup-card-fallback .setup-step-label {
707
+ color: rgba(200, 221, 255, 0.72);
708
+ }
709
+
612
710
  .setup-card p {
613
711
  margin: 0;
614
712
  }
@@ -655,6 +753,12 @@ img {
655
753
  font-size: 0.92rem;
656
754
  }
657
755
 
756
+ .coming-soon-row > .community-footnote,
757
+ .community-actions > .community-footnote {
758
+ flex: 1 1 100%;
759
+ margin: 0;
760
+ }
761
+
658
762
  .footer-copy {
659
763
  display: flex;
660
764
  flex-direction: column;
@@ -1493,6 +1597,10 @@ details.thinking-trace-card > summary::-webkit-details-marker {
1493
1597
  .community-card {
1494
1598
  flex-direction: column;
1495
1599
  }
1600
+
1601
+ .setup-card-featured {
1602
+ grid-column: auto;
1603
+ }
1496
1604
  }
1497
1605
 
1498
1606
  @media (max-width: 720px) {
@@ -7,7 +7,7 @@
7
7
  <meta name="description" content="PrivateClaw terms of use." />
8
8
  <title>PrivateClaw Terms</title>
9
9
  <link rel="icon" type="image/png" href="../assets/privateclaw_app_icon.png?v=20260314-2" />
10
- <link rel="stylesheet" href="../styles.css?v=20260316-3" />
10
+ <link rel="stylesheet" href="../styles.css?v=20260329-2" />
11
11
  </head>
12
12
  <body class="marketing-page policy-page" data-policy-page="terms">
13
13
  <div class="aurora aurora-a"></div>
@@ -29,15 +29,15 @@
29
29
 
30
30
  <nav class="topbar-actions">
31
31
  <a class="ghost-button icon-link" href="https://github.com/topcheer/PrivateClaw" target="_blank" rel="noreferrer">
32
- <img src="../assets/icon-github.svg?v=20260314-1" alt="" class="icon-link-image" />
32
+ <img src="../assets/icon-github.svg?v=20260329-1" alt="" class="icon-link-image" />
33
33
  <span class="sr-only" data-i18n="site.navGithub"></span>
34
34
  </a>
35
35
  <a class="ghost-button icon-link google-icon-link" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer">
36
- <img src="../assets/icon-google-group.svg?v=20260314-1" alt="" class="icon-link-image" />
36
+ <img src="../assets/icon-google-group.svg?v=20260329-1" alt="" class="icon-link-image" />
37
37
  <span class="sr-only" data-i18n="site.navBetaGroup"></span>
38
38
  </a>
39
39
  <a class="ghost-button icon-link" href="https://t.me/+W3RUKxEO9kIxMmZl" target="_blank" rel="noreferrer">
40
- <img src="../assets/icon-telegram.svg?v=20260314-1" alt="" class="icon-link-image" />
40
+ <img src="../assets/icon-telegram.svg?v=20260329-1" alt="" class="icon-link-image" />
41
41
  <span class="sr-only" data-i18n="site.navTelegramGroup"></span>
42
42
  </a>
43
43
  <label class="locale-picker" for="locale-select">
@@ -78,6 +78,6 @@
78
78
  </footer>
79
79
  </div>
80
80
 
81
- <script type="module" src="../scripts/policy.js?v=20260316-3"></script>
81
+ <script type="module" src="../scripts/policy.js?v=20260325-1"></script>
82
82
  </body>
83
83
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privateclaw/privateclaw-relay",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Blind WebSocket relay for PrivateClaw encrypted sessions with local CLI startup and optional Tailscale Funnel or Cloudflare Tunnel exposure",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",