@luxonis/visualizer-protobuf 2.68.8 → 2.68.10

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 (65) hide show
  1. package/dist/{FoxgloveServer-h5m-pXp3.js → FoxgloveServer-VUfAN9DL.js} +1 -1
  2. package/dist/{communicator-Ch92rcoU.js → communicator-CuoUie5N.js} +1 -1
  3. package/dist/{depth-CFY2W_Vf.js → depth-BEHWbtlK.js} +100 -100
  4. package/dist/{deserialization.worker-DAmdYYfb.js → deserialization.worker-C4T3Eokf.js} +3 -3
  5. package/dist/{foxglove-protocol-BSYuI-q2.js → foxglove-protocol-DuBdoM6O.js} +1 -1
  6. package/dist/{index-DQ-Y9h3D.js → index-5dSWYE02.js} +5 -5
  7. package/dist/{index-CnIQYhNg.js → index-B3B1EKLu.js} +7 -7
  8. package/dist/{index-C253OuSj.js → index-BNOguuXJ.js} +5 -5
  9. package/dist/{index-CYJDY0hm.js → index-BNURNYen.js} +2 -2
  10. package/dist/{index-Dh8OYuxP.js → index-BQS2Zm_4.js} +5 -5
  11. package/dist/{index-BRYP3I3Y.js → index-C4r5IcKB.js} +5 -5
  12. package/dist/{index-CuBKjTze.js → index-C5otNkzD.js} +5 -5
  13. package/dist/{index-B8WI1K1N.js → index-C8J-pcJN.js} +5 -5
  14. package/dist/{index-Cq-AQ_3n.js → index-CD0PEqJC.js} +5 -5
  15. package/dist/{index-1Mp2uiPR.js → index-CF3Qalgd.js} +5 -5
  16. package/dist/{index-CLKf126y.js → index-Ct9xm-pq.js} +5 -5
  17. package/dist/{index-DuHl2uxK.js → index-DV7ZF_In.js} +5 -5
  18. package/dist/{index-BIIHWu1p.js → index-DgJK8CVA.js} +316 -120
  19. package/dist/{index-CPm4j5Ig.js → index-Dl-BT0Go.js} +5 -5
  20. package/dist/{index-DDTzdpi1.js → index-Dtvj50qi.js} +5 -5
  21. package/dist/{index-Dz5WEhSI.js → index-HZpBmPlK.js} +123 -100
  22. package/dist/{index-BHkyh3c6.js → index-JBRGZ0QJ.js} +5 -5
  23. package/dist/{index-CoZiK0Iq.js → index-LKUpPytZ.js} +5 -5
  24. package/dist/{index-DHS5r_kP.js → index-NWR-Tbbg.js} +5 -5
  25. package/dist/{index-CYS8JdxE.js → index-arKUGhuG.js} +5 -5
  26. package/dist/index.js +5 -5
  27. package/dist/lib/src/components/PanelToolbar.js +1 -1
  28. package/dist/lib/src/components/PanelToolbar.js.map +1 -1
  29. package/dist/lib/src/output.css +3 -0
  30. package/dist/lib/src/protobuf.generated/EncodedFrame.js +1 -1
  31. package/dist/lib/src/protobuf.generated/EncodedFrame.js.map +1 -1
  32. package/dist/lib/src/protobuf.generated/Event.js +1 -1
  33. package/dist/lib/src/protobuf.generated/Event.js.map +1 -1
  34. package/dist/lib/src/protobuf.generated/IMUData.js +1 -1
  35. package/dist/lib/src/protobuf.generated/IMUData.js.map +1 -1
  36. package/dist/lib/src/protobuf.generated/ImageAnnotations.js +1 -1
  37. package/dist/lib/src/protobuf.generated/ImageAnnotations.js.map +1 -1
  38. package/dist/lib/src/protobuf.generated/ImgDetections.js +1 -1
  39. package/dist/lib/src/protobuf.generated/ImgDetections.js.map +1 -1
  40. package/dist/lib/src/protobuf.generated/ImgFrame.js +1 -1
  41. package/dist/lib/src/protobuf.generated/ImgFrame.js.map +1 -1
  42. package/dist/lib/src/protobuf.generated/PointCloudData.js +1 -1
  43. package/dist/lib/src/protobuf.generated/PointCloudData.js.map +1 -1
  44. package/dist/lib/src/protobuf.generated/SpatialImgDetections.js +1 -1
  45. package/dist/lib/src/protobuf.generated/SpatialImgDetections.js.map +1 -1
  46. package/dist/lib/src/protobuf.generated/common.js +1 -1
  47. package/dist/lib/src/protobuf.generated/common.js.map +1 -1
  48. package/dist/packages/studio-base/src/components/ExpandingToolbar.d.ts +2 -1
  49. package/dist/packages/studio-base/src/components/ExpandingToolbar.d.ts.map +1 -1
  50. package/dist/packages/studio-base/src/components/ExpandingToolbar.js +3 -3
  51. package/dist/packages/studio-base/src/components/ExpandingToolbar.js.map +1 -1
  52. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Interactions/Interactions.d.ts.map +1 -1
  53. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Interactions/Interactions.js +1 -1
  54. package/dist/packages/studio-base/src/panels/ThreeDeeRender/Interactions/Interactions.js.map +1 -1
  55. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.d.ts.map +1 -1
  56. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.js +13 -22
  57. package/dist/packages/studio-base/src/panels/ThreeDeeRender/RendererOverlay.js.map +1 -1
  58. package/dist/{protobuf-BFCtaU7c.js → protobuf-CUXoOgMk.js} +8 -8
  59. package/dist/{worker-BaUgfqvr.js → worker-B98aztFc.js} +4 -4
  60. package/dist/{worker-BpVhgPF8.js → worker-BKBqfM0E.js} +3 -3
  61. package/package.json +1 -1
  62. package/dist/packages/studio-base/src/hooks/usePanelMousePresence.d.ts +0 -9
  63. package/dist/packages/studio-base/src/hooks/usePanelMousePresence.d.ts.map +0 -1
  64. package/dist/packages/studio-base/src/hooks/usePanelMousePresence.js +0 -40
  65. package/dist/packages/studio-base/src/hooks/usePanelMousePresence.js.map +0 -1
