@openspecui/web 3.5.0 → 3.5.1

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.
Files changed (70) hide show
  1. package/dist/assets/CanvasRenderer-4LnzB23C.js +1 -0
  2. package/dist/assets/WebGLRenderer-C7T0ni7u.js +1 -0
  3. package/dist/assets/WebGPURenderer-Bfz3G3Ra.js +1 -0
  4. package/dist/assets/browserAll-D1GPsRxQ.js +1 -0
  5. package/dist/assets/{dist-BmXzljTn.js → dist-BPxWbdzo.js} +1 -1
  6. package/dist/assets/{dist-CFN2ObFF.js → dist-BbID--pe.js} +1 -1
  7. package/dist/assets/dist-BbOkQMo2.js +1 -0
  8. package/dist/assets/{dist-8NRfes3A.js → dist-BdfEVdSD.js} +1 -1
  9. package/dist/assets/{dist-BHok5tKv.js → dist-Bhy8KkMf.js} +1 -1
  10. package/dist/assets/{dist-BJoJLpoD.js → dist-Bi2cQNT3.js} +1 -1
  11. package/dist/assets/{dist-Bt9L_Nqg.js → dist-C5q6KJx5.js} +1 -1
  12. package/dist/assets/dist-Cndawm3q.js +1 -0
  13. package/dist/assets/{dist-BsbQTBj9.js → dist-CsiaRd98.js} +1 -1
  14. package/dist/assets/{dist-CkfQmrP4.js → dist-CwQDZ7pq.js} +1 -1
  15. package/dist/assets/{dist-C93bxB4D.js → dist-DcDz_e4d.js} +1 -1
  16. package/dist/assets/dist-tU6RymPC.js +1 -0
  17. package/dist/assets/{ghostty-web-tgKhUe7Z.js → ghostty-web-DsRWwk5O.js} +1 -1
  18. package/dist/assets/index-Cu3RSC5X.js +1559 -0
  19. package/dist/assets/index-DYcfk_P1.css +1 -0
  20. package/dist/assets/{init-nrsssPRF.js → init-CHYX1BvT.js} +1 -1
  21. package/dist/assets/trpc-BwqMLlvD.js +1 -0
  22. package/dist/assets/webworkerAll-DTZDj7Ch.js +1 -0
  23. package/dist/index.html +2 -2
  24. package/dist-ssg/client/.vite/ssr-manifest.json +18 -15
  25. package/dist-ssg/client/assets/CanvasRenderer-BRusEeYW.js +1 -0
  26. package/dist-ssg/client/assets/WebGLRenderer-CYFxsByj.js +1 -0
  27. package/dist-ssg/client/assets/WebGPURenderer-BC6Mc9fr.js +1 -0
  28. package/dist-ssg/client/assets/browserAll-DwGvMVOE.js +1 -0
  29. package/dist-ssg/client/assets/dist-B-JL-RdI.js +1 -0
  30. package/dist-ssg/client/assets/{dist-DNEbnFKc.js → dist-B0OSa9m8.js} +1 -1
  31. package/dist-ssg/client/assets/{dist-uuReRNC-.js → dist-B7BRp2AD.js} +1 -1
  32. package/dist-ssg/client/assets/{dist-C8kk-UJI.js → dist-BBxB0BsU.js} +1 -1
  33. package/dist-ssg/client/assets/{dist-C0YgE3lp.js → dist-BcmGqqhm.js} +1 -1
  34. package/dist-ssg/client/assets/{dist-BfzZD9UO.js → dist-C-b45p6-.js} +1 -1
  35. package/dist-ssg/client/assets/{dist-CW2olo-9.js → dist-CEnArSkR.js} +1 -1
  36. package/dist-ssg/client/assets/{dist-v4ayJ_bz.js → dist-Cc-hzu-d.js} +1 -1
  37. package/dist-ssg/client/assets/{dist-BZJfR7eh.js → dist-CnuoVdCe.js} +1 -1
  38. package/dist-ssg/client/assets/{dist-DtxQ5voT.js → dist-D5h2ifzs.js} +1 -1
  39. package/dist-ssg/client/assets/dist-D6Kcyhv0.js +1 -0
  40. package/dist-ssg/client/assets/dist-iGOlT260.js +1 -0
  41. package/dist-ssg/client/assets/{ghostty-web-BbLQ67li.js → ghostty-web-Cuh3nJnk.js} +1 -1
  42. package/dist-ssg/client/assets/index-D3bHMPOK.css +1 -0
  43. package/dist-ssg/client/assets/{index.ssg-DXy3R2iH.js → index.ssg-C4AALSK6.js} +89 -89
  44. package/dist-ssg/client/assets/{init-_JOkHWu-.js → init-DSQMJRar.js} +1 -1
  45. package/dist-ssg/client/assets/trpc-38H3yLz8.js +1 -0
  46. package/dist-ssg/client/assets/webworkerAll-C6L_ZFEk.js +1 -0
  47. package/dist-ssg/client/index.ssg.html +2 -2
  48. package/dist-ssg/server/entry-server.js +75 -22
  49. package/package.json +1 -1
  50. package/dist/assets/CanvasRenderer-CmnvR8Gr.js +0 -1
  51. package/dist/assets/WebGLRenderer-5eXMpF1z.js +0 -1
  52. package/dist/assets/WebGPURenderer-Vea1ovaN.js +0 -1
  53. package/dist/assets/browserAll-CvzI3xL_.js +0 -1
  54. package/dist/assets/dist-Bijj14CE.js +0 -1
  55. package/dist/assets/dist-CR9rQI_B.js +0 -1
  56. package/dist/assets/dist-CTEkXR9h.js +0 -1
  57. package/dist/assets/index-BbZP3-SK.js +0 -1559
  58. package/dist/assets/index-CiTq1NTV.css +0 -1
  59. package/dist/assets/trpc-B7EKcsQU.js +0 -1
  60. package/dist/assets/webworkerAll-g1RF5EzF.js +0 -1
  61. package/dist-ssg/client/assets/CanvasRenderer-fkryBDsc.js +0 -1
  62. package/dist-ssg/client/assets/WebGLRenderer-9a3extRo.js +0 -1
  63. package/dist-ssg/client/assets/WebGPURenderer-BvVd3SI-.js +0 -1
  64. package/dist-ssg/client/assets/browserAll-C9rt7SfY.js +0 -1
  65. package/dist-ssg/client/assets/dist-CE0-ZIMY.js +0 -1
  66. package/dist-ssg/client/assets/dist-CPrch2pS.js +0 -1
  67. package/dist-ssg/client/assets/dist-iqZn-PJ-.js +0 -1
  68. package/dist-ssg/client/assets/index-e7T9ImLQ.css +0 -1
  69. package/dist-ssg/client/assets/trpc-DfCk117g.js +0 -1
  70. package/dist-ssg/client/assets/webworkerAll-xF0Rbwq0.js +0 -1
