@luxonis/visualizer-protobuf 2.67.1 → 2.68.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 (73) hide show
  1. package/dist/{depth-CvvVVEb7.js → depth-CFY2W_Vf.js} +35 -18
  2. package/dist/depth-coloring.worker-DR5moFai.js +120 -0
  3. package/dist/{deserialization.worker-hk5-vVek.js → deserialization.worker-BRNDCptR.js} +2 -2
  4. package/dist/{index-OiUy81OG.js → index-7BbbXb7C.js} +2 -2
  5. package/dist/{index-DyET9xdh.js → index-B5d7u70w.js} +2 -2
  6. package/dist/{index-BTT4oTs5.js → index-BGrghyc8.js} +2 -2
  7. package/dist/{index-DzJhlBTx.js → index-BSEL9eaF.js} +2 -2
  8. package/dist/{index-B0BQ4Fwh.js → index-Bjwf7lc9.js} +2 -2
  9. package/dist/{index-DpVmn8Eo.js → index-Bndiqw1t.js} +2 -2
  10. package/dist/{index-DGb5vWhb.js → index-BzPticWU.js} +2 -2
  11. package/dist/{index-BUWAj7RO.js → index-C99kj7Bj.js} +2 -2
  12. package/dist/{index-DuHHWrO3.js → index-CO2KzlVr.js} +2 -2
  13. package/dist/{index-Cnigfgu_.js → index-CYJDY0hm.js} +1 -1
  14. package/dist/{index-BTaQS6zc.js → index-CfGQhG__.js} +2 -2
  15. package/dist/{index-BlAepdJg.js → index-CwMsPSeQ.js} +4 -4
  16. package/dist/{index-BzLeaN56.js → index-D5xb8lsX.js} +916 -488
  17. package/dist/{index-CYlHxiz2.js → index-D9b6Lu-5.js} +2 -2
  18. package/dist/{index-ewsVm4VI.js → index-DEr2t1uV.js} +2 -2
  19. package/dist/{index-CpDOxFKV.js → index-DXgxTZSz.js} +2 -2
  20. package/dist/{index-bi1RxT1w.js → index-DoCri7UR.js} +2 -2
  21. package/dist/{index-CTU14EGn.js → index-DtErPDFb.js} +2 -2
  22. package/dist/{index-CrukQeVA.js → index-DycPqoQx.js} +61 -33
  23. package/dist/{index-BGsMOjjC.js → index-pfvcsvrO.js} +2 -2
  24. package/dist/index.js +2 -2
  25. package/dist/lib/src/components/Panel.d.ts +1 -0
  26. package/dist/lib/src/components/Panel.d.ts.map +1 -1
  27. package/dist/lib/src/components/Panel.js +2 -2
  28. package/dist/lib/src/components/Panel.js.map +1 -1
  29. package/dist/lib/src/components/PanelToolbar.d.ts +1 -0
  30. package/dist/lib/src/components/PanelToolbar.d.ts.map +1 -1
  31. package/dist/lib/src/components/PanelToolbar.js +18 -6
  32. package/dist/lib/src/components/PanelToolbar.js.map +1 -1
  33. package/dist/lib/src/connection/connection.d.ts +3 -1
  34. package/dist/lib/src/connection/connection.d.ts.map +1 -1
  35. package/dist/lib/src/connection/connection.js +3 -2
  36. package/dist/lib/src/connection/connection.js.map +1 -1
  37. package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.js +1 -1
  38. package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -1
  39. package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.d.ts.map +1 -1
  40. package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.js +65 -33
  41. package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.js.map +1 -1
  42. package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
  43. package/dist/lib/src/messaging/deserialization/video/depth.js +33 -13
  44. package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
  45. package/dist/lib/src/messaging/message-handler.js +1 -1
  46. package/dist/lib/src/messaging/message-handler.js.map +1 -1
  47. package/dist/lib/src/output.css +4 -2
  48. package/dist/lib/src/panels/ImagePanel.d.ts +1 -0
  49. package/dist/lib/src/panels/ImagePanel.d.ts.map +1 -1
  50. package/dist/lib/src/panels/ImagePanel.js.map +1 -1
  51. package/dist/lib/src/utils/config-store.d.ts +3 -0
  52. package/dist/lib/src/utils/config-store.d.ts.map +1 -1
  53. package/dist/lib/src/utils/config-store.js +8 -0
  54. package/dist/lib/src/utils/config-store.js.map +1 -1
  55. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.d.ts.map +1 -1
  56. package/dist/packages/studio-base/src/panels/ThreeDeeRender/index.js.map +1 -1
  57. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.d.ts.map +1 -1
  58. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.js +2 -2
  59. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.js.map +1 -1
  60. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts +3 -3
  61. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts.map +1 -1
  62. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js +1 -1
  63. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js.map +1 -1
  64. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerFactory.d.ts +11 -0
  65. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerFactory.d.ts.map +1 -0
  66. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerFactory.js +24 -0
  67. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerFactory.js.map +1 -0
  68. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerV2.d.ts +94 -0
  69. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerV2.d.ts.map +1 -0
  70. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerV2.js +410 -0
  71. package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandlerV2.js.map +1 -0
  72. package/package.json +1 -1
  73. package/dist/depth-coloring.worker-BfrTf5yN.js +0 -86