@@ -1,11 +1,11 @@
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';
1
+ import { L as Logger, d as dist$1, r as reportError, A as AppError, b as baseFlatten, a as baseEach, c as baseIteratee, e as baseDifference, g as getTag, f as baseKeys, h as baseIsEqual, i as castPath, t as toKey, j as baseGet, k as hasIn, s as sendNotification, l as shallowequal, u as useGuaranteedContext, m as getPanelIdsInsideTabPanels, n as getPanelTypeFromId, T as TAB_PANEL_TYPE, o as removePanelFromTabPanel, p as getPanelIdForType, q as getPathFromNode, v as updateTabPanelLayout, w as getSaveConfigsPayloadForAddedPanel, x as replaceAndRemovePanels, y as inlineTabPanelLayouts, z as getAllPanelIds, B as getConfigsForNestedPanelsInsideTab, C as reorderTabWithinTabPanel, D as moveTabBetweenTabPanels, E as isTabPanelConfig, F as DEFAULT_TAB_PANEL_CONFIG, G as addPanelToTab, H as createAddUpdates, I as filterMap, J as uniq$2, K as useShallowMemo, M as CurrentLayoutContext, N as MessageOrderTracker, O as AppConfigurationContext, _ as __assign$8, P as __rest$5, Q as __spreadArray$5 } from './depth-BEHWbtlK.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
- import { p as protobufsBySchema, a as protobufSchemaNameToType, g as getDefaultExportFromCjs, c as commonjsGlobal } from './protobuf-BFCtaU7c.js';
4
+ import { p as protobufsBySchema, a as protobufSchemaNameToType, g as getDefaultExportFromCjs, c as commonjsGlobal } from './protobuf-CUXoOgMk.js';
5
5
  import * as React$1 from 'react';
6
6
  import React__default, { useRef, useMemo, createContext, useContext, forwardRef, createElement, useState, Component, useCallback, useEffect, useLayoutEffect, useReducer, useImperativeHandle, Fragment as Fragment$1, Suspense } from 'react';
7
- import { B as BinaryOpcode } from './FoxgloveServer-h5m-pXp3.js';
8
- import { p as parseFoxgloveMessage } from './foxglove-protocol-BSYuI-q2.js';
7
+ import { B as BinaryOpcode } from './FoxgloveServer-VUfAN9DL.js';
8
+ import { p as parseFoxgloveMessage } from './foxglove-protocol-DuBdoM6O.js';
9
9
  import { DndProvider } from 'react-dnd';
10
10
  import { HTML5Backend } from 'react-dnd-html5-backend';
11
11
  import { getLeaves, createRemoveUpdate, updateTree, createHideUpdate, createDragToUpdates, getNodeAtPath, MosaicContext, MosaicWindowContext } from 'react-mosaic-component';
@@ -15,7 +15,7 @@ import { ThemeContext, __unsafe_useEmotionCache } from '@emotion/react';
15
15
  import require$$1 from 'object-assign';
16
16
  import { createStore, useStore } from 'zustand';
17
17
  import { s as setToString, o as overRest, i as isArray, b as baseRest, a as isArrayLikeObject, c as isArrayLike, d as isBuffer, e as isTypedArray, f as isArguments, g as isPrototype, h as isObject$2, j as isIndex } from './isArrayLikeObject-Bytw9p-q.js';
18
- import { jsx as jsx$2, Fragment, jsxs } from 'react/jsx-runtime';
18
+ import { jsx as jsx$2, jsxs, Fragment } from 'react/jsx-runtime';
19
19
  import * as ReactDOM from 'react-dom';
20
20
  import ReactDOM__default from 'react-dom';
21
21
  import 'react-syntax-highlighter/dist/esm/styles/prism';