@@ -1 +1 @@
1
- import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-DXy3R2iH.js";e.add(n),e.add(t);
1
+ import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-C4AALSK6.js";e.add(n),e.add(t);
@@ -0,0 +1 @@
1
+ import{F as e}from"./index.ssg-C4AALSK6.js";export{e as trpcClient};
@@ -0,0 +1 @@
1
+ import"./Geometry-DYOOLchf.js";import"./index.ssg-C4AALSK6.js";import"./init-DSQMJRar.js";
@@ -35,7 +35,7 @@
35
35
  document.head.append(preconnectApi, preconnectStatic, stylesheet)
36
36
  })()
37
37
  </script>
38
- <script type="module" crossorigin src="/assets/index.ssg-DXy3R2iH.js"></script>
38
+ <script type="module" crossorigin src="/assets/index.ssg-C4AALSK6.js"></script>
39
39
  <link rel="modulepreload" crossorigin href="/assets/chunk-DECur_0Z.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/dist-UN0VvTJo.js">
41
41
  <link rel="modulepreload" crossorigin href="/assets/dist-DK_X22KS.js">
@@ -45,7 +45,7 @@
45
45
  <link rel="modulepreload" crossorigin href="/assets/getTextureBatchBindGroup-BZ3pD2UV.js">
46
46
  <link rel="modulepreload" crossorigin href="/assets/BufferResource-4Jl_6qej.js">
47
47
  <link rel="modulepreload" crossorigin href="/assets/ImageSource-_DLFcjTj.js">
48
- <link rel="stylesheet" crossorigin href="/assets/index-e7T9ImLQ.css">
48
+ <link rel="stylesheet" crossorigin href="/assets/index-D3bHMPOK.css">
49
49
  </head>
50
50
  <body>
51
51
  <div id="root"><!--app-html--></div>
@@ -92529,33 +92529,89 @@ var InputPanelAddon = class InputPanelAddon {
92529
92529
  }
92530
92530
  };
92531
92531
  //#endregion
92532
- //#region src/lib/audio-cue-engine.ts
92532
+ //#region src/lib/user-gesture-audio-context.ts
92533
+ var audioContext = null;
92534
+ var audioContextPromise = null;
92535
+ var userGesturePromise = null;
92536
+ var resolveUserGesturePromise = null;
92537
+ var userGestureResolved = false;
92538
+ var userGestureListenersActive = false;
92533
92539
  function getAudioContextConstructor() {
92534
92540
  if (typeof window === "undefined") return null;
92535
92541
  return window.AudioContext ?? window.webkitAudioContext ?? null;
92536
92542
  }
