pinokiod 3.133.0 → 3.134.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.
@@ -47,7 +47,6 @@ class Backend {
47
47
  let authPath = this.kernel.path(`connect/${this.name}/auth.json`)
48
48
  this.auth = (await this.kernel.loader.load(authPath)).resolved
49
49
  if (!this.auth) {
50
- console.log("not authenticated")
51
50
  return null
52
51
  }
53
52
  if (!this.auth.refresh_token) {
@@ -38,7 +38,6 @@ class Huggingface {
38
38
  let authPath = this.kernel.path('connect/huggingface.json')
39
39
  this.auth = (await this.kernel.loader.load(authPath)).resolved
40
40
  if (!this.auth) {
41
- console.log("not authenticated")
42
41
  return null
43
42
  }
44
43
  if (!this.auth.refresh_token) {
package/kernel/index.js CHANGED
@@ -488,7 +488,7 @@ class Kernel {
488
488
  let changed
489
489
  let new_config = JSON.stringify(await this.peer.current_host())
490
490
  if (this.old_config !== new_config) {
491
- console.log("Proc config has changed. update router.")
491
+ // console.log("Proc config has changed. update router.")
492
492
  changed = true
493
493
  } else {
494
494
  // console.log("Proc config is the same")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinokiod",
3
- "version": "3.133.0",
3
+ "version": "3.134.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/server/index.js CHANGED
@@ -449,9 +449,6 @@ class Server {
449
449
  } else {
450
450
  cfg.menu = cfg.menu(this.kernel, this.kernel.info)
451
451
  }
452
- cfg = await this.renderIndex(name, cfg)
453
- } else if (Array.isArray(cfg.menu)) {
454
- cfg = await this.renderIndex(name, cfg)
455
452
  }
456
453
  } else {
457
454
  cfg = await this.renderIndex(name, cfg)
@@ -698,7 +695,7 @@ class Server {
698
695
  if (config && config.version) {
699
696
  let coerced = semver.coerce(config.version)
700
697
  if (semver.satisfies(coerced, this.kernel.schema)) {
701
- console.log("semver satisfied", config.version, this.kernel.schema)
698
+ // console.log("semver satisfied", config.version, this.kernel.schema)
702
699
  } else {
703
700
  console.log("semver NOT satisfied", config.version, this.kernel.schema)
704
701
  err = `Please update to the latest Pinokio (current script version: ${config.version}, supported: ${this.kernel.schema})`
@@ -3722,7 +3719,11 @@ class Server {
3722
3719
  this.app.use(express.json());
3723
3720
  this.app.use(express.urlencoded({ extended: true }));
3724
3721
  this.app.use(cookieParser());
3725
- this.app.use(session({secret: "secret" }))
3722
+ this.app.use(session({
3723
+ secret: "secret",
3724
+ resave: false,
3725
+ saveUninitialized: false
3726
+ }))
3726
3727
  this.app.use((req, res, next) => {
3727
3728
  const originalRedirect = res.redirect;
3728
3729
  res.redirect = function (url) {
@@ -18,6 +18,16 @@ document.addEventListener("DOMContentLoaded", () => {
18
18
  return;
19
19
  }
20
20
 
21
+ const dispatchHeaderState = (minimized, detail = {}) => {
22
+ if (typeof window === "undefined" || typeof window.CustomEvent !== "function") {
23
+ return;
24
+ }
25
+ const payload = { minimized, ...detail };
26
+ document.dispatchEvent(new CustomEvent("pinokio:header-state", { detail: payload }));
27
+ const aliasEvent = minimized ? "pinokio:header-minimized" : "pinokio:header-restored";
28
+ document.dispatchEvent(new CustomEvent(aliasEvent, { detail: { ...payload } }));
29
+ };
30
+
21
31
  const headerTitle = header.querySelector("h1") || header;
22
32
  let dragHandle = headerTitle.querySelector(".header-drag-handle");
23
33
  if (!dragHandle) {
@@ -45,6 +55,8 @@ document.addEventListener("DOMContentLoaded", () => {
45
55
  transitionHandler: null,
46
56
  };
47
57
 
58
+ dispatchHeaderState(state.minimized, { phase: "init" });
59
+
48
60
  const MIN_MARGIN = 8;
49
61
 
50
62
  const clampPosition = (left, top) => {
@@ -139,6 +151,8 @@ document.addEventListener("DOMContentLoaded", () => {
139
151
  header.classList.add("minimized");
140
152
  applyPosition(targetLeft, targetTop);
141
153
 
154
+ dispatchHeaderState(true, { phase: "start" });
155
+
142
156
  const lastRect = header.getBoundingClientRect();
143
157
  const deltaX = firstRect.left - lastRect.left;
144
158
  const deltaY = firstRect.top - lastRect.top;
@@ -164,6 +178,7 @@ document.addEventListener("DOMContentLoaded", () => {
164
178
  state.transitionHandler = null;
165
179
  stopTransition();
166
180
  state.minimized = true;
181
+ dispatchHeaderState(true, { phase: "settled" });
167
182
  };
168
183
 
169
184
  header.addEventListener("transitionend", state.transitionHandler);
@@ -189,6 +204,8 @@ document.addEventListener("DOMContentLoaded", () => {
189
204
  header.style.right = state.originalPosition.right;
190
205
  header.style.bottom = state.originalPosition.bottom;
191
206
 
207
+ dispatchHeaderState(false, { phase: "start" });
208
+
192
209
  const lastRect = header.getBoundingClientRect();
193
210
  const deltaX = firstRect.left - lastRect.left;
194
211
  const deltaY = firstRect.top - lastRect.top;
@@ -213,6 +230,7 @@ document.addEventListener("DOMContentLoaded", () => {
213
230
  state.hasCustomPosition = false;
214
231
  state.lastLeft = parseFloat(header.style.left) || 0;
215
232
  state.lastTop = parseFloat(header.style.top) || 0;
233
+ dispatchHeaderState(false, { phase: "settled" });
216
234
  };
217
235
 
218
236
  header.addEventListener("transitionend", state.transitionHandler);
@@ -180,6 +180,20 @@ body.dark .appcanvas_filler {
180
180
  --sidebar-tab-outline: var(--pinokio-sidebar-tabbar-border);
181
181
  }
182
182
 
183
+ .appcanvas > aside.appcanvas-aside-animating {
184
+ will-change: height, opacity;
185
+ }
186
+
187
+ .appcanvas > aside.appcanvas-aside-collapsed {
188
+ height: 0 !important;
189
+ opacity: 0;
190
+ pointer-events: none;
191
+ padding-top: 0;
192
+ padding-bottom: 0;
193
+ margin-top: 0;
194
+ margin-bottom: 0;
195
+ }
196
+
183
197
  /*
184
198
  body.dark .appcanvas > aside {
185
199
  background: var(--pinokio-sidebar-tabbar-bg);
@@ -2829,7 +2843,7 @@ body.dark {
2829
2843
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
2830
2844
  </a>
2831
2845
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
2832
- <div><i class="fa-solid fa-window-maximize"></i></div>
2846
+ <div><i class="fa-solid fa-expand"></i></div>
2833
2847
  </button>
2834
2848
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
2835
2849
  <div><i class="fa-solid fa-plus"></i></div>
@@ -8554,6 +8568,153 @@ body.dark {
8554
8568
 
8555
8569
  </script>
8556
8570
  <% } %>
8571
+ <script>
8572
+ (() => {
8573
+ const aside = document.querySelector(".appcanvas > aside")
8574
+ if (!aside) {
8575
+ return
8576
+ }
8577
+
8578
+ const collapsedClass = "appcanvas-aside-collapsed"
8579
+ const animatingClass = "appcanvas-aside-animating"
8580
+ const collapseDuration = 420
8581
+ const collapseEasing = "cubic-bezier(0.22, 1, 0.36, 1)"
8582
+ const expandEasing = "cubic-bezier(0.18, 0.85, 0.4, 1)"
8583
+
8584
+ let transitionHandler = null
8585
+ let queuedFrame = null
8586
+
8587
+ const clearAnimation = () => {
8588
+ if (transitionHandler) {
8589
+ aside.removeEventListener("transitionend", transitionHandler)
8590
+ transitionHandler = null
8591
+ }
8592
+ if (queuedFrame !== null) {
8593
+ cancelAnimationFrame(queuedFrame)
8594
+ queuedFrame = null
8595
+ }
8596
+ aside.classList.remove(animatingClass)
8597
+ aside.style.transition = ""
8598
+ aside.style.height = ""
8599
+ aside.style.opacity = ""
8600
+ }
8601
+
8602
+ const finish = (minimized) => {
8603
+ aside.classList.toggle(collapsedClass, minimized)
8604
+ aside.classList.remove(animatingClass)
8605
+ aside.style.transition = ""
8606
+ aside.style.height = ""
8607
+ aside.style.opacity = ""
8608
+ aside.dataset.asideState = minimized ? "collapsed" : "expanded"
8609
+ }
8610
+
8611
+ const collapse = (immediate) => {
8612
+ if (aside.dataset.asideState === "collapsed" && !immediate) {
8613
+ return
8614
+ }
8615
+ clearAnimation()
8616
+ if (immediate) {
8617
+ finish(true)
8618
+ return
8619
+ }
8620
+ const startHeight = aside.getBoundingClientRect().height
8621
+ if (startHeight <= 0.5) {
8622
+ finish(true)
8623
+ return
8624
+ }
8625
+
8626
+ aside.classList.add(animatingClass)
8627
+ aside.style.height = `${startHeight}px`
8628
+ aside.style.opacity = getComputedStyle(aside).opacity || "1"
8629
+ aside.dataset.asideState = "animating"
8630
+
8631
+ queuedFrame = requestAnimationFrame(() => {
8632
+ queuedFrame = null
8633
+ aside.style.transition = `height ${collapseDuration}ms ${collapseEasing}, opacity ${collapseDuration - 120}ms ease`
8634
+ aside.style.height = "0px"
8635
+ aside.style.opacity = "0"
8636
+ })
8637
+
8638
+ transitionHandler = (event) => {
8639
+ if (event.target !== aside || event.propertyName !== "height") {
8640
+ return
8641
+ }
8642
+ aside.removeEventListener("transitionend", transitionHandler)
8643
+ transitionHandler = null
8644
+ finish(true)
8645
+ }
8646
+ aside.addEventListener("transitionend", transitionHandler)
8647
+ }
8648
+
8649
+ const expand = (immediate) => {
8650
+ if (aside.dataset.asideState === "expanded" && !immediate) {
8651
+ return
8652
+ }
8653
+ clearAnimation()
8654
+ if (immediate) {
8655
+ finish(false)
8656
+ return
8657
+ }
8658
+
8659
+ aside.classList.remove(collapsedClass)
8660
+ const targetHeight = aside.scrollHeight
8661
+ aside.classList.add(animatingClass)
8662
+ aside.style.height = "0px"
8663
+ aside.style.opacity = "0"
8664
+ aside.dataset.asideState = "animating"
8665
+
8666
+ aside.offsetHeight
8667
+
8668
+ queuedFrame = requestAnimationFrame(() => {
8669
+ queuedFrame = null
8670
+ aside.style.transition = `height ${collapseDuration}ms ${expandEasing}, opacity ${collapseDuration - 140}ms ease`
8671
+ aside.style.height = `${targetHeight}px`
8672
+ aside.style.opacity = ""
8673
+ })
8674
+
8675
+ transitionHandler = (event) => {
8676
+ if (event.target !== aside || event.propertyName !== "height") {
8677
+ return
8678
+ }
8679
+ aside.removeEventListener("transitionend", transitionHandler)
8680
+ transitionHandler = null
8681
+ finish(false)
8682
+ }
8683
+ aside.addEventListener("transitionend", transitionHandler)
8684
+ }
8685
+
8686
+ const setAside = (minimized, immediate) => {
8687
+ if (minimized) {
8688
+ collapse(immediate)
8689
+ } else {
8690
+ expand(immediate)
8691
+ }
8692
+ }
8693
+
8694
+ const header = document.querySelector("header.navheader")
8695
+ const initialMinimized = !!(header && header.classList.contains("minimized"))
8696
+ setAside(initialMinimized, true)
8697
+
8698
+ document.addEventListener("pinokio:header-state", (event) => {
8699
+ if (!event || !event.detail) {
8700
+ return
8701
+ }
8702
+ const { minimized, phase } = event.detail
8703
+ if (phase === "init") {
8704
+ setAside(!!minimized, true)
8705
+ return
8706
+ }
8707
+ if (phase === "start") {
8708
+ setAside(!!minimized, false)
8709
+ return
8710
+ }
8711
+ if (phase === "settled") {
8712
+ clearAnimation()
8713
+ finish(!!minimized)
8714
+ }
8715
+ })
8716
+ })()
8717
+ </script>
8557
8718
  <script src="/tab-idle-notifier.js"></script>
8558
8719
  </body>
8559
8720
  </html>
@@ -206,7 +206,7 @@ pre {
206
206
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
207
207
  </a>
208
208
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
209
- <div><i class="fa-solid fa-window-maximize"></i></div>
209
+ <div><i class="fa-solid fa-expand"></i></div>
210
210
  </button>
211
211
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
212
212
  <div><i class="fa-solid fa-plus"></i></div>
@@ -831,7 +831,7 @@ document.addEventListener('DOMContentLoaded', function() {
831
831
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
832
832
  </a>
833
833
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
834
- <div><i class="fa-solid fa-window-maximize"></i></div>
834
+ <div><i class="fa-solid fa-expand"></i></div>
835
835
  </button>
836
836
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
837
837
  <div><i class="fa-solid fa-plus"></i></div>
@@ -345,7 +345,7 @@ iframe {
345
345
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
346
346
  </a>
347
347
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
348
- <div><i class="fa-solid fa-window-maximize"></i></div>
348
+ <div><i class="fa-solid fa-expand"></i></div>
349
349
  </button>
350
350
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
351
351
  <div><i class="fa-solid fa-plus"></i></div>
@@ -134,7 +134,7 @@ body.frozen {
134
134
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
135
135
  </a>
136
136
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
137
- <div><i class="fa-solid fa-window-maximize"></i></div>
137
+ <div><i class="fa-solid fa-expand"></i></div>
138
138
  </button>
139
139
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
140
140
  <div><i class="fa-solid fa-plus"></i></div>
@@ -135,7 +135,7 @@ body main iframe {
135
135
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
136
136
  </a>
137
137
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
138
- <div><i class="fa-solid fa-window-maximize"></i></div>
138
+ <div><i class="fa-solid fa-expand"></i></div>
139
139
  </button>
140
140
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
141
141
  <div><i class="fa-solid fa-plus"></i></div>
@@ -168,7 +168,7 @@ document.addEventListener("DOMContentLoaded", async () => {
168
168
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
169
169
  </a>
170
170
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
171
- <div><i class="fa-solid fa-window-maximize"></i></div>
171
+ <div><i class="fa-solid fa-expand"></i></div>
172
172
  </button>
173
173
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
174
174
  <div><i class="fa-solid fa-plus"></i></div>
@@ -64,7 +64,7 @@ main iframe {
64
64
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
65
65
  </a>
66
66
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
67
- <div><i class="fa-solid fa-window-maximize"></i></div>
67
+ <div><i class="fa-solid fa-expand"></i></div>
68
68
  </button>
69
69
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
70
70
  <div><i class="fa-solid fa-plus"></i></div>
@@ -247,7 +247,7 @@ ol {
247
247
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
248
248
  </a>
249
249
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
250
- <div><i class="fa-solid fa-window-maximize"></i></div>
250
+ <div><i class="fa-solid fa-expand"></i></div>
251
251
  </button>
252
252
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
253
253
  <div><i class="fa-solid fa-plus"></i></div>
@@ -268,7 +268,7 @@ body.dark .item .tile .badge {
268
268
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
269
269
  </a>
270
270
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
271
- <div><i class="fa-solid fa-window-maximize"></i></div>
271
+ <div><i class="fa-solid fa-expand"></i></div>
272
272
  </button>
273
273
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
274
274
  <div><i class="fa-solid fa-plus"></i></div>
@@ -436,7 +436,7 @@ body.dark aside .current.selected {
436
436
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
437
437
  </a>
438
438
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
439
- <div><i class="fa-solid fa-window-maximize"></i></div>
439
+ <div><i class="fa-solid fa-expand"></i></div>
440
440
  </button>
441
441
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
442
442
  <div><i class="fa-solid fa-plus"></i></div>
@@ -273,7 +273,7 @@ body.dark .open-menu, body.dark .browse {
273
273
  <a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><div><i class="fa-solid fa-download"></i></div><div>Download logs</div></a>
274
274
  <a class='btn2' href="/home?mode=settings"><div><i class="fa-solid fa-gear"></i></div><div>Settings</div></a>
275
275
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
276
- <div><i class="fa-solid fa-window-maximize"></i></div>
276
+ <div><i class="fa-solid fa-expand"></i></div>
277
277
  </button>
278
278
  <button id='new-window' title='open a new window' class='btn2' data-agent="<%=agent%>"><div><i class="fa-solid fa-plus"></i></div><div>Window</div></button>
279
279
  </div>
@@ -1533,7 +1533,7 @@ body.dark .ace-editor {
1533
1533
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
1534
1534
  </a>
1535
1535
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
1536
- <div><i class="fa-solid fa-window-maximize"></i></div>
1536
+ <div><i class="fa-solid fa-expand"></i></div>
1537
1537
  </button>
1538
1538
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
1539
1539
  <div><i class="fa-solid fa-plus"></i></div>
@@ -768,7 +768,7 @@ body.dark .appcanvas {
768
768
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
769
769
  </a>
770
770
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
771
- <div><i class="fa-solid fa-window-maximize"></i></div>
771
+ <div><i class="fa-solid fa-expand"></i></div>
772
772
  </button>
773
773
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
774
774
  <div><i class="fa-solid fa-plus"></i></div>
@@ -554,7 +554,7 @@ document.addEventListener('DOMContentLoaded', function() {
554
554
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
555
555
  </a>
556
556
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
557
- <div><i class="fa-solid fa-window-maximize"></i></div>
557
+ <div><i class="fa-solid fa-expand"></i></div>
558
558
  </button>
559
559
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
560
560
  <div><i class="fa-solid fa-plus"></i></div>
@@ -1067,7 +1067,7 @@ document.addEventListener('DOMContentLoaded', function() {
1067
1067
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
1068
1068
  </a>
1069
1069
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
1070
- <div><i class="fa-solid fa-window-maximize"></i></div>
1070
+ <div><i class="fa-solid fa-expand"></i></div>
1071
1071
  </button>
1072
1072
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
1073
1073
  <div><i class="fa-solid fa-plus"></i></div>
@@ -429,7 +429,7 @@ table h3 {
429
429
  <a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><div><i class="fa-solid fa-download"></i></div><div>Download logs</div></a>
430
430
  <a class='btn2' href="/home?mode=settings"><div><i class="fa-solid fa-gear"></i></div><div>Settings</div></a>
431
431
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
432
- <div><i class="fa-solid fa-window-maximize"></i></div>
432
+ <div><i class="fa-solid fa-expand"></i></div>
433
433
  </button>
434
434
  <button id='new-window' title='open a new window' class='btn2' data-agent="<%=agent%>"><div><i class="fa-solid fa-plus"></i></div><div>Window</div></button>
435
435
  </div>
@@ -415,7 +415,7 @@ input:checked + .slider:before {
415
415
  <a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><div><i class="fa-solid fa-download"></i></div><div>Download logs</div></a>
416
416
  <a class='btn2' href="/home?mode=settings"><div><i class="fa-solid fa-gear"></i></div><div>Settings</div></a>
417
417
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
418
- <div><i class="fa-solid fa-window-maximize"></i></div>
418
+ <div><i class="fa-solid fa-expand"></i></div>
419
419
  </button>
420
420
  <button id='new-window' title='open a new window' class='btn2' data-agent="<%=agent%>"><div><i class="fa-solid fa-plus"></i></div><div>Window</div></button>
421
421
  </div>
@@ -1015,7 +1015,7 @@ body.dark .appcanvas {
1015
1015
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
1016
1016
  </a>
1017
1017
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
1018
- <div><i class="fa-solid fa-window-maximize"></i></div>
1018
+ <div><i class="fa-solid fa-expand"></i></div>
1019
1019
  </button>
1020
1020
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
1021
1021
  <div><i class="fa-solid fa-plus"></i></div>
@@ -955,7 +955,7 @@ body.dark .top-menu .btn2.selected {
955
955
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
956
956
  </a>
957
957
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
958
- <div><i class="fa-solid fa-window-maximize"></i></div>
958
+ <div><i class="fa-solid fa-expand"></i></div>
959
959
  </button>
960
960
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
961
961
  <div><i class="fa-solid fa-plus"></i></div>
@@ -727,7 +727,7 @@ document.addEventListener('DOMContentLoaded', function() {
727
727
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
728
728
  </a>
729
729
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
730
- <div><i class="fa-solid fa-window-maximize"></i></div>
730
+ <div><i class="fa-solid fa-expand"></i></div>
731
731
  </button>
732
732
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
733
733
  <div><i class="fa-solid fa-plus"></i></div>
@@ -399,7 +399,7 @@ document.addEventListener('DOMContentLoaded', function() {
399
399
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
400
400
  </a>
401
401
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
402
- <div><i class="fa-solid fa-window-maximize"></i></div>
402
+ <div><i class="fa-solid fa-expand"></i></div>
403
403
  </button>
404
404
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
405
405
  <div><i class="fa-solid fa-plus"></i></div>
@@ -145,7 +145,7 @@ body {
145
145
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
146
146
  </a>
147
147
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
148
- <div><i class="fa-solid fa-window-maximize"></i></div>
148
+ <div><i class="fa-solid fa-expand"></i></div>
149
149
  </button>
150
150
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
151
151
  <div><i class="fa-solid fa-plus"></i></div>
@@ -161,7 +161,7 @@ body.dark .card {
161
161
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
162
162
  </a>
163
163
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
164
- <div><i class="fa-solid fa-window-maximize"></i></div>
164
+ <div><i class="fa-solid fa-expand"></i></div>
165
165
  </button>
166
166
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
167
167
  <div><i class="fa-solid fa-plus"></i></div>
@@ -382,7 +382,7 @@ body.dark .plugin-option:hover {
382
382
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
383
383
  </a>
384
384
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
385
- <div><i class="fa-solid fa-window-maximize"></i></div>
385
+ <div><i class="fa-solid fa-expand"></i></div>
386
386
  </button>
387
387
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
388
388
  <div><i class="fa-solid fa-plus"></i></div>
@@ -1117,7 +1117,7 @@ document.addEventListener('DOMContentLoaded', function() {
1117
1117
  <div><i class="fa-solid fa-table-columns fa-rotate-270"></i></div>
1118
1118
  </a>
1119
1119
  <button class='btn2' id='minimize-header' data-tippy-content="minimize header" title='minimize header'>
1120
- <div><i class="fa-solid fa-window-maximize"></i></div>
1120
+ <div><i class="fa-solid fa-expand"></i></div>
1121
1121
  </button>
1122
1122
  <button class='btn2' id='new-window' data-tippy-content="open a new window" title='open a new window' data-agent="<%=agent%>">
1123
1123
  <div><i class="fa-solid fa-plus"></i></div>