@@ -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.17 | 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 .max-w-\\[60\\%\\%\\] {\n max-width: 60%%;\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 .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.17 | 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 .max-w-\\[60\\%\\%\\] {\n max-width: 60%%;\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 .text-nowrap {\n text-wrap: 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
@@ -447,6 +447,90 @@ class Condvar {
447
447
  // License, v2.0. If a copy of the MPL was not distributed with this
448
448
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
449
449
 
450
+ const log$7 = Logger.getLogger("src/index.ts");
451
+ /**
452
+ * Values of the contants below are a (more or less) informed guesses and not guaranteed to be accurate.
453
+ */
454
+ const COMPRESSED_POINTER_SIZE = 4; // Pointers use 4 bytes (also on 64-bit systems) due to pointer compression
455
+ const OBJECT_BASE_SIZE = 3 * COMPRESSED_POINTER_SIZE; // 3 compressed pointers
456
+ // Arrays have an additional length property (1 pointer) and a backing store header (2 pointers)
457
+ // See https://stackoverflow.com/a/70550693.
458
+ const ARRAY_BASE_SIZE = OBJECT_BASE_SIZE + 3 * COMPRESSED_POINTER_SIZE;
459
+ const TYPED_ARRAY_BASE_SIZE = 25 * COMPRESSED_POINTER_SIZE; // byteLength, byteOffset, ..., see https://stackoverflow.com/a/45808835
460
+ const SMALL_INTEGER_SIZE = COMPRESSED_POINTER_SIZE; // Small integers (up to 31 bits), pointer tagging
461
+ const HEAP_NUMBER_SIZE = 8 + 2 * COMPRESSED_POINTER_SIZE; // 4-byte map pointer + 8-byte payload + property pointer
462
+ const MAX_NUM_FAST_PROPERTIES = 1020;
463
+
464
+ /**
465
+ * Estimate the size in bytes of an arbitrary object or primitive.
466
+ * @param obj Object or primitive to estimate the size for
467
+ * @returns Estimated size in bytes
468
+ */
469
+ function estimateObjectSize(obj) {
470
+ // catches null and undefined
471
+ // typeof null == "object"
472
+ if (obj == undefined) {
473
+ return SMALL_INTEGER_SIZE;
474
+ }
475
+ switch (typeof obj) {
476
+ case "undefined":
477
+ case "boolean":
478
+ {
479
+ return SMALL_INTEGER_SIZE;
480
+ }
481
+ case "number":
482
+ {
483
+ return Number.isInteger(obj) ? SMALL_INTEGER_SIZE : HEAP_NUMBER_SIZE;
484
+ }
485
+ case "bigint":
486
+ {
487
+ return HEAP_NUMBER_SIZE;
488
+ }
489
+ case "string":
490
+ {
491
+ // The string length is rounded up to the next multiple of 4.
492
+ return COMPRESSED_POINTER_SIZE + OBJECT_BASE_SIZE + Math.ceil(obj.length / 4) * 4;
493
+ }
494
+ case "object":
495
+ {
496
+ if (Array.isArray(obj)) {
497
+ return COMPRESSED_POINTER_SIZE + ARRAY_BASE_SIZE + Object.values(obj).reduce((acc, val) => acc + estimateObjectSize(val), 0);
498
+ } else if (ArrayBuffer.isView(obj)) {
499
+ return TYPED_ARRAY_BASE_SIZE + obj.byteLength;
500
+ } else if (obj instanceof Set) {
501
+ return COMPRESSED_POINTER_SIZE + OBJECT_BASE_SIZE + Array.from(obj.values()).reduce((acc, val) => acc + estimateObjectSize(val), 0);
502
+ } else if (obj instanceof Map) {
503
+ return COMPRESSED_POINTER_SIZE + OBJECT_BASE_SIZE + Array.from(obj.entries()).reduce((acc, [key, val]) => acc + estimateObjectSize(key) + estimateObjectSize(val), 0);
504
+ }
505
+ let propertiesSize = 0;
506
+ const numProps = Object.keys(obj).length;
507
+ if (numProps > MAX_NUM_FAST_PROPERTIES) {
508
+ // If there are too many properties, V8 stores Objects in dictionary mode (slow properties)
509
+ // with each object having a self-contained dictionary. This dictionary contains the key, value
510
+ // and details of properties. Below we estimate the size of this additional dictionary. Formula
511
+ // adapted from
512
+ // medium.com/@bpmxmqd/v8-engine-jsobject-structure-analysis-and-memory-optimization-ideas-be30cfcdcd16
513
+ const propertiesDictSize = 16 + 5 * 8 + 2 ** Math.ceil(Math.log2((numProps + 2) * 1.5)) * 3 * 4;
514
+ // In return, properties are no longer stored in the properties array, so we subtract that.
515
+ propertiesSize = propertiesDictSize - numProps * COMPRESSED_POINTER_SIZE;
516
+ }
517
+ const valuesSize = Object.values(obj).reduce((acc, val) => acc + estimateObjectSize(val), 0);
518
+ return OBJECT_BASE_SIZE + propertiesSize + valuesSize;
519
+ }
520
+ case "symbol":
521
+ case "function":
522
+ {
523
+ throw new Error(`Can't estimate size of type '${typeof obj}'`);
524
+ }
525
+ }
526
+ log$7.error(`Can't estimate size of type '${typeof obj}'`);
527
+ return SMALL_INTEGER_SIZE;
528
+ }
529
+
530
+ // This Source Code Form is subject to the terms of the Mozilla Public
531
+ // License, v2.0. If a copy of the MPL was not distributed with this
532
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/
533
+
450
534
  const MAX_SAMPLE_SIZE = 100;
451
535
  function constructKeyForTopicRenderMetrics(key, topic) {
452
536
  return `${key}:${topic}`;
@@ -799,7 +883,7 @@ class ConfigStore {
799
883
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
800
884
 
801
885
  function initWorker(callback) {
802
- const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-DAmdYYfb.js", import.meta.url), {
886
+ const workerWrap = wrap$3(new Worker(new URL("deserialization.worker-C4T3Eokf.js", import.meta.url), {
803
887
  type: "module",
804
888
  name: `message-decoder`
805
889
  }));
@@ -20996,7 +21080,7 @@ class WebRtcBridge extends ArtificialWorker {
20996
21080
  constructor(automaticTokenRefresh) {
20997
21081
  super();
20998
21082
  this.automaticTokenRefresh = automaticTokenRefresh;
20999
- this.#worker = new Worker(new URL("worker-BaUgfqvr.js", import.meta.url), {
21083
+ this.#worker = new Worker(new URL("worker-B98aztFc.js", import.meta.url), {
21000
21084
  type: "module"
21001
21085
  });
21002
21086
  this.#setupArtificialWorker();
@@ -21215,7 +21299,7 @@ class VisualizerConnection extends FoxgloveConnection {
21215
21299
  let worker;
21216
21300
  if (type === "ws") {
21217
21301
  this.#url = data.connectionUrl;
21218
- worker = new Worker(new URL("worker-BpVhgPF8.js", import.meta.url), {
21302
+ worker = new Worker(new URL("worker-BKBqfM0E.js", import.meta.url), {
21219
21303
  type: "module"
21220
21304
  });
21221
21305
  } else {
@@ -25851,7 +25935,7 @@ n$1(css$a,{});
25851
25935
  var css$9 = "/* latin */\n@font-face {\n font-family: \"IBM Plex Mono\";\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(\"@foxglove/studio-base/styles/assets/PlexMono-Italic.woff2\") format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,\n U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin */\n@font-face {\n font-family: \"IBM Plex Mono\";\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(\"@foxglove/studio-base/styles/assets/PlexMono-BoldItalic.woff2\") format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,\n U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin */\n@font-face {\n font-family: \"IBM Plex Mono\";\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(\"@foxglove/studio-base/styles/assets/PlexMono.woff2\") format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,\n U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin */\n@font-face {\n font-family: \"IBM Plex Mono\";\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(\"@foxglove/studio-base/styles/assets/PlexMono-Bold.woff2\") format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,\n U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n";
25852
25936
  n$1(css$9,{});
25853
25937
 
25854
- const useStyles$3 = makeStyles()(({
25938
+ const useStyles$4 = makeStyles()(({
25855
25939
  palette,
25856
25940
  typography
25857
25941
  }) => ({
@@ -26056,7 +26140,7 @@ const useStyles$3 = makeStyles()(({
26056
26140
  function CssBaseline(props) {
26057
26141
  const {
26058
26142
  classes
26059
- } = useStyles$3();
26143
+ } = useStyles$4();
26060
26144
  return /*#__PURE__*/React__default.createElement("div", {
26061
26145
  className: classes.root
26062
26146
  }, props.children);
@@ -26077,7 +26161,7 @@ function _extends$3() {
26077
26161
  return _extends$3.apply(this, arguments);
26078
26162
  }
26079
26163
 
26080
- const useStyles$2 = makeStyles({
26164
+ const useStyles$3 = makeStyles({
26081
26165
  name: "FoxgloveStack"
26082
26166
  })((theme, props) => ({
26083
26167
  root: {
@@ -26158,7 +26242,7 @@ const useStyles$2 = makeStyles({
26158
26242
  })
26159
26243
  }
26160
26244
  }));
26161
- var Stack$1 = /*#__PURE__*/forwardRef(function Stack(props, ref) {
26245
+ var Stack$2 = /*#__PURE__*/forwardRef(function Stack(props, ref) {
26162
26246
  const {
26163
26247
  alignItems,
26164
26248
  alignSelf,
@@ -26202,7 +26286,7 @@ var Stack$1 = /*#__PURE__*/forwardRef(function Stack(props, ref) {
26202
26286
  const {
26203
26287
  classes,
26204
26288
  cx
26205
- } = useStyles$2({
26289
+ } = useStyles$3({
26206
26290
  alignItems,
26207
26291
  alignSelf,
26208
26292
  direction,
@@ -26245,7 +26329,7 @@ var Stack$1 = /*#__PURE__*/forwardRef(function Stack(props, ref) {
26245
26329
  }, rest), children);
26246
26330
  });
26247
26331
 
26248
- const useStyles$1 = makeStyles()(theme => ({
26332
+ const useStyles$2 = makeStyles()(theme => ({
26249
26333
  grid: {
26250
26334
  display: "grid",
26251
26335
  gridTemplateRows: "auto 1fr auto",
@@ -26283,7 +26367,7 @@ function ErrorStacktrace({
26283
26367
  }) {
26284
26368
  const {
26285
26369
  classes
26286
- } = useStyles$1();
26370
+ } = useStyles$2();
26287
26371
  const lines = (hideSourceLocations ? sanitizeStack(stack) : stack).trim().replace(/^\s*at /gm, "").split("\n").map(line => line.trim());
26288
26372
  return /*#__PURE__*/React__default.createElement("pre", {
26289
26373
  className: classes.errorDetailStack
@@ -26300,7 +26384,7 @@ function ErrorStacktrace({
26300
26384
  function ErrorDisplay(props) {
26301
26385
  const {
26302
26386
  classes
26303
- } = useStyles$1();
26387
+ } = useStyles$2();
26304
26388
  const {
26305
26389
  error,
26306
26390
  errorInfo,
@@ -26330,10 +26414,10 @@ function ErrorDisplay(props) {
26330
26414
  }, [error, errorInfo, hideErrorSourceLocations, showErrorDetails]);
26331
26415
  return /*#__PURE__*/React__default.createElement("div", {
26332
26416
  className: classes.grid
26333
- }, /*#__PURE__*/React__default.createElement(Stack$1, {
26417
+ }, /*#__PURE__*/React__default.createElement(Stack$2, {
26334
26418
  gap: 2,
26335
26419
  paddingBottom: 2
26336
- }, /*#__PURE__*/React__default.createElement(Stack$1, null, /*#__PURE__*/React__default.createElement(Typography, {
26420
+ }, /*#__PURE__*/React__default.createElement(Stack$2, null, /*#__PURE__*/React__default.createElement(Typography, {
26337
26421
  variant: "h4",
26338
26422
  gutterBottom: true
26339
26423
  }, props.title ?? "The app encountered an unexpected error"), /*#__PURE__*/React__default.createElement(Typography, {
@@ -26354,7 +26438,7 @@ function ErrorDisplay(props) {
26354
26438
  }, props.actions));
26355
26439
  }
26356
26440
 
26357
- class ErrorBoundary extends Component {
26441
+ let ErrorBoundary$1 = class ErrorBoundary extends Component {
26358
26442
  state = {
26359
26443
  currentError: undefined
26360
26444
  };
@@ -26369,7 +26453,7 @@ class ErrorBoundary extends Component {
26369
26453
  }
26370
26454
  render() {
26371
26455
  if (this.state.currentError) {
26372
- const actions = this.props.actions ?? /*#__PURE__*/React__default.createElement(Stack$1, {
26456
+ const actions = this.props.actions ?? /*#__PURE__*/React__default.createElement(Stack$2, {
26373
26457
  fullHeight: true,
26374
26458
  flex: "auto",
26375
26459
  alignItems: "flex-end",
@@ -26402,7 +26486,7 @@ class ErrorBoundary extends Component {
26402
26486
  }
26403
26487
  return this.props.children;
26404
26488
  }
26405
- }
26489
+ };
26406
26490
 
26407
26491
  /** GlobalCss component configures html, body, and #root with theme elements */
26408
26492
  function GlobalCss() {
@@ -34535,7 +34619,7 @@ const VisualizerContext = /*#__PURE__*/React__default.memo(function VisualizerCo
34535
34619
  value: appConfiguration
34536
34620
  }, /*#__PURE__*/React__default.createElement(DndProvider, {
34537
34621
  backend: HTML5Backend
34538
- }, /*#__PURE__*/React__default.createElement(WorkspaceContextProvider, null, /*#__PURE__*/React__default.createElement(GlobalCss, null), /*#__PURE__*/React__default.createElement(CssBaseline, null, /*#__PURE__*/React__default.createElement(ErrorBoundary, null, /*#__PURE__*/React__default.createElement(TimelineInteractionStateProvider, null, /*#__PURE__*/React__default.createElement(CurrentLayoutProvider, null, /*#__PURE__*/React__default.createElement(ConnectionsProvider, {
34622
+ }, /*#__PURE__*/React__default.createElement(WorkspaceContextProvider, null, /*#__PURE__*/React__default.createElement(GlobalCss, null), /*#__PURE__*/React__default.createElement(CssBaseline, null, /*#__PURE__*/React__default.createElement(ErrorBoundary$1, null, /*#__PURE__*/React__default.createElement(TimelineInteractionStateProvider, null, /*#__PURE__*/React__default.createElement(CurrentLayoutProvider, null, /*#__PURE__*/React__default.createElement(ConnectionsProvider, {
34539
34623
  value: connections
34540
34624
  }, /*#__PURE__*/React__default.createElement(MessagePipelineProvider, null, /*#__PURE__*/React__default.createElement(EventsProvider, null, /*#__PURE__*/React__default.createElement(MosaicContext.Provider, {
34541
34625
  value: mosaicContext
@@ -34546,6 +34630,126 @@ const VisualizerContext = /*#__PURE__*/React__default.memo(function VisualizerCo
34546
34630
  }, /*#__PURE__*/React__default.createElement(PanelStateContextProvider, null, children))))))))))))));
34547
34631
  });
34548
34632
 
34633
+ const useStyles$1 = makeStyles({ name: "FoxgloveStack" })((theme, props) => ({
34634
+ root: {
34635
+ display: props.inline === true ? "inline-flex" : "flex",
34636
+ flexDirection: props.direction,
34637
+ flex: props.flex,
34638
+ flexBasis: props.flexBasis,
34639
+ flexShrink: props.flexShrink,
34640
+ flexGrow: props.flexGrow,
34641
+ flexWrap: props.flexWrap,
34642
+ justifyContent: props.justifyContent,
34643
+ alignItems: props.alignItems,
34644
+ alignContent: props.alignContent,
34645
+ alignSelf: props.alignSelf,
34646
+ order: props.order,
34647
+ overflow: props.overflow,
34648
+ overflowX: props.overflowX,
34649
+ overflowY: props.overflowY,
34650
+ position: props.position,
34651
+ ...(props.zeroMinWidth === true && {
34652
+ minWidth: 0,
34653
+ }),
34654
+ ...(props.fullHeight === true && {
34655
+ height: "100%",
34656
+ }),
34657
+ ...(props.fullWidth === true && {
34658
+ width: "100%",
34659
+ }),
34660
+ ...(props.gap != undefined && {
34661
+ gap: theme.spacing(props.gap),
34662
+ }),
34663
+ ...(props.gapX != undefined && {
34664
+ rowGap: theme.spacing(props.gapX),
34665
+ }),
34666
+ ...(props.gapY != undefined && {
34667
+ columnGap: theme.spacing(props.gapY),
34668
+ }),
34669
+ ...(props.padding != undefined && {
34670
+ padding: theme.spacing(props.padding),
34671
+ }),
34672
+ ...(props.paddingX != undefined && {
34673
+ paddingLeft: theme.spacing(props.paddingX),
34674
+ paddingRight: theme.spacing(props.paddingX),
34675
+ }),
34676
+ ...(props.paddingY != undefined && {
34677
+ paddingTop: theme.spacing(props.paddingY),
34678
+ paddingBottom: theme.spacing(props.paddingY),
34679
+ }),
34680
+ ...(props.paddingTop != undefined && {
34681
+ paddingTop: theme.spacing(props.paddingTop),
34682
+ }),
34683
+ ...(props.paddingBottom != undefined && {
34684
+ paddingBottom: theme.spacing(props.paddingBottom),
34685
+ }),
34686
+ ...(props.paddingLeft != undefined && {
34687
+ paddingLeft: theme.spacing(props.paddingLeft),
34688
+ }),
34689
+ ...(props.paddingRight != undefined && {
34690
+ paddingRight: theme.spacing(props.paddingRight),
34691
+ }),
34692
+ ...(props.paddingBlock != undefined && {
34693
+ paddingBlock: theme.spacing(props.paddingBlock),
34694
+ }),
34695
+ ...(props.paddingBlockStart != undefined && {
34696
+ paddingBlockStart: theme.spacing(props.paddingBlockStart),
34697
+ }),
34698
+ ...(props.paddingBlockEnd != undefined && {
34699
+ paddingBlockEnd: theme.spacing(props.paddingBlockEnd),
34700
+ }),
34701
+ ...(props.paddingInline != undefined && {
34702
+ paddingInline: theme.spacing(props.paddingInline),
34703
+ }),
34704
+ ...(props.paddingInlineStart != undefined && {
34705
+ paddingInlineStart: theme.spacing(props.paddingInlineStart),
34706
+ }),
34707
+ ...(props.paddingInlineEnd != undefined && {
34708
+ paddingInlineEnd: theme.spacing(props.paddingInlineEnd),
34709
+ }),
34710
+ },
34711
+ }));
34712
+ var Stack$1 = forwardRef(function Stack(props, ref) {
34713
+ const { alignItems, alignSelf, children, className, direction = "column", flex, flexBasis, flexGrow, flexShrink, flexWrap, fullHeight = false, fullWidth = false, gap, gapX, gapY, inline = false, justifyContent, order, overflow, overflowX, overflowY, padding, paddingBottom, paddingLeft, paddingRight, paddingTop, paddingX, paddingY, paddingBlock, paddingBlockStart, paddingBlockEnd, paddingInline, paddingInlineStart, paddingInlineEnd, position, style, zeroMinWidth = false, ...rest } = props;
34714
+ const { classes, cx } = useStyles$1({
34715
+ alignItems,
34716
+ alignSelf,
34717
+ direction,
34718
+ flex,
34719
+ flexBasis,
34720
+ flexGrow,
34721
+ flexShrink,
34722
+ flexWrap,
34723
+ fullHeight,
34724
+ fullWidth,
34725
+ gap,
34726
+ gapX,
34727
+ gapY,
34728
+ inline,
34729
+ justifyContent,
34730
+ order,
34731
+ overflow,
34732
+ overflowX,
34733
+ overflowY,
34734
+ padding,
34735
+ paddingBottom,
34736
+ paddingLeft,
34737
+ paddingRight,
34738
+ paddingTop,
34739
+ paddingX,
34740
+ paddingY,
34741
+ paddingBlock,
34742
+ paddingBlockStart,
34743
+ paddingBlockEnd,
34744
+ paddingInline,
34745
+ paddingInlineStart,
34746
+ paddingInlineEnd,
34747
+ position,
34748
+ zeroMinWidth,
34749
+ });
34750
+ return (jsx$2("div", { ref: ref, className: cx(classes.root, className), style: style, ...rest, children: children }));
34751
+ });
34752
+
34549
34753
  function _classCallCheck(instance, Constructor) {
34550
34754
  if (!(instance instanceof Constructor)) {
34551
34755
  throw new TypeError("Cannot call a class as a function");
@@ -36623,33 +36827,25 @@ var zh = /*#__PURE__*/Object.freeze({
36623
36827
  // This Source Code Form is subject to the terms of the Mozilla Public
36624
36828
  // License, v2.0. If a copy of the MPL was not distributed with this
36625
36829
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
36626
-
36627
- const translations = {
36628
- en,
36629
- zh,
36630
- ja
36631
- };
36830
+ const translations = { en, zh, ja };
36632
36831
  const defaultNS = "general";
36633
36832
  async function initI18n(options) {
36634
- const {
36635
- context = "browser"
36636
- } = options ?? {};
36637
- if (context === "browser") {
36638
- instance.use(initReactI18next);
36639
- instance.use(Browser);
36640
- }
36641
- await instance.init({
36642
- resources: translations,
36643
- detection: context === "browser" ? {
36644
- order: ["localStorage", "navigator"],
36645
- caches: ["localStorage"]
36646
- } : undefined,
36647
- fallbackLng: "en",
36648
- defaultNS,
36649
- interpolation: {
36650
- escapeValue: false // not needed for react as it escapes by default
36651
- }
36652
- });
36833
+ const { context = "browser" } = options ?? {};
36834
+ if (context === "browser") {
36835
+ instance.use(initReactI18next);
36836
+ instance.use(Browser);
36837
+ }
36838
+ await instance.init({
36839
+ resources: translations,
36840
+ detection: context === "browser"
36841
+ ? { order: ["localStorage", "navigator"], caches: ["localStorage"] }
36842
+ : undefined,
36843
+ fallbackLng: "en",
36844
+ defaultNS,
36845
+ interpolation: {
36846
+ escapeValue: false, // not needed for react as it escapes by default
36847
+ },
36848
+ });
36653
36849
  }
36654
36850
 
36655
36851
  const PanelLayout = ({
@@ -36672,37 +36868,40 @@ const PanelLayout = ({
36672
36868
  }, children);
36673
36869
  };
36674
36870
 
36675
- const useStyles = makeStyles()(theme => ({
36676
- root: {
36677
- whiteSpace: "pre-line",
36678
- code: {
36679
- color: theme.palette.primary.main,
36680
- background: "transparent",
36681
- padding: 0
36682
- }
36683
- }
36871
+ const useStyles = makeStyles()((theme) => ({
36872
+ root: {
36873
+ whiteSpace: "pre-line",
36874
+ code: {
36875
+ color: theme.palette.primary.main,
36876
+ background: "transparent",
36877
+ padding: 0,
36878
+ },
36879
+ },
36684
36880
  }));
36685
- function EmptyState({
36686
- children,
36687
- className
36688
- }) {
36689
- const {
36690
- classes,
36691
- cx
36692
- } = useStyles();
36693
- return /*#__PURE__*/React__default.createElement(Stack$1, {
36694
- className: cx(classes.root, className),
36695
- flex: "auto",
36696
- alignItems: "center",
36697
- justifyContent: "center",
36698
- fullHeight: true,
36699
- paddingX: 1
36700
- }, /*#__PURE__*/React__default.createElement(Typography, {
36701
- variant: "body2",
36702
- color: "text.secondary",
36703
- lineHeight: 1.4,
36704
- align: "center"
36705
- }, children));
36881
+ function EmptyState({ children, className, }) {
36882
+ const { classes, cx } = useStyles();
36883
+ return (jsx$2(Stack$2, { className: cx(classes.root, className), flex: "auto", alignItems: "center", justifyContent: "center", fullHeight: true, paddingX: 1, children: jsx$2(Typography, { variant: "body2", color: "text.secondary", lineHeight: 1.4, align: "center", children: children }) }));
36884
+ }
36885
+
36886
+ class ErrorBoundary extends Component {
36887
+ state = {
36888
+ currentError: undefined,
36889
+ };
36890
+ componentDidCatch(error, errorInfo) {
36891
+ reportError(new AppError(error, errorInfo));
36892
+ this.setState({ currentError: { error, errorInfo } });
36893
+ }
36894
+ render() {
36895
+ if (this.state.currentError) {
36896
+ const actions = this.props.actions ?? (jsx$2(Stack$2, { fullHeight: true, flex: "auto", alignItems: "flex-end", justifyContent: "flex-end", direction: "row", children: jsx$2(Button$2, { variant: "outlined", color: "secondary", onClick: () => {
36897
+ this.setState({ currentError: undefined });
36898
+ }, children: "Dismiss" }) }));
36899
+ return (jsx$2(ErrorDisplay, { showErrorDetails: this.props.showErrorDetails, hideErrorSourceLocations: this.props.hideErrorSourceLocations, error: this.state.currentError.error, errorInfo: this.state.currentError.errorInfo, content: jsxs(Typography, { children: ["Something went wrong.", " ", jsx$2(Link, { color: "inherit", onClick: () => {
36900
+ this.setState({ currentError: undefined });
36901
+ }, children: "Dismiss this error" }), " ", "to continue using the app. If the issue persists, try restarting the app."] }), actions: actions }));
36902
+ }
36903
+ return this.props.children;
36904
+ }
36706
36905
  }
36707
36906
 
36708
36907
  /**
@@ -36713,15 +36912,13 @@ function EmptyState({
36713
36912
  * last resort nuclear option when you think that an entire subtree should be purged.
36714
36913
  */
36715
36914
  function RemountOnValueChange(props) {
36716
- // When the value changes, useCallback will create a new component by returning a new
36717
- // function instance. Since this is a completely new component it will remount its entire tree.
36718
- const Parent = useCallback(({
36719
- children
36720
- }) => {
36721
- void props.value; // to suppress eslint complaining about the value in the deps list
36722
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
36723
- }, [props.value]);
36724
- return /*#__PURE__*/React__default.createElement(Parent, null, props.children);
36915
+ // When the value changes, useCallback will create a new component by returning a new
36916
+ // function instance. Since this is a completely new component it will remount its entire tree.
36917
+ const Parent = useCallback(({ children }) => {
36918
+ void props.value; // to suppress eslint complaining about the value in the deps list
36919
+ return jsx$2(Fragment, { children: children });
36920
+ }, [props.value]);
36921
+ return jsx$2(Parent, { children: props.children });
36725
36922
  }
36726
36923
 
36727
36924
  var css$8 = "@layer reset, base, tokens, recipes, utilities;\n\n.fake-password-input {\n -webkit-text-security: disc;\n}";
@@ -87637,7 +87834,7 @@ function legacy(parser) {
87637
87834
  return new LanguageSupport(StreamLanguage.define(parser));
87638
87835
  }
87639
87836
  function sql$1(dialectName) {
87640
- return import('./index-1Mp2uiPR.js').then(m => m.sql({ dialect: m[dialectName] }));
87837
+ return import('./index-CF3Qalgd.js').then(m => m.sql({ dialect: m[dialectName] }));
87641
87838
  }
87642
87839
  /**
87643
87840
  An array of language descriptions for known language packages.
@@ -87648,7 +87845,7 @@ const languages = [
87648
87845
  name: "C",
87649
87846
  extensions: ["c", "h", "ino"],
87650
87847
  load() {
87651
- return import('./index-DuHl2uxK.js').then(m => m.cpp());
87848
+ return import('./index-DV7ZF_In.js').then(m => m.cpp());
87652
87849
  }
87653
87850
  }),
87654
87851
  /*@__PURE__*/LanguageDescription.of({
@@ -87656,7 +87853,7 @@ const languages = [
87656
87853
  alias: ["cpp"],
87657
87854
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
87658
87855
  load() {
87659
- return import('./index-DuHl2uxK.js').then(m => m.cpp());
87856
+ return import('./index-DV7ZF_In.js').then(m => m.cpp());
87660
87857
  }
87661
87858
  }),
87662
87859
  /*@__PURE__*/LanguageDescription.of({
@@ -87676,7 +87873,7 @@ const languages = [
87676
87873
  name: "Go",
87677
87874
  extensions: ["go"],
87678
87875
  load() {
87679
- return import('./index-C253OuSj.js').then(m => m.go());
87876
+ return import('./index-BNOguuXJ.js').then(m => m.go());
87680
87877
  }
87681
87878
  }),
87682
87879
  /*@__PURE__*/LanguageDescription.of({
@@ -87691,7 +87888,7 @@ const languages = [
87691
87888
  name: "Java",
87692
87889
  extensions: ["java"],
87693
87890
  load() {
87694
- return import('./index-Dh8OYuxP.js').then(m => m.java());
87891
+ return import('./index-BQS2Zm_4.js').then(m => m.java());
87695
87892
  }
87696
87893
  }),
87697
87894
  /*@__PURE__*/LanguageDescription.of({
@@ -87707,7 +87904,7 @@ const languages = [
87707
87904
  alias: ["json5"],
87708
87905
  extensions: ["json", "map"],
87709
87906
  load() {
87710
- return import('./index-DQ-Y9h3D.js').then(m => m.json());
87907
+ return import('./index-5dSWYE02.js').then(m => m.json());
87711
87908
  }
87712
87909
  }),
87713
87910
  /*@__PURE__*/LanguageDescription.of({
@@ -87721,14 +87918,14 @@ const languages = [
87721
87918
  name: "LESS",
87722
87919
  extensions: ["less"],
87723
87920
  load() {
87724
- return import('./index-B8WI1K1N.js').then(m => m.less());
87921
+ return import('./index-C8J-pcJN.js').then(m => m.less());
87725
87922
  }
87726
87923
  }),
87727
87924
  /*@__PURE__*/LanguageDescription.of({
87728
87925
  name: "Liquid",
87729
87926
  extensions: ["liquid"],
87730
87927
  load() {
87731
- return import('./index-CPm4j5Ig.js').then(m => m.liquid());
87928
+ return import('./index-Dl-BT0Go.js').then(m => m.liquid());
87732
87929
  }
87733
87930
  }),
87734
87931
  /*@__PURE__*/LanguageDescription.of({
@@ -87754,7 +87951,7 @@ const languages = [
87754
87951
  name: "PHP",
87755
87952
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
87756
87953
  load() {
87757
- return import('./index-DDTzdpi1.js').then(m => m.php());
87954
+ return import('./index-Dtvj50qi.js').then(m => m.php());
87758
87955
  }
87759
87956
  }),
87760
87957
  /*@__PURE__*/LanguageDescription.of({
@@ -87771,28 +87968,28 @@ const languages = [
87771
87968
  extensions: ["BUILD", "bzl", "py", "pyw"],
87772
87969
  filename: /^(BUCK|BUILD)$/,
87773
87970
  load() {
87774
- return import('./index-DHS5r_kP.js').then(m => m.python());
87971
+ return import('./index-NWR-Tbbg.js').then(m => m.python());
87775
87972
  }
87776
87973
  }),
87777
87974
  /*@__PURE__*/LanguageDescription.of({
87778
87975
  name: "Rust",
87779
87976
  extensions: ["rs"],
87780
87977
  load() {
87781
- return import('./index-BHkyh3c6.js').then(m => m.rust());
87978
+ return import('./index-JBRGZ0QJ.js').then(m => m.rust());
87782
87979
  }
87783
87980
  }),
87784
87981
  /*@__PURE__*/LanguageDescription.of({
87785
87982
  name: "Sass",
87786
87983
  extensions: ["sass"],
87787
87984
  load() {
87788
- return import('./index-BRYP3I3Y.js').then(m => m.sass({ indented: true }));
87985
+ return import('./index-C4r5IcKB.js').then(m => m.sass({ indented: true }));
87789
87986
  }
87790
87987
  }),
87791
87988
  /*@__PURE__*/LanguageDescription.of({
87792
87989
  name: "SCSS",
87793
87990
  extensions: ["scss"],
87794
87991
  load() {
87795
- return import('./index-BRYP3I3Y.js').then(m => m.sass());
87992
+ return import('./index-C4r5IcKB.js').then(m => m.sass());
87796
87993
  }
87797
87994
  }),
87798
87995
  /*@__PURE__*/LanguageDescription.of({
@@ -87823,7 +88020,7 @@ const languages = [
87823
88020
  name: "WebAssembly",
87824
88021
  extensions: ["wat", "wast"],
87825
88022
  load() {
87826
- return import('./index-CoZiK0Iq.js').then(m => m.wast());
88023
+ return import('./index-LKUpPytZ.js').then(m => m.wast());
87827
88024
  }
87828
88025
  }),
87829
88026
  /*@__PURE__*/LanguageDescription.of({
@@ -87831,7 +88028,7 @@ const languages = [
87831
88028
  alias: ["rss", "wsdl", "xsd"],
87832
88029
  extensions: ["xml", "xsl", "xsd", "svg"],
87833
88030
  load() {
87834
- return import('./index-CLKf126y.js').then(m => m.xml());
88031
+ return import('./index-Ct9xm-pq.js').then(m => m.xml());
87835
88032
  }
87836
88033
  }),
87837
88034
  /*@__PURE__*/LanguageDescription.of({
@@ -87839,7 +88036,7 @@ const languages = [
87839
88036
  alias: ["yml"],
87840
88037
  extensions: ["yaml", "yml"],
87841
88038
  load() {
87842
- return import('./index-Cq-AQ_3n.js').then(m => m.yaml());
88039
+ return import('./index-CD0PEqJC.js').then(m => m.yaml());
87843
88040
  }
87844
88041
  }),
87845
88042
  // Legacy modes ported from CodeMirror 5
@@ -88635,13 +88832,13 @@ const languages = [
88635
88832
  name: "Vue",
88636
88833
  extensions: ["vue"],
88637
88834
  load() {
88638
- return import('./index-CuBKjTze.js').then(m => m.vue());
88835
+ return import('./index-C5otNkzD.js').then(m => m.vue());
88639
88836
  }
88640
88837
  }),
88641
88838
  /*@__PURE__*/LanguageDescription.of({
88642
88839
  name: "Angular Template",
88643
88840
  load() {
88644
- return import('./index-CYS8JdxE.js').then(m => m.angular());
88841
+ return import('./index-arKUGhuG.js').then(m => m.angular());
88645
88842
  }
88646
88843
  })
88647
88844
  ];
@@ -167092,7 +167289,7 @@ const PanelToolbar = ({
167092
167289
  content: resolution
167093
167290
  }, /*#__PURE__*/React__default.createElement(SubHeader, {
167094
167291
  text: name,
167095
- className: "text-[20px]/[20px]"
167292
+ className: "text-[20px]/[20px] text-nowrap"
167096
167293
  })), showResolution && resolution && /*#__PURE__*/React__default.createElement(Label$3, {
167097
167294
  text: `(${resolution})`,
167098
167295
  className: "text-[14px]/[14px] xl:pb-[2px]"
@@ -167368,7 +167565,7 @@ function createRenderDelaySampler() {
167368
167565
  };
167369
167566
  }
167370
167567
 
167371
- const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-CnIQYhNg.js'));
167568
+ const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-B3B1EKLu.js'));
167372
167569
  const ImagePanelBody = ({
167373
167570
  topic,
167374
167571
  frameRenderedEvent,
@@ -167445,25 +167642,24 @@ const ImagePanel = /*#__PURE__*/React__default.memo(function ImagePanel(props) {
167445
167642
  // This Source Code Form is subject to the terms of the Mozilla Public
167446
167643
  // License, v2.0. If a copy of the MPL was not distributed with this
167447
167644
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
167448
-
167449
167645
  const DEFAULT_CAMERA_STATE = {
167450
- distance: -500,
167451
- perspective: localStorage.getItem("perspective") ? localStorage.getItem("perspective") === "true" : true,
167452
- phi: 89,
167453
- target: [0, 0, 0],
167454
- targetOffset: [0, 0, 0],
167455
- targetOrientation: [0, 1, 1, 1],
167456
- thetaOffset: 180,
167457
- fovy: 60,
167458
- near: 2,
167459
- far: 20000
167646
+ distance: -500,
167647
+ perspective: true,
167648
+ phi: 89,
167649
+ target: [0, 0, 0],
167650
+ targetOffset: [0, 0, 0],
167651
+ targetOrientation: [0, 1, 1, 1],
167652
+ thetaOffset: 180,
167653
+ fovy: 60,
167654
+ near: 2,
167655
+ far: 20000,
167460
167656
  };
167461
167657
 
167462
167658
  // This Source Code Form is subject to the terms of the Mozilla Public
167463
167659
  // License, v2.0. If a copy of the MPL was not distributed with this
167464
167660
  // file, You can obtain one at http://mozilla.org/MPL/2.0/
167465
167661
 
167466
- const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-Dz5WEhSI.js'));
167662
+ const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-HZpBmPlK.js'));
167467
167663
  const PointCloudPanelBody = ({
167468
167664
  topic,
167469
167665
  frameRenderedEvent,
@@ -167572,4 +167768,4 @@ const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPane
167572
167768
  }));
167573
167769
  });
167574
167770
 
167575
- export { LRLanguage as $, AnalyticsContext as A, PlayerCapabilities as B, assertNever as C, PlayerPresence as D, ErrorDisplay as E, isEqual as F, isDesktopApp as G, createTheme$1 as H, propTypesExports as I, DEFAULT_CAMERA_STATE as J, format as K, LeftSidebarItemKeys as L, z as M, serializeError as N, stringify$3 as O, PropTypes as P, createIntl as Q, RightSidebarItemKeys as R, Stack$1 as S, createIntlCache as T, indentNodeProp as U, continuedIndent as V, WorkspaceContext as W, foldNodeProp as X, styleTags as Y, tags$1 as Z, _extends$3 as _, AppEvent as a, LanguageSupport as a0, ExternalTokenizer as a1, LRParser as a2, ifNotIn as a3, completeFromList as a4, syntaxTree as a5, flatIndent as a6, delimitedIndent as a7, foldInside as a8, ContextTracker as a9, LocalTokenGroup as aa, snippetCompletion as ab, IterMode as ac, NodeWeakMap as ad, defineCSSCompletionSource as ae, EditorView as af, EditorSelection as ag, html$4 as ah, parseMixed as ai, bracketMatchingHandle as aj, javascriptLanguage as ak, VisualizerConnection as al, VisualizerContext as am, PanelLayout as an, ImagePanel as ao, PointCloudPanel as ap, constructKeyForTopicRenderMetrics as aq, globalInputEventMetricsManager as ar, globalDecodeMetricsManager as as, globalRenderMetricsManager as at, globalThroughputMetricsManager as au, FrameStore as av, getIMUEventEmitter as aw, baseSet as b, createAggregator as c, useTranslation as d, usePanelCatalog as e, flatRest as f, generateUtilityClass as g, EmptyState as h, isEmpty as i, PanelContext as j, PanelCatalogContext as k, usePanelStateStore as l, makeStyles as m, useDefaultPanelTitle as n, useWorkspaceStore as o, WorkspaceStoreSelectors as p, difference as q, usePanelContext as r, useMessagePipeline as s, useHoverValue as t, useAnalytics as u, v4 as v, useSetHoverValue as w, useClearHoverValue as x, useMessagePipelineGetter as y, usePanelSettingsTreeUpdate as z };
167771
+ export { ExternalTokenizer as $, AnalyticsContext as A, assertNever as B, PlayerPresence as C, isEqual as D, ErrorDisplay as E, isDesktopApp as F, createTheme$1 as G, propTypesExports as H, format as I, z as J, serializeError as K, LeftSidebarItemKeys as L, stringify$3 as M, createIntl as N, createIntlCache as O, PropTypes as P, indentNodeProp as Q, RightSidebarItemKeys as R, Stack$2 as S, continuedIndent as T, foldNodeProp as U, styleTags as V, WorkspaceContext as W, tags$1 as X, LRLanguage as Y, LanguageSupport as Z, _extends$3 as _, AppEvent as a, LRParser as a0, ifNotIn as a1, completeFromList as a2, syntaxTree as a3, flatIndent as a4, delimitedIndent as a5, foldInside as a6, ContextTracker as a7, LocalTokenGroup as a8, snippetCompletion as a9, IterMode as aa, NodeWeakMap as ab, defineCSSCompletionSource as ac, EditorView as ad, EditorSelection as ae, html$4 as af, parseMixed as ag, bracketMatchingHandle as ah, javascriptLanguage as ai, VisualizerConnection as aj, VisualizerContext as ak, PanelLayout as al, ImagePanel as am, PointCloudPanel as an, constructKeyForTopicRenderMetrics as ao, globalInputEventMetricsManager as ap, globalDecodeMetricsManager as aq, globalRenderMetricsManager as ar, globalThroughputMetricsManager as as, FrameStore as at, getIMUEventEmitter as au, baseSet as b, createAggregator as c, useTranslation as d, usePanelCatalog as e, flatRest as f, generateUtilityClass as g, PanelContext as h, isEmpty as i, PanelCatalogContext as j, usePanelStateStore as k, useDefaultPanelTitle as l, makeStyles as m, useWorkspaceStore as n, WorkspaceStoreSelectors as o, difference as p, usePanelContext as q, useMessagePipeline as r, useHoverValue as s, useSetHoverValue as t, useAnalytics as u, v4 as v, useClearHoverValue as w, useMessagePipelineGetter as x, usePanelSettingsTreeUpdate as y, PlayerCapabilities as z };