92543
+ function hasUserActivation() {
92544
+ if (userGestureResolved) return true;
92545
+ if (typeof navigator === "undefined") return false;
92546
+ return navigator.userActivation?.hasBeenActive === true || navigator.userActivation?.isActive === true;
92547
+ }
92548
+ function removeUserGestureListeners() {
92549
+ if (typeof window === "undefined" || !userGestureListenersActive) return;
92550
+ window.removeEventListener("pointerdown", resolveUserGesture, true);
92551
+ window.removeEventListener("keydown", resolveUserGesture, true);
92552
+ userGestureListenersActive = false;
92553
+ }
92554
+ function resolveUserGesture() {
92555
+ userGestureResolved = true;
92556
+ removeUserGestureListeners();
92557
+ resolveUserGesturePromise?.();
92558
+ resolveUserGesturePromise = null;
92559
+ userGesturePromise = null;
92560
+ }
92561
+ function addUserGestureListeners() {
92562
+ if (typeof window === "undefined" || userGestureListenersActive || hasUserActivation()) return;
92563
+ window.addEventListener("pointerdown", resolveUserGesture, {
92564
+ capture: true,
92565
+ once: true,
92566
+ passive: true
92567
+ });
92568
+ window.addEventListener("keydown", resolveUserGesture, {
92569
+ capture: true,
92570
+ once: true
92571
+ });
92572
+ userGestureListenersActive = true;
92573
+ }
92574
+ function prepareAudioContextAfterUserGesture() {
92575
+ addUserGestureListeners();
92576
+ }
92577
+ function waitForUserGesture() {
92578
+ if (typeof window === "undefined" || hasUserActivation()) return Promise.resolve();
92579
+ if (userGesturePromise) return userGesturePromise;
92580
+ userGesturePromise = new Promise((resolve) => {
92581
+ resolveUserGesturePromise = resolve;
92582
+ addUserGestureListeners();
92583
+ });
92584
+ return userGesturePromise;
92585
+ }
92586
+ async function createAudioContextAfterUserGesture() {
92587
+ if (audioContext) return audioContext;
92588
+ if (audioContextPromise) return audioContextPromise;
92589
+ if (!getAudioContextConstructor()) return null;
92590
+ audioContextPromise = waitForUserGesture().then(async () => {
92591
+ const AudioContextCtor = getAudioContextConstructor();
92592
+ if (!AudioContextCtor) return null;
92593
+ const context = audioContext ?? new AudioContextCtor();
92594
+ audioContext = context;
92595
+ if (context.state === "suspended") await context.resume();
92596
+ return context;
92597
+ }).finally(() => {
92598
+ audioContextPromise = null;
92599
+ });
92600
+ return audioContextPromise;
92601
+ }
92602
+ //#endregion
92603
+ //#region src/lib/audio-cue-engine.ts
92537
92604
  var AudioCueEngine = class {
92538
92605
  fallbackSound;
92539
92606
  unlocked = false;
92540
92607
  unlockPromise = null;
92541
- audioContext = null;
92542
92608
  silentAudio = null;
92543
92609
  activeAudios = /* @__PURE__ */ new Set();
92544
92610
  constructor(fallback) {
92545
92611
  this.fallbackSound = fallback === "bell" ? DEFAULT_BELL_SOUND_ID : DEFAULT_NOTIFICATION_SOUND_ID;
92546
92612
  }
92547
92613
  init() {
92548
- if (typeof window === "undefined") return;
92549
- const unlock = () => {
92550
- this.unlock();
92551
- window.removeEventListener("pointerdown", unlock);
92552
- window.removeEventListener("keydown", unlock);
92553
- };
92554
- window.addEventListener("pointerdown", unlock, {
92555
- once: true,
92556
- passive: true
92557
- });
92558
- window.addEventListener("keydown", unlock, { once: true });
92614
+ prepareAudioContextAfterUserGesture();
92559
92615
  }
92560
92616
  async unlock() {
92561
92617
  if (this.unlocked) return;
@@ -92571,17 +92627,13 @@ var AudioCueEngine = class {
92571
92627
  await this.playAudio(sound, volume);
92572
92628
  }
92573
92629
  async unlockAudioContext() {
92574
- const AudioContextCtor = getAudioContextConstructor();
92575
- if (!AudioContextCtor) {
92630
+ if (!await createAudioContextAfterUserGesture()) {
92576
92631
  this.unlocked = true;
92577
92632
  return;
92578
92633
  }
92579
- const context = this.audioContext ?? new AudioContextCtor();
92580
- this.audioContext = context;
92581
92634
  this.silentAudio ??= new Audio("data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAESsAACJWAAACABAAZGF0YQAAAAA=");
92582
92635
  this.silentAudio.volume = 0;
92583
92636
  await this.silentAudio.play().catch(() => {});
92584
- if (context.state === "suspended") await context.resume();
92585
92637
  this.unlocked = true;
92586
92638
  }
92587
92639
  async playAudio(sound, volume) {
@@ -93584,6 +93636,7 @@ var TerminalController = class {
93584
93636
  }
93585
93637
  this.flushPendingOutput(instance);
93586
93638
  this.applyGhosttyBackground(instance, container);
93639
+ instance.inputPanelAddon.attachListeners();
93587
93640
  }
93588
93641
  instance.mountedContainer = container;
93589
93642
  requestAnimationFrame(() => {
@@ -94478,11 +94531,11 @@ function MobileHeader() {
94478
94531
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
94479
94532
  type: "button",
94480
94533
  onClick: () => vtNavController.activatePop("/search"),
94481
- className: "hover:bg-muted border-primary rounded-md border p-1.5",
94534
+ className: "hover:bg-muted border-primary h-7.5 w-7.5 inline-flex items-center justify-center rounded-md border",
94482
94535
  "aria-label": "Open search",
94483
94536
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Search, { className: "h-4 w-4" })
94484
94537
  }),
94485
- !isStatic && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NotificationEntryButton, { className: "h-8 w-8" }),
94538
+ !isStatic && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NotificationEntryButton, { className: "border-primary hover:bg-muted h-7.5 w-7.5" }),
94486
94539
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatusIndicator, { compact: true })
94487
94540
  ]
