@luxonis/visualizer-protobuf 2.18.0 → 2.19.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.
Files changed (71) hide show
  1. package/dist/{deserialization.worker-DsG76nP8.js → deserialization.worker-BDgy77kA.js} +6 -202
  2. package/dist/{index-CJRhjhJ0.js → index-B1_cFt58.js} +4 -3
  3. package/dist/{index-CcP1Qppv.js → index-B6d3C39p.js} +4 -3
  4. package/dist/{index-BeQ1w8aW.js → index-BF-L7R8k.js} +4 -3
  5. package/dist/{index-4PQpGzhb.js → index-BRgjaS3P.js} +4 -3
  6. package/dist/{index-DdKOhCXT.js → index-BXzxh_oS.js} +4 -3
  7. package/dist/{index-BWittpbR.js → index-C6w97GVV.js} +4 -3
  8. package/dist/{index-DchGURxJ.js → index-CFKwgCnj.js} +4 -3
  9. package/dist/{index-DUUnuN10.js → index-CKOuXheK.js} +4 -3
  10. package/dist/{index-BomoqOv5.js → index-CKUSCjJy.js} +4 -3
  11. package/dist/{index-Ci0X5xT3.js → index-Cjg9XUXR.js} +4 -3
  12. package/dist/{index-BT9CBn7l.js → index-Cx171sUA.js} +4 -3
  13. package/dist/{index-CcIi7pJR.js → index-D9x4CxvS.js} +4 -3
  14. package/dist/{index-CXThSQcL.js → index-DBd5WrbC.js} +4 -3
  15. package/dist/{index-BQecGu9I.js → index-DXrTzXm5.js} +4 -3
  16. package/dist/{index-CXIVXFcJ.js → index-Dhhaoay-.js} +6 -5
  17. package/dist/{index-CrtBH66u.js → index-DvIT_wMb.js} +4 -3
  18. package/dist/{index-ByIsztCr.js → index-FQIyjNd9.js} +4 -3
  19. package/dist/{index-CR6XGTJc.js → index-YYxpyccB.js} +118 -45
  20. package/dist/{index-BFMXTxLw.js → index-qH54Wded.js} +4 -3
  21. package/dist/index.js +4 -3
  22. package/dist/lib/src/components/PanelToolbar.d.ts.map +1 -1
  23. package/dist/lib/src/components/PanelToolbar.js +2 -4
  24. package/dist/lib/src/components/PanelToolbar.js.map +1 -1
  25. package/dist/lib/src/connection/foxglove-connection.d.ts +8 -4
  26. package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
  27. package/dist/lib/src/connection/foxglove-connection.js +20 -6
  28. package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
  29. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +2 -0
  30. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -0
  31. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +286 -0
  32. package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -0
  33. package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts +9 -2
  34. package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
  35. package/dist/lib/src/messaging/deserialization/pointcloud/utils.js +12 -42
  36. package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
  37. package/dist/lib/src/messaging/deserialization/video/color.js +1 -1
  38. package/dist/lib/src/messaging/deserialization/video/color.js.map +1 -1
  39. package/dist/lib/src/messaging/deserialization/video/depth.d.ts +2 -2
  40. package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  41. package/dist/lib/src/messaging/deserialization/video/depth.js +2 -167
  42. package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
  43. package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
  44. package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
  45. package/dist/lib/src/messaging/deserialization.worker.d.ts +15 -11
  46. package/dist/lib/src/messaging/deserialization.worker.d.ts.map +1 -1
  47. package/dist/lib/src/messaging/deserialization.worker.js +3 -2
  48. package/dist/lib/src/messaging/deserialization.worker.js.map +1 -1
  49. package/dist/lib/src/messaging/message-handler.d.ts.map +1 -1
  50. package/dist/lib/src/messaging/message-handler.js +2 -1
  51. package/dist/lib/src/messaging/message-handler.js.map +1 -1
  52. package/dist/lib/src/panels/ImagePanel.js +2 -2
  53. package/dist/lib/src/panels/ImagePanel.js.map +1 -1
  54. package/dist/lib/src/panels/PointCloudPanel.js +2 -2
  55. package/dist/lib/src/panels/PointCloudPanel.js.map +1 -1
  56. package/dist/lib/src/utils/metrics-manager.d.ts +9 -1
  57. package/dist/lib/src/utils/metrics-manager.d.ts.map +1 -1
  58. package/dist/lib/src/utils/metrics-manager.js +33 -2
  59. package/dist/lib/src/utils/metrics-manager.js.map +1 -1
  60. package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -1
  61. package/dist/lib/src/utils/poitcloud-sync.js +18 -5
  62. package/dist/lib/src/utils/poitcloud-sync.js.map +1 -1
  63. package/dist/pointcloudFromDepth.worker-CNKyMUU-.js +326 -0
  64. package/dist/{tslib.es6-D98N6tjc.js → tslib.es6-C73eoP_E.js} +6 -36
  65. package/dist/{useMessageReducer-Cg30zaG9.js → useMessageReducer-jNx5e6JW.js} +1 -1
  66. package/dist/{i420ToRgbaToPoitcloud.worker-CzFC0VI1.js → utils-Cmsz3FxA.js} +37 -5
  67. package/package.json +1 -1
  68. package/dist/lib/src/protobuf.generated/IMUData.d.ts +0 -122
  69. package/dist/lib/src/protobuf.generated/IMUData.d.ts.map +0 -1
  70. package/dist/lib/src/protobuf.generated/IMUData.js +0 -691
  71. package/dist/lib/src/protobuf.generated/IMUData.js.map +0 -1