@@ -1,5 +1,5 @@
1
- import { Y as styleTags, Z as tags, ak as javascriptLanguage, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { Y as styleTags, Z as tags, ak as javascriptLanguage, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
@@ -1,5 +1,5 @@
1
- import { Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
@@ -1,5 +1,5 @@
1
- import { a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, ah as html, a0 as LanguageSupport, ai as parseMixed } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, ah as html, a0 as LanguageSupport, ai as parseMixed } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
@@ -1,5 +1,5 @@
1
- import { Y as styleTags, Z as tags, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, ae as defineCSSCompletionSource, a0 as LanguageSupport, a2 as LRParser, a1 as ExternalTokenizer } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { Y as styleTags, Z as tags, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, ae as defineCSSCompletionSource, a0 as LanguageSupport, a2 as LRParser, a1 as ExternalTokenizer } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
@@ -1,5 +1,5 @@
1
- import { Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, aa as LocalTokenGroup, ah as html, ai as parseMixed, ak as javascriptLanguage } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, aa as LocalTokenGroup, ah as html, ai as parseMixed, ak as javascriptLanguage } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
@@ -1,4 +1,4 @@
1
- import { d as dist$1, e as estimateObjectSize, r as reportError, A as AppError, b as baseFlatten, a as baseEach, c as baseIteratee, f as baseDifference, g as getTag, h as baseKeys, i as baseIsEqual, j as castPath, t as toKey, k as baseGet, l as hasIn, s as sendNotification, m as shallowequal, u as useGuaranteedContext, n as getPanelIdsInsideTabPanels, o as getPanelTypeFromId, T as TAB_PANEL_TYPE, p as removePanelFromTabPanel, q as getPanelIdForType, v as getPathFromNode, w as updateTabPanelLayout, x as getSaveConfigsPayloadForAddedPanel, y as replaceAndRemovePanels, z as inlineTabPanelLayouts, B as getAllPanelIds, C as getConfigsForNestedPanelsInsideTab, D as reorderTabWithinTabPanel, E as moveTabBetweenTabPanels, F as isTabPanelConfig, G as DEFAULT_TAB_PANEL_CONFIG, H as addPanelToTab, I as createAddUpdates, J as filterMap, L as Logger, K as uniq$2, M as useShallowMemo, N as CurrentLayoutContext, O as MessageOrderTracker, P as AppConfigurationContext, _ as __assign$8, Q as __rest$5, R as __spreadArray$5 } from './depth-CvvVVEb7.js';
1
+ import { d as dist$1, e as estimateObjectSize, r as reportError, A as AppError, b as baseFlatten, a as baseEach, c as baseIteratee, f as baseDifference, g as getTag, h as baseKeys, i as baseIsEqual, j as castPath, t as toKey, k as baseGet, l as hasIn, s as sendNotification, m as shallowequal, u as useGuaranteedContext, n as getPanelIdsInsideTabPanels, o as getPanelTypeFromId, T as TAB_PANEL_TYPE, p as removePanelFromTabPanel, q as getPanelIdForType, v as getPathFromNode, w as updateTabPanelLayout, x as getSaveConfigsPayloadForAddedPanel, y as replaceAndRemovePanels, z as inlineTabPanelLayouts, B as getAllPanelIds, C as getConfigsForNestedPanelsInsideTab, D as reorderTabWithinTabPanel, E as moveTabBetweenTabPanels, F as isTabPanelConfig, G as DEFAULT_TAB_PANEL_CONFIG, H as addPanelToTab, I as createAddUpdates, J as filterMap, L as Logger, K as uniq$2, M as useShallowMemo, N as CurrentLayoutContext, O as MessageOrderTracker, P as AppConfigurationContext, _ as __assign$8, Q as __rest$5, R as __spreadArray$5 } from './depth-CFY2W_Vf.js';
2
2
  import { w as wrap$3, p as proxy } from './comlink-CsH1ih07.js';
3
3
  import { u as uint8ArrayToUint16Array } from './utils-Hzt3wxhG.js';
4
4
  import { p as protobufsBySchema, a as protobufSchemaNameToType, g as getDefaultExportFromCjs, c as commonjsGlobal } from './protobuf-BFCtaU7c.js';
@@ -26,7 +26,7 @@ import { defineGlobalStyles, defineTokens as defineTokens$1, defineKeyframes, de
26
26
 
27
27
  var e=[],t$1=[];function n$1(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t$1[u]={}),a=t$1[u]&&t$1[u][s]?t$1[u][s]:t$1[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
28
28
 
29
- var css$b = "/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-gray-700: oklch(0.373 0.034 259.733);\n --color-white: #fff;\n --spacing: 0.25rem;\n --font-weight-semibold: 600;\n --radius-lg: 0.5rem;\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentColor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .visible {\n visibility: visible;\n }\n .fixed {\n position: fixed;\n }\n .static {\n position: static;\n }\n .ml-auto {\n margin-left: auto;\n }\n .flex {\n display: flex;\n }\n .w-full {\n width: 100%;\n }\n .grow {\n flex-grow: 1;\n }\n .flex-col {\n flex-direction: column;\n }\n .items-start {\n align-items: flex-start;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-\\[\\#d3d3d3d9\\] {\n border-color: #d3d3d3d9;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .text-\\[14px\\]\\/\\[14px\\] {\n font-size: 14px;\n line-height: 14px;\n }\n .text-\\[20px\\]\\/\\[20px\\] {\n font-size: 20px;\n line-height: 20px;\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .xl\\:flex-row {\n @media (width >= 80rem) {\n flex-direction: row;\n }\n }\n .xl\\:items-end {\n @media (width >= 80rem) {\n align-items: flex-end;\n }\n }\n .xl\\:pb-\\[2px\\] {\n @media (width >= 80rem) {\n padding-bottom: 2px;\n }\n }\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-outline-style: solid;\n }\n }\n}\n";
29
+ var css$b = "/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-gray-700: oklch(0.373 0.034 259.733);\n --color-white: #fff;\n --spacing: 0.25rem;\n --font-weight-semibold: 600;\n --radius-lg: 0.5rem;\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n @supports (color: color-mix(in lab, red, red)) {\n & {\n color: color-mix(in oklab, currentColor 50%, transparent);\n }\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .visible {\n visibility: visible;\n }\n .fixed {\n position: fixed;\n }\n .static {\n position: static;\n }\n .ml-auto {\n margin-left: auto;\n }\n .flex {\n display: flex;\n }\n .w-full {\n width: 100%;\n }\n .grow {\n flex-grow: 1;\n }\n .flex-col {\n flex-direction: column;\n }\n .items-start {\n align-items: flex-start;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-\\[\\#d3d3d3d9\\] {\n border-color: #d3d3d3d9;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .text-\\[14px\\]\\/\\[14px\\] {\n font-size: 14px;\n line-height: 14px;\n }\n .text-\\[20px\\]\\/\\[20px\\] {\n font-size: 20px;\n line-height: 20px;\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .xl\\:flex-row {\n @media (width >= 80rem) {\n flex-direction: row;\n }\n }\n .xl\\:items-end {\n @media (width >= 80rem) {\n align-items: flex-end;\n }\n }\n .xl\\:pb-\\[2px\\] {\n @media (width >= 80rem) {\n padding-bottom: 2px;\n }\n }\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-border-style: solid;\n --tw-font-weight: initial;\n --tw-outline-style: solid;\n }\n }\n}\n";
30
30
  n$1(css$b,{});
31
31
 
32
32
  // This Source Code Form is subject to the terms of the Mozilla Public
@@ -653,7 +653,7 @@ class DepthToPointcloudWorkerPool {
653
653
  // biome-ignore lint/style/noNonNullAssertion: <explanation>
654
654
  const workerApi = this.workerApis[workerIndex];
655
655
  this.lastUsedWorkerIndex = (this.lastUsedWorkerIndex + 1) % WORKER_COUNT;
656
- workerApi.depthToPointcloudGPU(depthDataArray, width, height, fx, fy, cx, cy, i420DataArray, i420Width, i420Height, Number(localStorage.getItem("stereoDepthMaxValue") ?? "5.0"), {
656
+ workerApi.depthToPointcloudGPU(depthDataArray, width, height, fx, fy, cx, cy, i420DataArray, i420Width, i420Height, Number(localStorage.getItem("stereoDepthMaxValue") ?? "8000"), {
657
657
  hasGPU: this.#isWebGpuSupported
658
658
  }).then(results => {
659
659
  if (results.length === batchToProcess.length) {
@@ -771,8 +771,13 @@ class DepthToPointcloudWorkerPool {
771
771
  }
772
772
  }
773
773
 
774
+ // This Source Code Form is subject to the terms of the Mozilla Public
775
+ // License, v2.0. If a copy of the MPL was not distributed with this
776
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
777
+
774
778
  const DEFAULT_CONNECTION_CONFIG = {
775
- debugLogs: false
779
+ debugLogs: false,
780
+ messageHandlerVersion: "v1"
776
781
  };
777
782
  class ConfigStore {
778
783
  connectionConfigValue = DEFAULT_CONNECTION_CONFIG;
@@ -783,6 +788,10 @@ class ConfigStore {
783
788
  }
784
789
  return ConfigStore.instance;
785
790
  }
791
+ static writeToLocalStorage() {
792
+ const instance = ConfigStore.getInstance();
793
+ localStorage.setItem("connectionConfig", JSON.stringify(instance.connectionConfigValue) ?? 'undefined');
794
+ }
786
795
  }
787
796
 
788
797
  // This Source Code Form is subject to the terms of the Mozilla Public
@@ -790,7 +799,7 @@ class ConfigStore {
790
799
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
791
800
 
792
801
  function initWorker(callback) {
793
- const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-hk5-vVek.js", import.meta.url), {
802
+ const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-BRNDCptR.js", import.meta.url), {
794
803
  type: "module",
795
804
  name: `message-decoder`
796
805
  }));
@@ -818,7 +827,7 @@ function createMessageHandler(callback) {
818
827
  buffer,
819
828
  topic,
820
829
  neuralCameraIntrinsics,
821
- stereoDepthMaxValue: Number(localStorage.getItem("stereoDepthMaxValue") ?? "5.0")
830
+ stereoDepthMaxValue: Number(localStorage.getItem("stereoDepthMaxValue") ?? "8000")
822
831
  }, ConfigStore.getInstance(), proxiedCallback);
823
832
  }
824
833
  };
@@ -20416,7 +20425,8 @@ class VisualizerConnection extends FoxgloveConnection {
20416
20425
  type,
20417
20426
  data,
20418
20427
  errorCallback,
20419
- debugLogs
20428
+ debugLogs,
20429
+ messageHandlerVersion
20420
20430
  }) {
20421
20431
  super(type === "ws" ? data.connectionUrl : data.config.clientId);
20422
20432
  let worker;
@@ -20430,8 +20440,11 @@ class VisualizerConnection extends FoxgloveConnection {
20430
20440
  worker = new WebRtcBridge(data.automaticTokenRefresh);
20431
20441
  }
20432
20442
  ConfigStore.getInstance().connectionConfigValue = {
20433
- debugLogs: debugLogs ?? false
20443
+ debugLogs: debugLogs ?? false,
20444
+ messageHandlerVersion: messageHandlerVersion ?? 'v1'
20434
20445
  };
20446
+ ConfigStore.writeToLocalStorage(); // We need this to propagate the config to non-lib code
20447
+
20435
20448
  console.info("[VisualizerConnection] - Opening connection with following configuration", ConfigStore.getInstance().connectionConfigValue);
20436
20449
  this.#open(worker, errorCallback);
20437
20450
  }
@@ -86841,7 +86854,7 @@ function legacy(parser) {
86841
86854
  return new LanguageSupport(StreamLanguage.define(parser));
86842
86855
  }
86843
86856
  function sql$1(dialectName) {
86844
- return import('./index-DpVmn8Eo.js').then(m => m.sql({ dialect: m[dialectName] }));
86857
+ return import('./index-Bndiqw1t.js').then(m => m.sql({ dialect: m[dialectName] }));
86845
86858
  }
86846
86859
  /**
86847
86860
  An array of language descriptions for known language packages.
@@ -86852,7 +86865,7 @@ const languages = [
86852
86865
  name: "C",
86853
86866
  extensions: ["c", "h", "ino"],
86854
86867
  load() {
86855
- return import('./index-BTaQS6zc.js').then(m => m.cpp());
86868
+ return import('./index-CfGQhG__.js').then(m => m.cpp());
86856
86869
  }
86857
86870
  }),
86858
86871
  /*@__PURE__*/LanguageDescription.of({
@@ -86860,7 +86873,7 @@ const languages = [
86860
86873
  alias: ["cpp"],
86861
86874
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
86862
86875
  load() {
86863
- return import('./index-BTaQS6zc.js').then(m => m.cpp());
86876
+ return import('./index-CfGQhG__.js').then(m => m.cpp());
86864
86877
  }
86865
86878
  }),
86866
86879
  /*@__PURE__*/LanguageDescription.of({
@@ -86880,7 +86893,7 @@ const languages = [
86880
86893
  name: "Go",
86881
86894
  extensions: ["go"],
86882
86895
  load() {
86883
- return import('./index-BUWAj7RO.js').then(m => m.go());
86896
+ return import('./index-C99kj7Bj.js').then(m => m.go());
86884
86897
  }
86885
86898
  }),
86886
86899
  /*@__PURE__*/LanguageDescription.of({
@@ -86895,7 +86908,7 @@ const languages = [
86895
86908
  name: "Java",
86896
86909
  extensions: ["java"],
86897
86910
  load() {
86898
- return import('./index-DzJhlBTx.js').then(m => m.java());
86911
+ return import('./index-BSEL9eaF.js').then(m => m.java());
86899
86912
  }
86900
86913
  }),
86901
86914
  /*@__PURE__*/LanguageDescription.of({
@@ -86911,7 +86924,7 @@ const languages = [
86911
86924
  alias: ["json5"],
86912
86925
  extensions: ["json", "map"],
86913
86926
  load() {
86914
- return import('./index-ewsVm4VI.js').then(m => m.json());
86927
+ return import('./index-DEr2t1uV.js').then(m => m.json());
86915
86928
  }
86916
86929
  }),
86917
86930
  /*@__PURE__*/LanguageDescription.of({
@@ -86925,14 +86938,14 @@ const languages = [
86925
86938
  name: "LESS",
86926
86939
  extensions: ["less"],
86927
86940
  load() {
86928
- return import('./index-bi1RxT1w.js').then(m => m.less());
86941
+ return import('./index-DoCri7UR.js').then(m => m.less());
86929
86942
  }
86930
86943
  }),
86931
86944
  /*@__PURE__*/LanguageDescription.of({
86932
86945
  name: "Liquid",
86933
86946
  extensions: ["liquid"],
86934
86947
  load() {
86935
- return import('./index-OiUy81OG.js').then(m => m.liquid());
86948
+ return import('./index-7BbbXb7C.js').then(m => m.liquid());
86936
86949
  }
86937
86950
  }),
86938
86951
  /*@__PURE__*/LanguageDescription.of({
@@ -86958,7 +86971,7 @@ const languages = [
86958
86971
  name: "PHP",
86959
86972
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
86960
86973
  load() {
86961
- return import('./index-CpDOxFKV.js').then(m => m.php());
86974
+ return import('./index-DXgxTZSz.js').then(m => m.php());
86962
86975
  }
86963
86976
  }),
86964
86977
  /*@__PURE__*/LanguageDescription.of({
@@ -86975,28 +86988,28 @@ const languages = [
86975
86988
  extensions: ["BUILD", "bzl", "py", "pyw"],
86976
86989
  filename: /^(BUCK|BUILD)$/,
86977
86990
  load() {
86978
- return import('./index-BGsMOjjC.js').then(m => m.python());
86991
+ return import('./index-pfvcsvrO.js').then(m => m.python());
86979
86992
  }
86980
86993
  }),
86981
86994
  /*@__PURE__*/LanguageDescription.of({
86982
86995
  name: "Rust",
86983
86996
  extensions: ["rs"],
86984
86997
  load() {
86985
- return import('./index-DuHHWrO3.js').then(m => m.rust());
86998
+ return import('./index-CO2KzlVr.js').then(m => m.rust());
86986
86999
  }
86987
87000
  }),
86988
87001
  /*@__PURE__*/LanguageDescription.of({
86989
87002
  name: "Sass",
86990
87003
  extensions: ["sass"],
86991
87004
  load() {
86992
- return import('./index-B0BQ4Fwh.js').then(m => m.sass({ indented: true }));
87005
+ return import('./index-Bjwf7lc9.js').then(m => m.sass({ indented: true }));
86993
87006
  }
86994
87007
  }),
86995
87008
  /*@__PURE__*/LanguageDescription.of({
86996
87009
  name: "SCSS",
86997
87010
  extensions: ["scss"],
86998
87011
  load() {
86999
- return import('./index-B0BQ4Fwh.js').then(m => m.sass());
87012
+ return import('./index-Bjwf7lc9.js').then(m => m.sass());
87000
87013
  }
87001
87014
  }),
87002
87015
  /*@__PURE__*/LanguageDescription.of({
@@ -87027,7 +87040,7 @@ const languages = [
87027
87040
  name: "WebAssembly",
87028
87041
  extensions: ["wat", "wast"],
87029
87042
  load() {
87030
- return import('./index-BTT4oTs5.js').then(m => m.wast());
87043
+ return import('./index-BGrghyc8.js').then(m => m.wast());
87031
87044
  }
87032
87045
  }),
87033
87046
  /*@__PURE__*/LanguageDescription.of({
@@ -87035,7 +87048,7 @@ const languages = [
87035
87048
  alias: ["rss", "wsdl", "xsd"],
87036
87049
  extensions: ["xml", "xsl", "xsd", "svg"],
87037
87050
  load() {
87038
- return import('./index-DyET9xdh.js').then(m => m.xml());
87051
+ return import('./index-B5d7u70w.js').then(m => m.xml());
87039
87052
  }
87040
87053
  }),
87041
87054
  /*@__PURE__*/LanguageDescription.of({
@@ -87043,7 +87056,7 @@ const languages = [
87043
87056
  alias: ["yml"],
87044
87057
  extensions: ["yaml", "yml"],
87045
87058
  load() {
87046
- return import('./index-DGb5vWhb.js').then(m => m.yaml());
87059
+ return import('./index-BzPticWU.js').then(m => m.yaml());
87047
87060
  }
87048
87061
  }),
87049
87062
  // Legacy modes ported from CodeMirror 5
@@ -87839,13 +87852,13 @@ const languages = [
87839
87852
  name: "Vue",
87840
87853
  extensions: ["vue"],
87841
87854
  load() {
87842
- return import('./index-CTU14EGn.js').then(m => m.vue());
87855
+ return import('./index-DtErPDFb.js').then(m => m.vue());
87843
87856
  }
87844
87857
  }),
87845
87858
  /*@__PURE__*/LanguageDescription.of({
87846
87859
  name: "Angular Template",
87847
87860
  load() {
87848
- return import('./index-CYlHxiz2.js').then(m => m.angular());
87861
+ return import('./index-D9b6Lu-5.js').then(m => m.angular());
87849
87862
  }
87850
87863
  })
87851
87864
  ];
@@ -166179,6 +166192,7 @@ const PanelAnnotationButton = ({
166179
166192
  };
166180
166193
  const PanelToolbar = ({
166181
166194
  topic,
166195
+ fakedAs,
166182
166196
  kind,
166183
166197
  setDetections,
166184
166198
  disableAnnotations = false,
@@ -166195,6 +166209,7 @@ const PanelToolbar = ({
166195
166209
  actions
166196
166210
  }) => {
166197
166211
  const [metrics, setMetrics] = React__default.useState();
166212
+ const [fakedMetrics, setFakedMetrics] = React__default.useState();
166198
166213
  const [showResolution, setShowResolution] = React__default.useState(false);
166199
166214
  const {
166200
166215
  detections
@@ -166205,18 +166220,29 @@ const PanelToolbar = ({
166205
166220
  const wrapperBreakpointRef = React__default.useRef(null);
166206
166221
  const parentContainer = wrapperBreakpointRef.current ?? wrapperRef.current ?? document.body;
166207
166222
  React__default.useEffect(() => {
166208
- // Initial set
166209
166223
  if (!metrics) {
166210
166224
  setMetrics(connections.at(0)?.getTopicMetrics(topic));
166211
166225
  }
166212
166226
  const interval = setInterval(() => {
166213
- setMetrics(connections[0]?.getTopicMetrics(topic));
166227
+ const m = connections[0]?.getTopicMetrics(topic);
166228
+ setMetrics(m);
166229
+ if (fakedAs) {
166230
+ const mFakedAs = connections[0]?.getTopicMetrics(fakedAs);
166231
+ if (mFakedAs) {
166232
+ setFakedMetrics({
166233
+ resolutions: m?.resolutions ?? new Map(),
166234
+ incomingMessagesFps: mFakedAs.incomingMessagesFps,
166235
+ decodedMessagesFps: mFakedAs.decodedMessagesFps,
166236
+ messageThroughput: mFakedAs.messageThroughput
166237
+ });
166238
+ }
166239
+ }
166214
166240
  }, 500);
166215
166241
  return () => {
166216
166242
  clearInterval(interval);
166217
166243
  };
166218
166244
  // eslint-disable-next-line react-hooks/exhaustive-deps
166219
- }, []);
166245
+ }, [connections, topic, fakedAs]);
166220
166246
  React__default.useEffect(() => {
166221
166247
  if (wrapperWidth && wrapperWidth < 600) {
166222
166248
  setShowResolution(false);
@@ -166301,7 +166327,7 @@ const PanelToolbar = ({
166301
166327
  ref: wrapperBreakpointRef
166302
166328
  }, /*#__PURE__*/React__default.createElement(PanelToolbarMetrics, {
166303
166329
  targetFps: targetFps,
166304
- metrics: metrics,
166330
+ metrics: fakedMetrics ?? metrics,
166305
166331
  topic: topic,
166306
166332
  inDropdown: true,
166307
166333
  isPointcloud: kind === "pointCloud"
@@ -166354,7 +166380,7 @@ const PanelToolbar = ({
166354
166380
  icon: MdClose
166355
166381
  }, "Close Stream")))) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(PanelToolbarMetrics, {
166356
166382
  targetFps: targetFps,
166357
- metrics: metrics,
166383
+ metrics: fakedMetrics ?? metrics,
166358
166384
  topic: topic,
166359
166385
  isPointcloud: isPointcloud
166360
166386
  }), /*#__PURE__*/React__default.createElement(Flex, {
@@ -166479,6 +166505,7 @@ const Panel = ({
166479
166505
  canMoveDown,
166480
166506
  moveDown,
166481
166507
  panelOverlay,
166508
+ fakedAs,
166482
166509
  panelToolbarActions
166483
166510
  }) => {
166484
166511
  const [detections, setDetections] = React__default.useState([]);
@@ -166505,6 +166532,7 @@ const Panel = ({
166505
166532
  className: "flex flex-col grow border border-solid border-[#d3d3d3d9] overflow-hidden rounded-lg",
166506
166533
  ref: sectionRef
166507
166534
  }, panelOverlay, !hideToolbar && /*#__PURE__*/React__default.createElement(PanelToolbar, {
166535
+ fakedAs: fakedAs,
166508
166536
  kind: kind,
166509
166537
  topic: topic,
166510
166538
  setDetections: setDetections,
@@ -166554,7 +166582,7 @@ function createRenderDelaySampler() {
166554
166582
  };
166555
166583
  }
166556
166584
 
166557
- const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BlAepdJg.js'));
166585
+ const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-CwMsPSeQ.js'));
166558
166586
  const ImagePanelBody = ({
166559
166587
  topic,
166560
166588
  frameRenderedEvent,
@@ -166649,7 +166677,7 @@ const DEFAULT_CAMERA_STATE = {
166649
166677
  // License, v2.0. If a copy of the MPL was not distributed with this
166650
166678
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
166651
166679
 
166652
- const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BzLeaN56.js'));
166680
+ const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-D5xb8lsX.js'));
166653
166681
  const PointCloudPanelBody = ({
166654
166682
  topic,
166655
166683
  frameRenderedEvent,
@@ -1,5 +1,5 @@
1
- import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, a5 as syntaxTree, a3 as ifNotIn, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ac as IterMode, a4 as completeFromList, ad as NodeWeakMap, ab as snippetCompletion } from './index-CrukQeVA.js';
2
- import './depth-CvvVVEb7.js';
1
+ import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, a5 as syntaxTree, a3 as ifNotIn, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ac as IterMode, a4 as completeFromList, ad as NodeWeakMap, ab as snippetCompletion } from './index-DycPqoQx.js';
2
+ import './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import 'react';
5
5
  import 'zustand';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { av as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, aq as constructKeyForTopicRenderMetrics, aw as getIMUEventEmitter, as as globalDecodeMetricsManager, ar as globalInputEventMetricsManager, at as globalRenderMetricsManager, au as globalThroughputMetricsManager } from './index-CrukQeVA.js';
2
- export { S as getDistanceFromDepthDataForOffset } from './depth-CvvVVEb7.js';
1
+ export { av as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, aq as constructKeyForTopicRenderMetrics, aw as getIMUEventEmitter, as as globalDecodeMetricsManager, ar as globalInputEventMetricsManager, at as globalRenderMetricsManager, au as globalThroughputMetricsManager } from './index-DycPqoQx.js';
2
+ export { S as getDistanceFromDepthDataForOffset } from './depth-CFY2W_Vf.js';
3
3
  import './comlink-CsH1ih07.js';
4
4
  import './utils-Hzt3wxhG.js';
5
5
  import './protobuf-BFCtaU7c.js';
@@ -9,6 +9,7 @@ export type PanelTopic = {
9
9
  };
10
10
  export type PanelProps = React.PropsWithChildren<{
11
11
  topic: string;
12
+ fakedAs?: string;
12
13
  kind: ProtobufKind;
13
14
  disableAnnotations?: boolean;
14
15
  annotationTopics?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,OAAO,CAAC;AAO3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,sDAAsD,CAAC;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AAaF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAuFtC,CAAC"}
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,OAAO,CAAC;AAO3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,sDAAsD,CAAC;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAC,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AAaF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAyFtC,CAAC"}
@@ -17,7 +17,7 @@ const rawToAnnotations = (rawAnnotations, kind, current) => rawAnnotations.map((
17
17
  extra: kind === "extra",
18
18
  enabled: current.find(({ name }) => name === annotationTopic)?.enabled ?? kind === "main",
19
19
  }));
20
- export const Panel = ({ children, kind, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [], targetFps, renderDelay, toggleTopic, triggerToast, hideToolbar = false, toggleFullscreen, canMoveUp, moveUp, canMoveDown, moveDown, panelOverlay, panelToolbarActions, }) => {
20
+ export const Panel = ({ children, kind, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [], targetFps, renderDelay, toggleTopic, triggerToast, hideToolbar = false, toggleFullscreen, canMoveUp, moveUp, canMoveDown, moveDown, panelOverlay, fakedAs, panelToolbarActions, }) => {
21
21
  const [detections, setDetections] = React.useState([]);
22
22
  const sectionRef = useRef(null);
23
23
  React.useEffect(() => {
@@ -35,6 +35,6 @@ export const Panel = ({ children, kind, topic, disableAnnotations = false, annot
35
35
  }
36
36
  toggleFullscreen(sectionRef);
37
37
  };
38
- return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs("section", { className: "flex flex-col grow border border-solid border-[#d3d3d3d9] overflow-hidden rounded-lg", ref: sectionRef, children: [panelOverlay, !hideToolbar && (_jsx(PanelToolbar, { kind: kind, topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations, targetFps: targetFps, renderDelay: renderDelay, toggleTopic: toggleTopic, toggleFullscreen: toggleFullscreenForThisPanel, triggerToast: triggerToast, canMoveUp: canMoveUp, moveUp: moveUp, canMoveDown: canMoveDown, moveDown: moveDown, touchesBreakpoint: sectionRef.current?.clientWidth ? sectionRef.current.clientWidth <= 550 : false, isPointcloud: kind === "pointCloud", actions: panelToolbarActions })), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
38
+ return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs("section", { className: "flex flex-col grow border border-solid border-[#d3d3d3d9] overflow-hidden rounded-lg", ref: sectionRef, children: [panelOverlay, !hideToolbar && (_jsx(PanelToolbar, { fakedAs: fakedAs, kind: kind, topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations, targetFps: targetFps, renderDelay: renderDelay, toggleTopic: toggleTopic, toggleFullscreen: toggleFullscreenForThisPanel, triggerToast: triggerToast, canMoveUp: canMoveUp, moveUp: moveUp, canMoveDown: canMoveDown, moveDown: moveDown, touchesBreakpoint: sectionRef.current?.clientWidth ? sectionRef.current.clientWidth <= 550 : false, isPointcloud: kind === "pointCloud", actions: panelToolbarActions })), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
39
39
  };
40
40
  //# sourceMappingURL=Panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export type PanelToolbarProps = {
19
19
  moveDown?: () => void;
20
20
  touchesBreakpoint?: boolean;
21
21
  actions?: JSX.Element;
22
+ fakedAs?: string;
22
23
  };
23
24
  export declare const PanelToolbar: React.FC<PanelToolbarProps>;
24
25
  //# sourceMappingURL=PanelToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,eAAe,CAAC;AA6BvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,sCAAsC,CAAC;AA0N9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwVpD,CAAC"}
1
+ {"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,eAAe,CAAC;AA6BvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,sCAAsC,CAAC;AA0N9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,OAAO,CAAC,EAAC,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0WpD,CAAC"}
@@ -92,8 +92,9 @@ const PanelAnnotationButton = ({ topic, onClick }) => {
92
92
  }, [onClick]);
93
93
  return (_jsx(DropdownMenuItem, { onClick: handleClick, children: _jsxs(Flex, { align: "center", gap: "sm", children: [_jsx(Icon, { color: "active", icon: topic.enabled ? ImCheckboxChecked : ImCheckboxUnchecked }), _jsx(NormalText, { text: topic.name })] }) }));
94
94
  };
95
- export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations = false, targetFps, triggerToast, toggleTopic, toggleFullscreen, canMoveUp, moveUp, canMoveDown, moveDown, touchesBreakpoint, isPointcloud, actions, }) => {
95
+ export const PanelToolbar = ({ topic, fakedAs, kind, setDetections, disableAnnotations = false, targetFps, triggerToast, toggleTopic, toggleFullscreen, canMoveUp, moveUp, canMoveDown, moveDown, touchesBreakpoint, isPointcloud, actions, }) => {
96
96
  const [metrics, setMetrics] = React.useState();
97
+ const [fakedMetrics, setFakedMetrics] = React.useState();
97
98
  const [showResolution, setShowResolution] = React.useState(false);
98
99
  const { detections } = useDetections();
99
100
  const connections = useConnections();
@@ -102,18 +103,29 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
102
103
  const wrapperBreakpointRef = React.useRef(null);
103
104
  const parentContainer = wrapperBreakpointRef.current ?? wrapperRef.current ?? document.body;
104
105
  React.useEffect(() => {
105
- // Initial set
106
106
  if (!metrics) {
107
107
  setMetrics(connections.at(0)?.getTopicMetrics(topic));
108
108
  }
109
109
  const interval = setInterval(() => {
110
- setMetrics(connections[0]?.getTopicMetrics(topic));
110
+ const m = connections[0]?.getTopicMetrics(topic);
111
+ setMetrics(m);
112
+ if (fakedAs) {
113
+ const mFakedAs = connections[0]?.getTopicMetrics(fakedAs);
114
+ if (mFakedAs) {
115
+ setFakedMetrics({
116
+ resolutions: m?.resolutions ?? new Map(),
117
+ incomingMessagesFps: mFakedAs.incomingMessagesFps,
118
+ decodedMessagesFps: mFakedAs.decodedMessagesFps,
119
+ messageThroughput: mFakedAs.messageThroughput,
120
+ });
121
+ }
122
+ }
111
123
  }, 500);
112
124
  return () => {
113
125
  clearInterval(interval);
114
126
  };
115
127
  // eslint-disable-next-line react-hooks/exhaustive-deps
116
- }, []);
128
+ }, [connections, topic, fakedAs]);
117
129
  React.useEffect(() => {
118
130
  if (wrapperWidth && wrapperWidth < 600) {
119
131
  setShowResolution(false);
@@ -152,7 +164,7 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
152
164
  const makeDetection = React.useCallback((detection, { extra }) => (extra ? detection.extra && !detection.enabled : !detection.extra || detection.enabled) && (_jsx(PanelAnnotationButton, { topic: detection, onClick: () => {
153
165
  onToggleTopic(detection.name);
154
166
  } }, detection.name)), [onToggleTopic]);
155
- return (_jsx(Flex, { direction: "row", gap: "xs", align: "center", justify: "space-between", className: "px-4 bg-white", ref: wrapperRef, children: _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: touchesBreakpoint ? "space-between" : "start", width: "full", paddingY: "xs", children: [_jsxs(Flex, { width: "fit", gap: "xxs", className: "flex-col xl:flex-row items-start xl:items-end", children: [_jsx(Tooltip, { content: resolution, children: _jsx(SubHeader, { text: name, className: "whitespace-nowrap text-[20px]/[20px]" }) }), showResolution && resolution && (_jsx(Label, { text: `(${resolution})`, className: "text-[14px]/[14px] xl:pb-[2px]" }))] }), touchesBreakpoint ? (_jsxs(Flex, { direction: "row", gap: "xs", align: "center", children: [actions, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { icon: MoreMenuIcon, variant: "outline", colorVariant: "white", size: "sm" }) }), _jsxs(DropdownMenuContent, { ref: wrapperBreakpointRef, children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: metrics, topic: topic, inDropdown: true, isPointcloud: kind === "pointCloud" }), kind === "pointCloud" && (_jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content: _jsx(PointCloudPanelInstructions, {}), children: _jsx(DropdownMenuItem, { icon: HelpIcon, onClick: (e) => {
167
+ return (_jsx(Flex, { direction: "row", gap: "xs", align: "center", justify: "space-between", className: "px-4 bg-white", ref: wrapperRef, children: _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: touchesBreakpoint ? "space-between" : "start", width: "full", paddingY: "xs", children: [_jsxs(Flex, { width: "fit", gap: "xxs", className: "flex-col xl:flex-row items-start xl:items-end", children: [_jsx(Tooltip, { content: resolution, children: _jsx(SubHeader, { text: name, className: "whitespace-nowrap text-[20px]/[20px]" }) }), showResolution && resolution && (_jsx(Label, { text: `(${resolution})`, className: "text-[14px]/[14px] xl:pb-[2px]" }))] }), touchesBreakpoint ? (_jsxs(Flex, { direction: "row", gap: "xs", align: "center", children: [actions, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { icon: MoreMenuIcon, variant: "outline", colorVariant: "white", size: "sm" }) }), _jsxs(DropdownMenuContent, { ref: wrapperBreakpointRef, children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: fakedMetrics ?? metrics, topic: topic, inDropdown: true, isPointcloud: kind === "pointCloud" }), kind === "pointCloud" && (_jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content: _jsx(PointCloudPanelInstructions, {}), children: _jsx(DropdownMenuItem, { icon: HelpIcon, onClick: (e) => {
156
168
  e.stopPropagation();
157
169
  e.preventDefault();
158
170
  }, cursor: "help", children: "Point Cloud Details" }) })), !disableAnnotations && kind === "image" && (_jsxs(DropdownMenuSub, { children: [_jsx(DropdownMenuSubTrigger, { disabled: detections.length === 0, style: { opacity: detections.length === 0 ? 0.5 : 1 }, children: "Annotations" }), _jsxs(DropdownMenuSubContent, { children: [detections.map((detection) => makeDetection(detection, { extra: false })), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => {
@@ -160,7 +172,7 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
160
172
  }, icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
161
173
  borderRadius: 4,
162
174
  }, children: extraVisible ? "Less" : "More" })), extraVisible &&
163
- detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), _jsx(DropdownMenuItem, { onClick: moveUp, disabled: !canMoveUp, icon: FaCaretUp, children: "Move Panel Up" }), _jsx(DropdownMenuItem, { onClick: moveDown, disabled: !canMoveDown, icon: FaCaretDown, children: "Move Panel Down" }), toggleFullscreen && (_jsx(DropdownMenuItem, { onClick: toggleFullscreen, icon: FullscreenIcon, children: "Fullscreen" })), _jsx(DropdownMenuItem, { onClick: () => toggleTopic?.(name), disabled: !canMoveDown, icon: CrossIcon, children: "Close Stream" })] })] })] })) : (_jsxs(_Fragment, { children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: metrics, topic: topic, isPointcloud: isPointcloud }), _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: "start", marginLeft: "auto", width: "fit", children: [!disableAnnotations && kind === "image" && (_jsxs(DropdownMenu, { children: [_jsx(Tooltip, { content: "Annotations", parentContainer: parentContainer, children: _jsx(DropdownMenuTrigger, { asChild: true, disabled: detections.length === 0, children: _jsx(Button, { variant: "outline", colorVariant: "white", size: "sm", icon: CiFilter, disabled: detections.length === 0 }) }) }), _jsxs(DropdownMenuContent, { parentContainer: parentContainer, children: [detections.map((detection) => makeDetection(detection, { extra: false })), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => {
175
+ detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), _jsx(DropdownMenuItem, { onClick: moveUp, disabled: !canMoveUp, icon: FaCaretUp, children: "Move Panel Up" }), _jsx(DropdownMenuItem, { onClick: moveDown, disabled: !canMoveDown, icon: FaCaretDown, children: "Move Panel Down" }), toggleFullscreen && (_jsx(DropdownMenuItem, { onClick: toggleFullscreen, icon: FullscreenIcon, children: "Fullscreen" })), _jsx(DropdownMenuItem, { onClick: () => toggleTopic?.(name), disabled: !canMoveDown, icon: CrossIcon, children: "Close Stream" })] })] })] })) : (_jsxs(_Fragment, { children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: fakedMetrics ?? metrics, topic: topic, isPointcloud: isPointcloud }), _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: "start", marginLeft: "auto", width: "fit", children: [!disableAnnotations && kind === "image" && (_jsxs(DropdownMenu, { children: [_jsx(Tooltip, { content: "Annotations", parentContainer: parentContainer, children: _jsx(DropdownMenuTrigger, { asChild: true, disabled: detections.length === 0, children: _jsx(Button, { variant: "outline", colorVariant: "white", size: "sm", icon: CiFilter, disabled: detections.length === 0 }) }) }), _jsxs(DropdownMenuContent, { parentContainer: parentContainer, children: [detections.map((detection) => makeDetection(detection, { extra: false })), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => {
164
176
  setExtraVisible((current) => !current);
165
177
  }, icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
166
178
  borderRadius: 4,