94488
94541
  })]
@@ -126763,7 +126816,7 @@ var tabsStyleText = (id) => {
126763
126816
  border: 0;
126764
126817
  font-size: 1.2rem;
126765
126818
  background: none;
126766
- z-index: 2;
126819
+ z-index: 100;
126767
126820
  color: currentColor;
126768
126821
  }
126769
126822
 
@@ -149453,7 +149506,7 @@ function Select({ value, options = [], groups, onValueChange, ariaLabel, id, nam
149453
149506
  container: portalContainer ?? void 0,
149454
149507
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPositioner, {
149455
149508
  sideOffset,
149456
- className: cn$1("z-50 select-none outline-none", positionerClassName),
149509
+ className: cn$1("z-50 select-none outline-none data-[anchor-hidden]:opacity-0", positionerClassName),
149457
149510
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPopup, {
149458
149511
  className: cn$1("bg-card text-foreground border-border min-w-(--anchor-width) max-w-[min(24rem,calc(100vw-2rem))] rounded-md border p-1 shadow-lg", "origin-(--transform-origin) transition-[transform,opacity] duration-150", "data-[ending-style]:translate-y-0.5 data-[ending-style]:opacity-0", "data-[starting-style]:translate-y-0.5 data-[starting-style]:opacity-0", popupClassName),
149459
149512
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectList, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openspecui/web",
3
- "version": "3.5.0",
3
+ "version": "3.5.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "openspecui-ssg": "./dist-ssg/ssg-cli.mjs"
@@ -1 +0,0 @@
1
- import"./Geometry-C-MCm9EO.js";import{w as e}from"./index-BbZP3-SK.js";export{e as CanvasRenderer};
@@ -1 +0,0 @@
1
- import"./Geometry-C-MCm9EO.js";import{C as e}from"./index-BbZP3-SK.js";export{e as WebGLRenderer};
@@ -1 +0,0 @@
1
- import"./Geometry-C-MCm9EO.js";import{S as e}from"./index-BbZP3-SK.js";export{e as WebGPURenderer};
@@ -1 +0,0 @@
1
- import{it as e,x as t}from"./Geometry-C-MCm9EO.js";import{A as n,D as r,O as i,k as a}from"./index-BbZP3-SK.js";import"./init-nrsssPRF.js";e.add(n),e.mixin(t,a),e.add(i),e.mixin(t,r);
@@ -1 +0,0 @@
1
- import"./dist-UN0VvTJo.js";import{b as e}from"./index-BbZP3-SK.js";export{e as json};
@@ -1 +0,0 @@
1
- import"./dist-UN0VvTJo.js";import{g as e}from"./index-BbZP3-SK.js";export{e as css};
@@ -1 +0,0 @@
1
- import"./dist-UN0VvTJo.js";import{t as e}from"./index-BbZP3-SK.js";export{e as yaml};