@@ -1,6 +1,6 @@
1
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';
2
+ import { t as typescript } from './useMessageReducer-jNx5e6JW.js';
3
+ import { e as estimateObjectSize, d as dist } from './tslib.es6-C73eoP_E.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,
@@ -751,197 +751,7 @@ function deserializeColorFrame({
751
751
  // This Source Code Form is subject to the terms of the Mozilla Public
752
752
  // License, v2.0. If a copy of the MPL was not distributed with this
753
753
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
754
- /* eslint-disable no-underscore-dangle */
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
754
 
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
- }
929
- }
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
942
- }
943
- return new Uint8Array(buffer);
944
- }
945
755
  async function deserializeDepthFrame({
946
756
  topic,
947
757
  message,
@@ -952,15 +762,8 @@ async function deserializeDepthFrame({
952
762
  width,
953
763
  height
954
764
  } = parseMessage(message);
955
- const neuralCameraIntrinsics = JSON.parse(localStorage.getItem("neuralCameraIntrinsics") ?? "{}");
956
- const uint16Array = uint8ArrayToUint16Array(message.data);
957
- const fx = neuralCameraIntrinsics.right.focalLenght.x;
958
- const fy = neuralCameraIntrinsics.right.focalLenght.y;
959
- const cx = neuralCameraIntrinsics.right.principalPoint.x;
960
- const cy = neuralCameraIntrinsics.right.principalPoint.y;
961
- const pointCloudBufferGPU = depthToPointcloudGPU(uint16Array, width, height, fx, fy, cx, cy);
962
765
  const foxgloveMessage = {
963
- timestamp: receiveTime,
766
+ timestamp: message.tsDevice ?? receiveTime,
964
767
  frame_id: `pointcloud-${topic}-frame`,
965
768
  point_stride: 16,
966
769
  pose: {
@@ -1007,7 +810,7 @@ async function deserializeDepthFrame({
1007
810
  offset: 15,
1008
811
  type: typescript.NumericType.UINT8
1009
812
  }],
1010
- data: await pointCloudBufferGPU
813
+ data: message.data
1011
814
  };
1012
815
  callback({
1013
816
  topic,
@@ -1252,6 +1055,7 @@ async function deserializeDepthAiMessage(args) {
1252
1055
  }
1253
1056
  case Type.RAW16:
1254
1057
  {
1058
+ // Used for point cloud
1255
1059
  await deserializeDepthFrame({
1256
1060
  topic,
1257
1061
  message,
@@ -1,11 +1,12 @@
1
- import { a2 as ContextTracker, U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, M as foldNodeProp, ac as bracketMatchingHandle, T as LanguageSupport, a8 as EditorView, Z as syntaxTree, a9 as EditorSelection } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
3
- import './comlink-DHMAu6X7.js';
1
+ import { a2 as ContextTracker, U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, M as foldNodeProp, ac as bracketMatchingHandle, T as LanguageSupport, a8 as EditorView, Z as syntaxTree, a9 as EditorSelection } from './index-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
1
- import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, a3 as LocalTokenGroup, a4 as snippetCompletion, Z as syntaxTree, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, $ as flatIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, X as ifNotIn, Y as completeFromList, a5 as IterMode, a6 as NodeWeakMap } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
3
- import './comlink-DHMAu6X7.js';
1
+ import { U as ExternalTokenizer, a2 as ContextTracker, N as styleTags, O as tags, V as LRParser, a3 as LocalTokenGroup, a4 as snippetCompletion, Z as syntaxTree, Q as LRLanguage, J as indentNodeProp, K as continuedIndent, $ as flatIndent, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, X as ifNotIn, Y as completeFromList, a5 as IterMode, a6 as NodeWeakMap } from './index-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
1
- import { N as styleTags, O as tags, ad as javascriptLanguage, Q as LRLanguage, T as LanguageSupport, V as LRParser, aa as html, ab as parseMixed, U as ExternalTokenizer } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
3
- import './comlink-DHMAu6X7.js';
1
+ import { N as styleTags, O as tags, ad as javascriptLanguage, Q as LRLanguage, T as LanguageSupport, V as LRParser, aa as html, ab as parseMixed, U as ExternalTokenizer } from './index-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
1
- import { U as ExternalTokenizer, 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';
3
- import './comlink-DHMAu6X7.js';
1
+ import { U as ExternalTokenizer, 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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -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 { S as isSymbol, U as toString, V as keys, W as getSymbols$1, X as stubArray, Y as arrayPush, Z as baseGetAllKeys, g as getTag, $ as getAllKeys, k as baseGet, c as baseIteratee, j as castPath, t as toKey, a0 as arrayMap$1, a1 as baseUniq, b as baseFlatten, a2 as useMustNotChange, a3 as useCurrentLayoutActions, a4 as useCurrentLayoutSelector, r as reportError, A as AppError, L as Logger, u as useGuaranteedContext, a5 as usePanelMosaicId, a6 as useSelectedPanels, a7 as PANEL_TITLE_CONFIG_KEY, a8 as noop$4, o as getPanelTypeFromId, M as useShallowMemo, T as TAB_PANEL_TYPE, J as filterMap, d as dist$3, a9 as useAppConfiguration, aa as useValueChangedDebugLog, ab as useJsonTreeTheme } from './tslib.es6-C73eoP_E.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-YYxpyccB.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-jNx5e6JW.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';
@@ -24,6 +24,7 @@ import { E as EventEmitter } from './FoxgloveServer-C39Uooyk.js';
24
24
  import require$$1$3 from 'color';
25
25
  import require$$2$1 from 'lodash.curry';
26
26
  import OpenInNewIcon from '@mui/icons-material/OpenInNew';
27
+ import './utils-Cmsz3FxA.js';
27
28
  import './comlink-DHMAu6X7.js';
28
29
  import './foxglove-protocol-CYoMweAY.js';
29
30
  import 'react-dnd-html5-backend';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
1
- import { U as ExternalTokenizer, 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';
3
- import './comlink-DHMAu6X7.js';
1
+ import { U as ExternalTokenizer, 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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
1
- import { a2 as ContextTracker, U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, ab as parseMixed } from './index-CR6XGTJc.js';
2
- import './tslib.es6-D98N6tjc.js';
3
- import './comlink-DHMAu6X7.js';
1
+ import { a2 as ContextTracker, U as ExternalTokenizer, N as styleTags, O as tags, V as LRParser, Q as LRLanguage, J as indentNodeProp, a0 as delimitedIndent, M as foldNodeProp, a1 as foldInside, T as LanguageSupport, ab as parseMixed } from './index-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,14 +1,15 @@
1
- import { ImagePanel } from './index-BT9CBn7l.js';
1
+ import { ImagePanel } from './index-Cx171sUA.js';
2
2
  import 'react';
3
3
  import 'react-dom';
4
- import './tslib.es6-D98N6tjc.js';
5
- import './comlink-DHMAu6X7.js';
4
+ import './tslib.es6-C73eoP_E.js';
6
5
  import 'react-mosaic-component';
7
6
  import './_commonjsHelpers-E-ZsRS8r.js';
8
7
  import '@mui/material';
9
8
  import './isArrayLikeObject-Bytw9p-q.js';
10
9
  import 'zustand';
11
- import './index-CR6XGTJc.js';
10
+ import './index-YYxpyccB.js';
11
+ import './utils-Cmsz3FxA.js';
12
+ import './comlink-DHMAu6X7.js';
12
13
  import './FoxgloveServer-C39Uooyk.js';
13
14
  import 'ms';
14
15
  import './foxglove-protocol-CYoMweAY.js';
@@ -24,7 +25,7 @@ import 'rehype-sanitize';
24
25
  import 'extend';
25
26
  import 'react-icons';
26
27
  import '@pandacss/dev';
27
- import './useMessageReducer-Cg30zaG9.js';
28
+ import './useMessageReducer-jNx5e6JW.js';
28
29
  import '@mui/icons-material/FullscreenExit';
29
30
  import '@mui/icons-material/Settings';
30
31
  import '@mui/icons-material/ChevronRight';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';
@@ -1,11 +1,12 @@
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';
3
- import './comlink-DHMAu6X7.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-YYxpyccB.js';
2
+ import './tslib.es6-C73eoP_E.js';
4
3
  import 'react';
5
4
  import 'react-mosaic-component';
6
5
  import './_commonjsHelpers-E-ZsRS8r.js';
7
6
  import '@mui/material';
8
7
  import './isArrayLikeObject-Bytw9p-q.js';
8
+ import './utils-Cmsz3FxA.js';
9
+ import './comlink-DHMAu6X7.js';
9
10
  import './FoxgloveServer-C39Uooyk.js';
10
11
  import 'ms';
11
12
  import './foxglove-protocol-CYoMweAY.js';