pinokiod 3.90.0 → 3.92.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinokiod",
3
- "version": "3.90.0",
3
+ "version": "3.92.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -29,6 +29,43 @@ async function uploadCapture(blob, filename) {
29
29
  }
30
30
 
31
31
  class ScreenCaptureModal {
32
+ static ensureSavedModalStyles() {
33
+ if (document.querySelector('link[href="/urldropdown.css"]')) {
34
+ return;
35
+ }
36
+ if (document.querySelector('style[data-capture-modal-styles="true"]')) {
37
+ return;
38
+ }
39
+ const style = document.createElement('style');
40
+ style.type = 'text/css';
41
+ style.dataset.captureModalStyles = 'true';
42
+ style.textContent = `
43
+ .modal-overlay{position:fixed;inset:0;padding:24px;display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 160ms ease,visibility 0s linear 160ms;}
44
+ .modal-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;}
45
+ @media (prefers-reduced-motion: reduce){.modal-overlay{transition:none;}.capture-modal{animation:none;}}
46
+ .capture-modal-overlay{background:rgba(15,23,42,0.45);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);}
47
+ .capture-modal{width:min(360px,calc(100% - 32px));padding:28px 26px;border-radius:18px;background:rgba(255,255,255,0.92);border:1px solid rgba(15,23,42,0.08);box-shadow:0 30px 80px rgba(15,23,42,0.35);display:flex;flex-direction:column;gap:18px;text-align:center;}
48
+ body.dark .capture-modal{background:rgba(15,23,42,0.9);border-color:rgba(148,163,184,0.24);color:rgba(226,232,240,0.96);box-shadow:0 34px 88px rgba(2,6,20,0.82);}
49
+ .capture-modal-title{font-size:20px;font-weight:600;letter-spacing:-0.01em;color:rgba(15,23,42,0.92);}
50
+ body.dark .capture-modal-title{color:inherit;}
51
+ .capture-modal-description{font-size:14px;line-height:1.5;color:rgba(71,85,105,0.82);}
52
+ body.dark .capture-modal-description{color:rgba(203,213,225,0.88);}
53
+ .capture-modal-actions{display:flex;justify-content:center;gap:12px;}
54
+ .capture-modal-button{padding:10px 20px;border-radius:999px;border:1px solid transparent;font-size:14px;font-weight:600;cursor:pointer;transition:background 0.18s ease,color 0.18s ease,box-shadow 0.18s ease,transform 0.12s ease;}
55
+ .capture-modal-button.primary{background:linear-gradient(135deg,rgba(127,91,243,0.95),rgba(84,63,196,0.95));color:#fff;box-shadow:0 16px 36px rgba(111,76,242,0.3);}
56
+ .capture-modal-button.primary:hover{box-shadow:0 20px 42px rgba(111,76,242,0.38);transform:translateY(-1px);}
57
+ .capture-modal-button.secondary{background:rgba(148,163,184,0.18);color:rgba(15,23,42,0.78);}
58
+ .capture-modal-button.secondary:hover{background:rgba(148,163,184,0.28);box-shadow:0 12px 28px rgba(15,23,42,0.12);}
59
+ body.dark .capture-modal-button.secondary{background:rgba(148,163,184,0.2);color:rgba(226,232,240,0.92);}
60
+ .capture-modal-button:active{transform:translateY(1px);}
61
+ .capture-modal-button:focus-visible{outline:2px solid rgba(127,91,243,0.8);outline-offset:2px;}
62
+ .modal-overlay.is-visible .capture-modal{animation:captureModalPop 160ms ease-out;}
63
+ @media (max-width: 640px){.modal-overlay{padding:16px;}.capture-modal{width:calc(100% - 24px);padding:24px 20px;}.capture-modal-actions{flex-direction:column;}.capture-modal-button{width:100%;}}
64
+ @keyframes captureModalPop{from{opacity:0;transform:scale(0.97) translateY(12px);}to{opacity:1;transform:scale(1) translateY(0);}}
65
+ `;
66
+ document.head.appendChild(style);
67
+ }
68
+
32
69
  constructor(stream = null, opts = {}) {
33
70
  this.stream = stream;
34
71
  this.opts = opts;
@@ -1128,6 +1165,7 @@ class ScreenCaptureModal {
1128
1165
  }
1129
1166
 
1130
1167
  showCaptureSavedModal(kind) {
1168
+ this.constructor.ensureSavedModalStyles();
1131
1169
  const overlay = document.createElement('div');
1132
1170
  overlay.className = 'modal-overlay capture-modal-overlay';
1133
1171
 
@@ -1560,7 +1560,7 @@ body.dark .btn {
1560
1560
  cursor: pointer;
1561
1561
  border: none;
1562
1562
  text-decoration: none;
1563
- padding: 10px;
1563
+ padding: 5px 10px;
1564
1564
  border-radius: 3px;
1565
1565
  background: black;
1566
1566
  /*
@@ -2339,9 +2339,11 @@ body.dark {
2339
2339
  gap: 0;
2340
2340
  line-height: 0;
2341
2341
  }
2342
+ /*
2342
2343
  #fs-status .fs-status-label i {
2343
2344
  font-size: 1rem;
2344
2345
  }
2346
+ */
2345
2347
  #fs-push-btn {
2346
2348
  min-width: 0;
2347
2349
  }
@@ -180,7 +180,7 @@ body.dark #status-window b {
180
180
  <% if (target === "_top") { %>
181
181
  <header class='navheader grabbable'>
182
182
  <% } else { %>
183
- <header class='navheader3'>
183
+ <header class='navheader2'>
184
184
  <% } %>
185
185
  <h1>
186
186
  <% if (target === "_top") { %>
@@ -163,7 +163,7 @@ body.frozen {
163
163
  #status-window {
164
164
  display: flex;
165
165
  align-items: center;
166
- font-size: 14px;
166
+ font-size: 12px;
167
167
  /*
168
168
  flex-grow: 1;
169
169
  text-align: right;
@@ -1112,9 +1112,9 @@ document.addEventListener("DOMContentLoaded", async () => {
1112
1112
  <% if (target === "_top") { %>
1113
1113
  <header class='navheader grabbable'>
1114
1114
  <% } else { %>
1115
- <header class='navheader3'>
1115
+ <header class='navheader2'>
1116
1116
  <% } %>
1117
- <h1>
1117
+ <div class='runner'>
1118
1118
  <% if (target === "_top") { %>
1119
1119
  <a class='home' href="/"><img class='icon' src="/pinokio-black.png"></a>
1120
1120
  <% } %>
@@ -1132,7 +1132,7 @@ document.addEventListener("DOMContentLoaded", async () => {
1132
1132
  </div>
1133
1133
  <div id='status-window'></div>
1134
1134
  <div id='progress-window' class='hidden'><div id='progress-bar'></div></div>
1135
- </h1>
1135
+ </div>
1136
1136
  </header>
1137
1137
  <div class='terminal-container'>
1138
1138
  <div id='terminal'></div>