@luxonis/visualizer-protobuf 2.18.0 → 2.18.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 (55) hide show
  1. package/dist/{deserialization.worker-DsG76nP8.js → deserialization.worker-C9dXbAlS.js} +29 -198
  2. package/dist/{index-BFMXTxLw.js → index-B-Q9SHDe.js} +2 -2
  3. package/dist/{index-DdKOhCXT.js → index-BRTt63KE.js} +2 -2
  4. package/dist/{index-Ci0X5xT3.js → index-BY93INKj.js} +2 -2
  5. package/dist/{index-BWittpbR.js → index-B_wE-TAZ.js} +2 -2
  6. package/dist/{index-BomoqOv5.js → index-Bw0wb_7x.js} +2 -2
  7. package/dist/{index-BT9CBn7l.js → index-C1DjWsph.js} +3 -3
  8. package/dist/{index-4PQpGzhb.js → index-CWyWOStx.js} +2 -2
  9. package/dist/{index-ByIsztCr.js → index-CZ83vGC_.js} +2 -2
  10. package/dist/{index-CrtBH66u.js → index-ClVSD2eR.js} +2 -2
  11. package/dist/{index-CcIi7pJR.js → index-Cn-9uas1.js} +2 -2
  12. package/dist/{index-DUUnuN10.js → index-DD1GBu5y.js} +2 -2
  13. package/dist/{index-CR6XGTJc.js → index-DHft_1uY.js} +61 -30
  14. package/dist/{index-CXThSQcL.js → index-DQCgeYB2.js} +2 -2
  15. package/dist/{index-CJRhjhJ0.js → index-DuOl-R4e.js} +2 -2
  16. package/dist/{index-BeQ1w8aW.js → index-IroDl_1U.js} +2 -2
  17. package/dist/{index-DchGURxJ.js → index-WMQ28NAM.js} +2 -2
  18. package/dist/{index-CcP1Qppv.js → index-hFI4BOol.js} +2 -2
  19. package/dist/{index-CXIVXFcJ.js → index-hGphzS2C.js} +4 -4
  20. package/dist/{index-BQecGu9I.js → index-lMTiVIpT.js} +2 -2
  21. package/dist/index.js +2 -2
  22. package/dist/lib/src/connection/foxglove-connection.d.ts +3 -1
  23. package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
  24. package/dist/lib/src/connection/foxglove-connection.js +11 -2
  25. package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
  26. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +2 -0
  27. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -0
  28. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +164 -0
  29. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -0
  30. package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts +9 -1
  31. package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
  32. package/dist/lib/src/messaging/deserialization/pointcloud/utils.js +13 -7
  33. package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
  34. package/dist/lib/src/messaging/deserialization/video/color.js +1 -1
  35. package/dist/lib/src/messaging/deserialization/video/color.js.map +1 -1
  36. package/dist/lib/src/messaging/deserialization/video/depth.d.ts +14 -3
  37. package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  38. package/dist/lib/src/messaging/deserialization/video/depth.js +16 -157
  39. package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
  40. package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
  41. package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
  42. package/dist/lib/src/messaging/deserialization.worker.d.ts +15 -11
  43. package/dist/lib/src/messaging/deserialization.worker.d.ts.map +1 -1
  44. package/dist/lib/src/messaging/deserialization.worker.js +6 -5
  45. package/dist/lib/src/messaging/deserialization.worker.js.map +1 -1
  46. package/dist/lib/src/messaging/message-handler.d.ts.map +1 -1
  47. package/dist/lib/src/messaging/message-handler.js +2 -1
  48. package/dist/lib/src/messaging/message-handler.js.map +1 -1
  49. package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -1
  50. package/dist/lib/src/utils/poitcloud-sync.js +18 -5
  51. package/dist/lib/src/utils/poitcloud-sync.js.map +1 -1
  52. package/dist/pointcloudFromDepth.worker-CnEm_1b0.js +199 -0
  53. package/dist/{tslib.es6-D98N6tjc.js → tslib.es6-D1dICxG6.js} +15 -8
  54. package/dist/{useMessageReducer-Cg30zaG9.js → useMessageReducer--GRvgQq6.js} +1 -1
  55. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { e as expose } from './comlink-DHMAu6X7.js';
2
- import { t as typescript } from './useMessageReducer-Cg30zaG9.js';
3
- import { e as estimateObjectSize, U as uint8ArrayToUint16Array, d as dist } from './tslib.es6-D98N6tjc.js';
1
+ import { w as wrap, e as expose } from './comlink-DHMAu6X7.js';
2
+ import { t as typescript } from './useMessageReducer--GRvgQq6.js';
3
+ import { e as estimateObjectSize, U as uint8ArrayToUint16Array, d as dist } from './tslib.es6-D1dICxG6.js';
4
4
  import { T as Type, P as PointsAnnotationType, p as protobufsBySchema, a as Profile } from './protobuf-Cr0sn6Ua.js';
5
5
  import 'react';
6
6
  import './_commonjsHelpers-E-ZsRS8r.js';
@@ -729,7 +729,7 @@ function deserializeColorFrame({
729
729
  planeStride
730
730
  } = parseMessage(message);
731
731
  const foxgloveMessage = {
732
- timestamp: receiveTime,
732
+ timestamp: message.tsDevice ?? receiveTime,
733
733
  frame_id: `color-${topic}-frame`,
734
734
  width,
735
735
  height,
@@ -753,214 +753,41 @@ function deserializeColorFrame({
753
753
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
754
754
  /* eslint-disable no-underscore-dangle */
755
755
 
756
- const shader = `
757
- @group(0) @binding(0) var<storage, read> depthBuffer: array<u32>; // Uint16 stored as u32
758
- @group(0) @binding(1) var<storage, read> intrinsicsBuffer: array<f32>;
759
- @group(0) @binding(2) var<storage, read_write> xyzColorBuffer: array<u32>; // Stores XYZ + RGBA
760
-
761
- @compute @workgroup_size(256, 1, 1)
762
- fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
763
- let i = global_id.x;
764
- let fx = intrinsicsBuffer[0];
765
- let fy = intrinsicsBuffer[1];
766
- let cx = intrinsicsBuffer[2];
767
- let cy = intrinsicsBuffer[3];
768
- let scale = intrinsicsBuffer[4];
769
- let width = intrinsicsBuffer[5];
770
- let height = intrinsicsBuffer[6];
771
-
772
- if (i >= u32(width * height)) { return; }
773
-
774
- let u = i % u32(width);
775
- let v = i / u32(width);
776
-
777
- // Convert uint16 depth value to float (stored as u32, so we bitwise mask)
778
- let rawDepth = depthBuffer[i] & 0xFFFFu;
779
- let z = f32(rawDepth) * scale;
780
-
781
- let x = (cx - f32(u)) * z / fx;
782
- let y = (cy - f32(v)) * z / fy;
783
-
784
- let base = i * 4u; // 4 values per point (X, Y, Z, Color)
785
-
786
- // Convert floats to u32 representation for storage
787
- xyzColorBuffer[base] = bitcast<u32>(x);
788
- xyzColorBuffer[base + 1u] = bitcast<u32>(y);
789
- xyzColorBuffer[base + 2u] = bitcast<u32>(z);
790
-
791
- // Example: RGB set based on depth, Alpha is fixed at 255
792
- let r = u32(clamp(z * 255.0, 0.0, 255.0));
793
- let g = u32(clamp(y * 255.0, 0.0, 255.0));
794
- let b = u32(clamp(x * 255.0, 0.0, 255.0));
795
- xyzColorBuffer[base + 3u] = (r & 0xFFu) | ((g & 0xFFu) << 8) | ((b & 0xFFu) << 16) | (255u << 24);
796
- }
797
- `;
798
- async function depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy) {
799
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
800
- if (!navigator.gpu) {
801
- console.warn("WebGPU not supported.");
802
- return depthToPointCloudBuffer(depthArray, width, height, fx, fy, cx, cy);
803
- }
804
- const adapter = await navigator.gpu.requestAdapter();
805
- if (!adapter) {
806
- console.warn("Couldn't request WebGPU adapter.");
807
- return depthToPointCloudBuffer(depthArray, width, height, fx, fy, cx, cy);
808
- }
809
- const device = await adapter.requestDevice();
810
- const queue = device.queue;
811
- const scale = 1.0;
812
- const numPixels = width * height;
813
- const outputSize = numPixels * 16;
814
- const depthData32 = new Uint32Array(depthArray);
815
- const intrinsics = new Float32Array([fx, fy, cx, cy, scale, width, height]);
816
- const depthBuffer = device.createBuffer({
817
- size: depthData32.byteLength,
818
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST
819
- });
820
- const intrinsicsBuffer = device.createBuffer({
821
- size: intrinsics.byteLength,
822
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST
823
- });
824
- const xyzColorBuffer = device.createBuffer({
825
- size: outputSize,
826
- usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC
827
- });
828
- queue.writeBuffer(depthBuffer, 0, depthData32);
829
- queue.writeBuffer(intrinsicsBuffer, 0, intrinsics);
830
- const bindGroupLayout = device.createBindGroupLayout({
831
- entries: [{
832
- binding: 0,
833
- visibility: GPUShaderStage.COMPUTE,
834
- buffer: {
835
- type: "read-only-storage"
836
- }
837
- }, {
838
- binding: 1,
839
- visibility: GPUShaderStage.COMPUTE,
840
- buffer: {
841
- type: "read-only-storage"
842
- }
843
- }, {
844
- binding: 2,
845
- visibility: GPUShaderStage.COMPUTE,
846
- buffer: {
847
- type: "storage"
848
- }
849
- }]
850
- });
851
- const bindGroup = device.createBindGroup({
852
- layout: bindGroupLayout,
853
- entries: [{
854
- binding: 0,
855
- resource: {
856
- buffer: depthBuffer
857
- }
858
- }, {
859
- binding: 1,
860
- resource: {
861
- buffer: intrinsicsBuffer
862
- }
863
- }, {
864
- binding: 2,
865
- resource: {
866
- buffer: xyzColorBuffer
867
- }
868
- }]
869
- });
870
- const shaderModule = device.createShaderModule({
871
- code: shader
872
- });
873
- const pipeline = device.createComputePipeline({
874
- layout: device.createPipelineLayout({
875
- bindGroupLayouts: [bindGroupLayout]
876
- }),
877
- compute: {
878
- module: shaderModule,
879
- entryPoint: "main"
880
- }
881
- });
882
- const commandEncoder = device.createCommandEncoder();
883
- const passEncoder = commandEncoder.beginComputePass();
884
- passEncoder.setPipeline(pipeline);
885
- passEncoder.setBindGroup(0, bindGroup);
886
- passEncoder.dispatchWorkgroups(Math.ceil(numPixels / 256));
887
- passEncoder.end();
888
- device.queue.submit([commandEncoder.finish()]);
889
- const outputBuffer = device.createBuffer({
890
- size: xyzColorBuffer.size,
891
- usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ
892
- });
893
- const copyEncoder = device.createCommandEncoder();
894
- copyEncoder.copyBufferToBuffer(xyzColorBuffer, 0, outputBuffer, 0, xyzColorBuffer.size);
895
- device.queue.submit([copyEncoder.finish()]);
896
-
897
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
898
- await outputBuffer.mapAsync(GPUMapMode.READ);
899
- const mappedRange = outputBuffer.getMappedRange();
900
- const result = new Uint8Array(mappedRange.byteLength);
901
- result.set(new Uint8Array(mappedRange));
902
- outputBuffer.unmap();
903
- return result;
904
- }
905
- function depthToPointCloudBuffer(uint16Array, width, height, fx, fy, cx, cy) {
906
- const depthData = Array.from({
907
- length: height
908
- }, () => new Array(width));
909
- for (let v = 0; v < height; v++) {
910
- depthData[v] = depthData[v] ?? [];
911
- for (let u = 0; u < width; u++) {
912
- const d = uint16Array[v * width + u] ?? -1;
913
- depthData[v][u] = d > 0 ? d : -1;
914
- }
915
- }
916
- const points = [];
917
- // Accumulate the x, y, z values for each pixel.
918
- for (let v = 0; v < height; v++) {
919
- const row = depthData[v];
920
- if (!row) {
921
- continue;
922
- }
923
- for (let u = 0; u < width; u++) {
924
- const z = row[u] ?? 0;
925
- const x = (cx - u) * z / fx;
926
- const y = (cy - v) * z / fy;
927
- points.push(x, y, z);
928
- }
756
+ const WORKER_COUNT = 3;
757
+ class depthToPointcloudWorkerPool {
758
+ lastUsedWorkerIndex = 0;
759
+ constructor() {
760
+ this.workerApis = new Array(WORKER_COUNT).fill(undefined).map(() => wrap(new Worker(new URL("pointcloudFromDepth.worker-CnEm_1b0.js", import.meta.url), {
761
+ type: "module"
762
+ })));
929
763
  }
930
- const pointCount = points.length / 3;
931
- const buffer = new ArrayBuffer(pointCount * 16);
932
- const view = new DataView(buffer);
933
- for (let i = 0; i < pointCount; i++) {
934
- const offset = i * 16;
935
- view.setFloat32(offset, points[i * 3] ?? 0, true); //X
936
- view.setFloat32(offset + 4, points[i * 3 + 1] ?? 0, true); //Y
937
- view.setFloat32(offset + 8, points[i * 3 + 2] ?? 0, true); //Z
938
- view.setUint8(offset + 12, 0); // R
939
- view.setUint8(offset + 13, 0); // G
940
- view.setUint8(offset + 14, 0); // B
941
- view.setUint8(offset + 15, 255); // A
764
+ async depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy) {
765
+ // biome-ignore lint/style/noNonNullAssertion: This should work
766
+ const workerApi = this.workerApis[this.lastUsedWorkerIndex];
767
+ this.lastUsedWorkerIndex = (this.lastUsedWorkerIndex + 1) % WORKER_COUNT;
768
+ return await workerApi.depthToPointcloudGPU(depthArray, width, height, fx, fy, cx, cy);
942
769
  }
943
- return new Uint8Array(buffer);
944
770
  }
771
+ const workerPool = new depthToPointcloudWorkerPool();
945
772
  async function deserializeDepthFrame({
946
773
  topic,
947
774
  message,
948
- callback
775
+ callback,
776
+ neuralCameraIntrinsics
949
777
  }) {
950
778
  const {
951
779
  receiveTime,
952
780
  width,
953
781
  height
954
782
  } = parseMessage(message);
955
- const neuralCameraIntrinsics = JSON.parse(localStorage.getItem("neuralCameraIntrinsics") ?? "{}");
956
783
  const uint16Array = uint8ArrayToUint16Array(message.data);
957
784
  const fx = neuralCameraIntrinsics.right.focalLenght.x;
958
785
  const fy = neuralCameraIntrinsics.right.focalLenght.y;
959
786
  const cx = neuralCameraIntrinsics.right.principalPoint.x;
960
787
  const cy = neuralCameraIntrinsics.right.principalPoint.y;
961
- const pointCloudBufferGPU = depthToPointcloudGPU(uint16Array, width, height, fx, fy, cx, cy);
788
+ const pointCloudBufferGPU = workerPool.depthToPointcloudGPU(uint16Array, width, height, fx, fy, cx, cy);
962
789
  const foxgloveMessage = {
963
- timestamp: receiveTime,
790
+ timestamp: message.tsDevice ?? receiveTime,
964
791
  frame_id: `pointcloud-${topic}-frame`,
965
792
  point_stride: 16,
966
793
  pose: {
@@ -1178,7 +1005,8 @@ function initCallback(cb) {
1178
1005
  function handleMessageToDecode({
1179
1006
  schema,
1180
1007
  buffer,
1181
- topic
1008
+ topic,
1009
+ neuralCameraIntrinsics
1182
1010
  }) {
1183
1011
  const protobufSchema = protobufsBySchema[schema];
1184
1012
  if (!protobufSchema) {
@@ -1193,7 +1021,8 @@ function handleMessageToDecode({
1193
1021
  topicDecoders,
1194
1022
  message,
1195
1023
  callback,
1196
- type: protobufSchema.type
1024
+ type: protobufSchema.type,
1025
+ neuralCameraIntrinsics
1197
1026
  });
1198
1027
  }
1199
1028
  async function deserializeDepthAiMessage(args) {
@@ -1203,7 +1032,8 @@ async function deserializeDepthAiMessage(args) {
1203
1032
  type,
1204
1033
  message,
1205
1034
  callback,
1206
- topic
1035
+ topic,
1036
+ neuralCameraIntrinsics
1207
1037
  } = args;
1208
1038
  switch (type) {
1209
1039
  case "encodedFrame":
@@ -1255,7 +1085,8 @@ async function deserializeDepthAiMessage(args) {
1255
1085
  await deserializeDepthFrame({
1256
1086
  topic,
1257
1087
  message,
1258
- callback
1088
+ callback,
1089
+ neuralCameraIntrinsics
1259
1090
  });
1260
1091
  break;
1261
1092
  }
@@ -1,5 +1,5 @@
1
- import { a8 as EditorView, a9 as EditorSelection, Q as LRLanguage, N as styleTags, O as tags, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, T as LanguageSupport, V as LRParser, Z as syntaxTree, aa as html, ab as parseMixed, U as ExternalTokenizer } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { a8 as EditorView, a9 as EditorSelection, Q as LRLanguage, N as styleTags, O as tags, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, T as LanguageSupport, V as LRParser, Z as syntaxTree, aa as html, ab as parseMixed, U as ExternalTokenizer } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { J as indentNodeProp, K as continuedIndent, M as foldNodeProp, N as styleTags, O as tags, Q as LRLanguage, T as LanguageSupport, U as ExternalTokenizer, V as LRParser, X as ifNotIn, Y as completeFromList, Z as syntaxTree } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { J as indentNodeProp, K as continuedIndent, M as foldNodeProp, N as styleTags, O as tags, Q as LRLanguage, T as LanguageSupport, U as ExternalTokenizer, V as LRParser, X as ifNotIn, Y as completeFromList, Z as syntaxTree } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, aa as html, T as LanguageSupport, ab as parseMixed } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, aa as html, T as LanguageSupport, ab as parseMixed } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { N as styleTags, O as tags, Q as LRLanguage, T as LanguageSupport, V as LRParser, a3 as LocalTokenGroup, aa as html, ab as parseMixed, ad as javascriptLanguage } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { N as styleTags, O as tags, Q as LRLanguage, T as LanguageSupport, V as LRParser, a3 as LocalTokenGroup, aa as html, ab as parseMixed, ad as javascriptLanguage } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, M as foldNodeProp, a1 as foldInside, J as indentNodeProp, K as continuedIndent, a7 as defineCSSCompletionSource, T as LanguageSupport } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, M as foldNodeProp, a1 as foldInside, J as indentNodeProp, K as continuedIndent, a7 as defineCSSCompletionSource, T as LanguageSupport } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { useReducer, useRef, useCallback, useLayoutEffect, Component, useContext, useState, useEffect, createContext, forwardRef, createElement, cloneElement, useMemo, Profiler, StrictMode } from 'react';
3
3
  import ReactDOM__default from 'react-dom';
4
- import { V as isSymbol, W as toString, X as keys, Y as getSymbols$1, Z as stubArray, $ as arrayPush, a0 as baseGetAllKeys, g as getTag, a1 as getAllKeys, l as baseGet, c as baseIteratee, k as castPath, t as toKey, a2 as arrayMap$1, a3 as baseUniq, b as baseFlatten, a4 as useMustNotChange, a5 as useCurrentLayoutActions, a6 as useCurrentLayoutSelector, r as reportError, A as AppError, L as Logger, u as useGuaranteedContext, a7 as usePanelMosaicId, a8 as useSelectedPanels, a9 as PANEL_TITLE_CONFIG_KEY, aa as noop$4, p as getPanelTypeFromId, N as useShallowMemo, T as TAB_PANEL_TYPE, K as filterMap, d as dist$3, ab as useAppConfiguration, ac as useValueChangedDebugLog, ad as useJsonTreeTheme } from './tslib.es6-D98N6tjc.js';
4
+ import { V as isSymbol, W as toString, X as keys, Y as getSymbols$1, Z as stubArray, $ as arrayPush, a0 as baseGetAllKeys, g as getTag, a1 as getAllKeys, l as baseGet, c as baseIteratee, k as castPath, t as toKey, a2 as arrayMap$1, a3 as baseUniq, b as baseFlatten, a4 as useMustNotChange, a5 as useCurrentLayoutActions, a6 as useCurrentLayoutSelector, r as reportError, A as AppError, L as Logger, u as useGuaranteedContext, a7 as usePanelMosaicId, a8 as useSelectedPanels, a9 as PANEL_TITLE_CONFIG_KEY, aa as noop$4, p as getPanelTypeFromId, N as useShallowMemo, T as TAB_PANEL_TYPE, K as filterMap, d as dist$3, ab as useAppConfiguration, ac as useValueChangedDebugLog, ad as useJsonTreeTheme } from './tslib.es6-D1dICxG6.js';
5
5
  import { createStore, useStore } from 'zustand';
6
- import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, P as PropTypes, E as ErrorDisplay, S as Stack$1, m as makeStyles$1, _ as _extends$1, W as WorkspaceContext, u as useAnalytics, a as AppEvent, L as LeftSidebarItemKeys, R as RightSidebarItemKeys, d as useTranslation, e as usePanelCatalog, h as EmptyState, i as isEmpty, j as PanelContext, k as PanelCatalogContext, l as usePanelStateStore, n as useDefaultPanelTitle, o as useWorkspaceStore, p as WorkspaceStoreSelectors, q as difference, r as usePanelContext, s as useMessagePipeline, v as v4, t as useHoverValue, w as useSetHoverValue, x as useClearHoverValue, y as useMessagePipelineGetter, z as usePanelSettingsTreeUpdate, B as PlayerCapabilities, C as assertNever, D as PlayerPresence, F as isEqual, G as isDesktopApp, H as createTheme, I as propTypesExports } from './index-CR6XGTJc.js';
6
+ import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, P as PropTypes, E as ErrorDisplay, S as Stack$1, m as makeStyles$1, _ as _extends$1, W as WorkspaceContext, u as useAnalytics, a as AppEvent, L as LeftSidebarItemKeys, R as RightSidebarItemKeys, d as useTranslation, e as usePanelCatalog, h as EmptyState, i as isEmpty, j as PanelContext, k as PanelCatalogContext, l as usePanelStateStore, n as useDefaultPanelTitle, o as useWorkspaceStore, p as WorkspaceStoreSelectors, q as difference, r as usePanelContext, s as useMessagePipeline, v as v4, t as useHoverValue, w as useSetHoverValue, x as useClearHoverValue, y as useMessagePipelineGetter, z as usePanelSettingsTreeUpdate, B as PlayerCapabilities, C as assertNever, D as PlayerPresence, F as isEqual, G as isDesktopApp, H as createTheme, I as propTypesExports } from './index-DHft_1uY.js';
7
7
  import { MosaicDragType, MosaicContext, MosaicWindowContext, getOtherBranch, getNodeAtPath } from 'react-mosaic-component';
8
- import { t as typescript } from './useMessageReducer-Cg30zaG9.js';
8
+ import { t as typescript } from './useMessageReducer--GRvgQq6.js';
9
9
  import { g as getDefaultExportFromCjs, c as commonjsGlobal, a as getAugmentedNamespace } from './_commonjsHelpers-E-ZsRS8r.js';
10
10
  import { Link, Button, alpha, IconButton, Card, CardActionArea, CardMedia, CardContent, Typography, Container, Tooltip, Fade, ListItem, ListItemButton, ListItemText, List, TextField, InputAdornment, Popper, Grow, Paper, ClickAwayListener, Menu, MenuItem, Divider, buttonClasses, Backdrop, Chip, useTheme, alertClasses, darken, lighten, inputBaseClasses, autocompleteClasses, inputClasses, Checkbox, dialogActionsClasses, filledInputClasses, inputAdornmentClasses, listSubheaderClasses, selectClasses, tableCellClasses, ThemeProvider as ThemeProvider$1, SvgIcon, tabsClasses as tabsClasses$1, tabClasses, Tabs, Tab, ListItemIcon } from '@mui/material';
11
11
  import { c as copyObject, k as keysIn, g as getPrototype, d as cloneArrayBuffer, e as cloneTypedArray, f as copyArray, h as cloneBuffer, j as initCloneObject, a as assignValue, b as baseAssignValue, l as isPlainObject$1, t as tinycolor, n as t$1, m as merge$1, i as instance } from './i18next-IYI3-Nuv.js';
@@ -1,5 +1,5 @@
1
- import { N as styleTags, O as tags, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, M as foldNodeProp, a1 as foldInside, a7 as defineCSSCompletionSource, T as LanguageSupport, V as LRParser, U as ExternalTokenizer } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { N as styleTags, O as tags, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, M as foldNodeProp, a1 as foldInside, a7 as defineCSSCompletionSource, T as LanguageSupport, V as LRParser, U as ExternalTokenizer } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, $ as flatIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, $ as flatIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, N as styleTags, O as tags, T as LanguageSupport, V as LRParser } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, N as styleTags, O as tags, T as LanguageSupport, V as LRParser } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';
@@ -1,5 +1,5 @@
1
- import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, Z as syntaxTree, X as ifNotIn, Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, a5 as IterMode, Y as completeFromList, a6 as NodeWeakMap, a4 as snippetCompletion } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
1
+ import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, Z as syntaxTree, X as ifNotIn, Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, a5 as IterMode, Y as completeFromList, a6 as NodeWeakMap, a4 as snippetCompletion } from './index-DHft_1uY.js';
2
+ import './tslib.es6-D1dICxG6.js';
3
3
  import './comlink-DHMAu6X7.js';
4
4
  import 'react';
5
5
  import 'react-mosaic-component';