vim-web 0.5.0-dev.21 → 0.5.0-dev.23

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.
package/dist/vim-web.js CHANGED
@@ -55390,7 +55390,7 @@ class RenderScene {
55390
55390
  }
55391
55391
  unparent2dObjects(target) {
55392
55392
  if (target instanceof Group) {
55393
- for (const child of target.children) {
55393
+ for (const child of [...target.children]) {
55394
55394
  if (child instanceof CSS2DObject) {
55395
55395
  target.remove(child);
55396
55396
  }
@@ -55565,6 +55565,7 @@ class Selection {
55565
55565
  }
55566
55566
  add(objectOrObjects) {
55567
55567
  if (!this.enabled) return;
55568
+ if (!objectOrObjects) return;
55568
55569
  const objects = this.toArray(objectOrObjects);
55569
55570
  let changed = false;
55570
55571
  for (const obj of objects) {
@@ -61559,80 +61560,72 @@ const index$6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
61559
61560
  Ultra: index$7,
61560
61561
  Webgl: index$8
61561
61562
  }, Symbol.toStringTag, { value: "Module" }));
61562
- const sectionSelection = "controlBar.sectionSelection";
61563
- const sectionCamera = "controlBar.sectionCamera";
61564
- const sectionInputs = "controlBar.sectionInputs";
61565
- const sectionActions = "controlBar.sectionActions";
61566
- const sectionTools = "controlBar.sectionTools";
61567
- const sectionSettings = "controlBar.sectionSettings";
61568
- const sectionMeasure = "controlBar.sectionMeasure";
61569
- const sectionSectionBox = "controlBar.sectionSectionBox";
61570
- const buttonCameraFrameSelection = "controlBar.camera.frameSelection";
61571
- const buttonCameraFrameScene = "controlBar.camera.frameScene";
61572
- const buttonCameraAuto = "controlBar.camera.auto";
61573
- const buttonCameraOrbit = "controlBar.camera.orbit";
61574
- const buttonCameraLook = "controlBarcamera.look";
61575
- const buttonCameraPan = "controlBar.camera.pan";
61576
- const buttonCameraZoom = "controlBar.camera.zoom";
61577
- const buttonCameraZoomWindow = "controlBar.camera.zoomWindow";
61578
- const buttonProjectInspector = "controlBar.projectInspector";
61579
- const buttonSettings = "controlBar.settings";
61580
- const buttonHelp = "controlBar.help";
61581
- const buttonMaximize = "controlBar.maximize";
61582
- const buttonClearSelection = "controlBar.action.clearSelection";
61583
- const buttonShowAll = "controlBar.selection.showAll";
61584
- const buttonIsolateSelection = "controlBar.selection.isolate";
61585
- const buttonHideSelection = "controlBar.selection.hide";
61586
- const buttonShowSelection = "controlBar.selection.show";
61587
- const buttonAutoIsolate = "controlBar.selection.autoIsolate";
61588
- const buttonIsolationSettings = "controlBar.selection.isolationSettings";
61589
- const buttonRenderSettings = "controlBar.action.renderSettings";
61590
- const buttonSectionBox = "controlBar.sectionBox";
61591
- const buttonMeasure = "controlBar.measure";
61592
- const buttonSectionBoxEnable = "controlBar.sectionBox.enable";
61593
- const buttonSectionBoxVisible = "controlBar.sectionBox.visible";
61594
- const buttonSectionBoxToSelection = "controlBar.sectionBox.sectionSelection";
61595
- const buttonSectionBoxToScene = "controlBar.sectionBox.sectionScene";
61596
- const buttonSectionBoxAuto = "controlBar.sectionBox.auto";
61597
- const buttonSectionBoxSettings = "controlBar.sectionBox.settings";
61563
+ const cameraSpan = "controlBar.cameraSpan";
61564
+ const cameraFrameSelection = "controlBar.cameraFrameSelection";
61565
+ const cameraFrameScene = "controlBar.cameraFrameScene";
61566
+ const cameraAuto = "controlBar.cameraAuto";
61567
+ const cursorSpan = "controlBar.cursorSpan";
61568
+ const cursorOrbit = "controlBar.cursorOrbit";
61569
+ const cursorLook = "controlBar.cursorLook";
61570
+ const cursorPan = "controlBar.cursorPan";
61571
+ const cursorZoom = "controlBar.cursorZoom";
61572
+ const cursorZoomWindow = "controlBar.cursorZoomWindow";
61573
+ const visibilitySpan = "controlBar.visibilitySpan";
61574
+ const visibilityClearSelection = "controlBar.visibilityClearSelection";
61575
+ const visibilityShowAll = "controlBar.visibilityShowAll";
61576
+ const visibilityIsolateSelection = "controlBar.visibilityIsolateSelection";
61577
+ const visibilityHideSelection = "controlBar.visibilityHideSelection";
61578
+ const visibilityShowSelection = "controlBar.visibilityShowSelection";
61579
+ const visibilityAutoIsolate = "controlBar.visibilityAutoIsolate";
61580
+ const visibilitySettings = "controlBar.visibilitySettings";
61581
+ const sectioningSpan = "controlBar.sectioningSpan";
61582
+ const sectioningEnable = "controlBar.sectioningEnable";
61583
+ const sectioningVisible = "controlBar.sectioningVisible";
61584
+ const sectioningFitSelection = "controlBar.sectioningFitSelection";
61585
+ const sectioningFitScene = "controlBar.sectioningFitScene";
61586
+ const sectioningAuto = "controlBar.sectioningAuto";
61587
+ const sectioningSettings = "controlBar.sectioningSettings";
61588
+ const measureSpan = "controlBar.measureSpan";
61589
+ const measureEnable = "controlBar.measureEnable";
61590
+ const miscSpan = "controlBar.miscSpan";
61591
+ const miscInspector = "controlBar.miscInspector";
61592
+ const miscSettings = "controlBar.miscSettings";
61593
+ const miscHelp = "controlBar.miscHelp";
61594
+ const miscMaximize = "controlBar.miscMaximize";
61598
61595
  const controlBarIds = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
61599
61596
  __proto__: null,
61600
- buttonAutoIsolate,
61601
- buttonCameraAuto,
61602
- buttonCameraFrameScene,
61603
- buttonCameraFrameSelection,
61604
- buttonCameraLook,
61605
- buttonCameraOrbit,
61606
- buttonCameraPan,
61607
- buttonCameraZoom,
61608
- buttonCameraZoomWindow,
61609
- buttonClearSelection,
61610
- buttonHelp,
61611
- buttonHideSelection,
61612
- buttonIsolateSelection,
61613
- buttonIsolationSettings,
61614
- buttonMaximize,
61615
- buttonMeasure,
61616
- buttonProjectInspector,
61617
- buttonRenderSettings,
61618
- buttonSectionBox,
61619
- buttonSectionBoxAuto,
61620
- buttonSectionBoxEnable,
61621
- buttonSectionBoxSettings,
61622
- buttonSectionBoxToScene,
61623
- buttonSectionBoxToSelection,
61624
- buttonSectionBoxVisible,
61625
- buttonSettings,
61626
- buttonShowAll,
61627
- buttonShowSelection,
61628
- sectionActions,
61629
- sectionCamera,
61630
- sectionInputs,
61631
- sectionMeasure,
61632
- sectionSectionBox,
61633
- sectionSelection,
61634
- sectionSettings,
61635
- sectionTools
61597
+ cameraAuto,
61598
+ cameraFrameScene,
61599
+ cameraFrameSelection,
61600
+ cameraSpan,
61601
+ cursorLook,
61602
+ cursorOrbit,
61603
+ cursorPan,
61604
+ cursorSpan,
61605
+ cursorZoom,
61606
+ cursorZoomWindow,
61607
+ measureEnable,
61608
+ measureSpan,
61609
+ miscHelp,
61610
+ miscInspector,
61611
+ miscMaximize,
61612
+ miscSettings,
61613
+ miscSpan,
61614
+ sectioningAuto,
61615
+ sectioningEnable,
61616
+ sectioningFitScene,
61617
+ sectioningFitSelection,
61618
+ sectioningSettings,
61619
+ sectioningSpan,
61620
+ sectioningVisible,
61621
+ visibilityAutoIsolate,
61622
+ visibilityClearSelection,
61623
+ visibilityHideSelection,
61624
+ visibilityIsolateSelection,
61625
+ visibilitySettings,
61626
+ visibilityShowAll,
61627
+ visibilityShowSelection,
61628
+ visibilitySpan
61636
61629
  }, Symbol.toStringTag, { value: "Module" }));
61637
61630
  const baseSectionStyle = "vc-flex vc-items-center vc-rounded-full vc-mb-2 vc-shadow-md";
61638
61631
  const sectionDefaultStyle = baseSectionStyle + " vc-bg-white";
@@ -67612,75 +67605,75 @@ const Style = style;
67612
67605
  const Ids$2 = controlBarIds;
67613
67606
  function controlBarSectionBox(section, hasSelection, settings2) {
67614
67607
  return {
67615
- id: Ids$2.sectionSectionBox,
67608
+ id: Ids$2.sectioningSpan,
67616
67609
  style: section.enable.get() ? Style.sectionNoPadStyle : Style.sectionDefaultStyle,
67617
67610
  //enable: () => section.getEnable(),
67618
67611
  buttons: [
67619
67612
  {
67620
- id: Ids$2.buttonSectionBoxEnable,
67613
+ id: Ids$2.sectioningEnable,
67621
67614
  enabled: () => isTrue(settings2.sectioningEnable),
67622
67615
  tip: "Enable Section Box",
67623
67616
  isOn: () => section.enable.get(),
67624
- style: (on) => Style.buttonExpandStyle(on),
67617
+ style: Style.buttonExpandStyle,
67625
67618
  action: () => section.enable.set(!section.enable.get()),
67626
67619
  icon: sectionBox
67627
67620
  },
67628
67621
  {
67629
- id: Ids$2.buttonSectionBoxToSelection,
67622
+ id: Ids$2.sectioningFitSelection,
67630
67623
  tip: "Fit Section",
67631
67624
  enabled: () => section.enable.get() && isTrue(settings2.sectioningFitToSelection),
67632
67625
  isOn: () => hasSelection,
67633
- style: (on) => Style.buttonDisableStyle(on),
67626
+ style: Style.buttonDisableStyle,
67634
67627
  action: () => section.sectionSelection.call(),
67635
67628
  icon: sectionBoxShrink
67636
67629
  },
67637
67630
  {
67638
- id: Ids$2.buttonSectionBoxToScene,
67631
+ id: Ids$2.sectioningFitScene,
67639
67632
  tip: "Reset Section",
67640
67633
  enabled: () => section.enable.get() && isTrue(settings2.sectioningReset),
67641
- style: (on) => Style.buttonDefaultStyle(on),
67634
+ style: Style.buttonDefaultStyle,
67642
67635
  action: () => section.sectionScene.call(),
67643
67636
  icon: sectionBoxReset
67644
67637
  },
67645
67638
  {
67646
- id: Ids$2.buttonSectionBoxVisible,
67639
+ id: Ids$2.sectioningVisible,
67647
67640
  tip: "Show Section Box",
67648
67641
  enabled: () => section.enable.get() && isTrue(settings2.sectioningShow),
67649
67642
  isOn: () => section.visible.get(),
67650
- style: (on) => Style.buttonDefaultStyle(on),
67643
+ style: Style.buttonDefaultStyle,
67651
67644
  action: () => section.visible.set(!section.visible.get()),
67652
67645
  icon: visible
67653
67646
  },
67654
67647
  {
67655
- id: Ids$2.buttonSectionBoxAuto,
67648
+ id: Ids$2.sectioningAuto,
67656
67649
  tip: "Auto Section",
67657
67650
  enabled: () => section.enable.get() && isTrue(settings2.sectioningAuto),
67658
67651
  isOn: () => section.auto.get(),
67659
- style: (on) => Style.buttonDefaultStyle(on),
67652
+ style: Style.buttonDefaultStyle,
67660
67653
  action: () => section.auto.set(!section.auto.get()),
67661
67654
  icon: sectionBoxAuto
67662
67655
  },
67663
67656
  {
67664
- id: Ids$2.buttonSectionBoxSettings,
67657
+ id: Ids$2.sectioningSettings,
67665
67658
  tip: "Section Settings",
67666
67659
  enabled: () => section.enable.get() && isTrue(settings2.sectioningSettings),
67667
67660
  isOn: () => section.showOffsetPanel.get(),
67668
- style: (on) => Style.buttonDefaultStyle(on),
67661
+ style: Style.buttonDefaultStyle,
67669
67662
  action: () => section.showOffsetPanel.set(!section.showOffsetPanel.get()),
67670
67663
  icon: slidersHoriz
67671
67664
  }
67672
67665
  ]
67673
67666
  };
67674
67667
  }
67675
- function controlBarPointer(viewer, camera2, settings2, section) {
67668
+ function controlBarPointer(viewer, settings2) {
67676
67669
  const pointer2 = getPointerState(viewer);
67677
67670
  return {
67678
- id: Ids$2.sectionInputs,
67671
+ id: Ids$2.cursorSpan,
67679
67672
  enable: () => anyUiCursorButton(settings2),
67680
67673
  style: Style.sectionDefaultStyle,
67681
67674
  buttons: [
67682
67675
  {
67683
- id: Ids$2.buttonCameraOrbit,
67676
+ id: Ids$2.cursorOrbit,
67684
67677
  enabled: () => isTrue(settings2.cursorOrbit),
67685
67678
  tip: "Orbit",
67686
67679
  action: () => pointer2.onButton(PointerMode$1.ORBIT),
@@ -67689,7 +67682,7 @@ function controlBarPointer(viewer, camera2, settings2, section) {
67689
67682
  style: Style.buttonDefaultStyle
67690
67683
  },
67691
67684
  {
67692
- id: Ids$2.buttonCameraLook,
67685
+ id: Ids$2.cursorLook,
67693
67686
  enabled: () => isTrue(settings2.cursorLookAround),
67694
67687
  tip: "Look Around",
67695
67688
  action: () => pointer2.onButton(PointerMode$1.LOOK),
@@ -67698,7 +67691,7 @@ function controlBarPointer(viewer, camera2, settings2, section) {
67698
67691
  style: Style.buttonDefaultStyle
67699
67692
  },
67700
67693
  {
67701
- id: Ids$2.buttonCameraPan,
67694
+ id: Ids$2.cursorPan,
67702
67695
  enabled: () => isTrue(settings2.cursorPan),
67703
67696
  tip: "Pan",
67704
67697
  action: () => pointer2.onButton(PointerMode$1.PAN),
@@ -67707,7 +67700,7 @@ function controlBarPointer(viewer, camera2, settings2, section) {
67707
67700
  style: Style.buttonDefaultStyle
67708
67701
  },
67709
67702
  {
67710
- id: Ids$2.buttonCameraZoom,
67703
+ id: Ids$2.cursorZoom,
67711
67704
  enabled: () => isTrue(settings2.cursorZoom),
67712
67705
  tip: "Zoom",
67713
67706
  action: () => pointer2.onButton(PointerMode$1.ZOOM),
@@ -67720,12 +67713,12 @@ function controlBarPointer(viewer, camera2, settings2, section) {
67720
67713
  }
67721
67714
  function controlBarMeasure(measure$1, settings2) {
67722
67715
  return {
67723
- id: Ids$2.sectionActions,
67716
+ id: Ids$2.measureSpan,
67724
67717
  enable: () => true,
67725
67718
  style: Style.sectionDefaultStyle,
67726
67719
  buttons: [
67727
67720
  {
67728
- id: Ids$2.buttonMeasure,
67721
+ id: Ids$2.measureEnable,
67729
67722
  enabled: () => isTrue(settings2.measureEnable),
67730
67723
  isOn: () => measure$1.active,
67731
67724
  tip: "Measuring Mode",
@@ -67736,57 +67729,57 @@ function controlBarMeasure(measure$1, settings2) {
67736
67729
  ]
67737
67730
  };
67738
67731
  }
67739
- function controlBarSettingsUltra(side, settings$1) {
67732
+ function createMiscSettingsButton(side, settings$1) {
67740
67733
  return {
67741
- id: Ids$2.sectionSettings,
67742
- enable: () => isTrue(settings$1.ui.settings),
67734
+ id: Ids$2.miscSettings,
67735
+ enabled: () => isTrue(settings$1.ui.miscSettings),
67736
+ tip: "Settings",
67737
+ action: () => side.toggleContent("settings"),
67738
+ icon: settings,
67739
+ style: Style.buttonDefaultStyle
67740
+ };
67741
+ }
67742
+ function createMiscHelpButton(modal, settings2) {
67743
+ return {
67744
+ id: Ids$2.miscHelp,
67745
+ enabled: () => isTrue(settings2.ui.miscHelp),
67746
+ tip: "Help",
67747
+ action: () => modal.help(true),
67748
+ icon: help,
67749
+ style: Style.buttonDefaultStyle
67750
+ };
67751
+ }
67752
+ function controlBarMiscUltra(modal, side, settings2) {
67753
+ return {
67754
+ id: Ids$2.miscSpan,
67755
+ enable: () => anyUltraMiscButton(settings2),
67743
67756
  style: Style.sectionDefaultStyle,
67744
67757
  buttons: [
67745
- {
67746
- id: Ids$2.buttonSettings,
67747
- enabled: () => isTrue(settings$1.ui.settings),
67748
- tip: "Settings",
67749
- action: () => side.toggleContent("settings"),
67750
- icon: settings,
67751
- style: Style.buttonDefaultStyle
67752
- }
67758
+ createMiscSettingsButton(side, settings2),
67759
+ createMiscHelpButton(modal, settings2)
67753
67760
  ]
67754
67761
  };
67755
67762
  }
67756
- function controlBarSettings(modal, side, settings$1) {
67763
+ function controlBarMisc(modal, side, settings2) {
67757
67764
  const fullScreen = getFullScreenState();
67758
67765
  return {
67759
- id: Ids$2.sectionSettings,
67760
- enable: () => anyUiSettingButton(settings$1),
67766
+ id: Ids$2.miscSpan,
67767
+ enable: () => anyWebglMiscButton(settings2),
67761
67768
  style: Style.sectionDefaultStyle,
67762
67769
  buttons: [
67763
67770
  {
67764
- id: Ids$2.buttonProjectInspector,
67765
- enabled: () => isTrue(settings$1.ui.miscProjectInspector) && (isTrue(settings$1.ui.panelBimTree) || isTrue(settings$1.ui.panelBimInfo)),
67771
+ id: Ids$2.miscInspector,
67772
+ enabled: () => showBimButton(settings2),
67766
67773
  tip: "Project Inspector",
67767
67774
  action: () => side.toggleContent("bim"),
67768
67775
  icon: treeView,
67769
67776
  style: Style.buttonDefaultStyle
67770
67777
  },
67778
+ createMiscSettingsButton(side, settings2),
67779
+ createMiscHelpButton(modal, settings2),
67771
67780
  {
67772
- id: Ids$2.buttonSettings,
67773
- enabled: () => isTrue(settings$1.ui.miscSettings),
67774
- tip: "Settings",
67775
- action: () => side.toggleContent("settings"),
67776
- icon: settings,
67777
- style: Style.buttonDefaultStyle
67778
- },
67779
- {
67780
- id: Ids$2.buttonHelp,
67781
- enabled: () => isTrue(settings$1.ui.miscHelp),
67782
- tip: "Help",
67783
- action: () => modal.help(true),
67784
- icon: help,
67785
- style: Style.buttonDefaultStyle
67786
- },
67787
- {
67788
- id: Ids$2.buttonMaximize,
67789
- enabled: () => isTrue(settings$1.ui.miscMaximise) && settings$1.capacity.canGoFullScreen,
67781
+ id: Ids$2.miscMaximize,
67782
+ enabled: () => isTrue(settings2.ui.miscMaximise) && settings2.capacity.canGoFullScreen,
67790
67783
  tip: fullScreen.get() ? "Minimize" : "Fullscreen",
67791
67784
  action: () => fullScreen.toggle(),
67792
67785
  icon: fullScreen.get() ? minimize : fullsScreen,
@@ -67797,12 +67790,12 @@ function controlBarSettings(modal, side, settings$1) {
67797
67790
  }
67798
67791
  function controlBarCamera(camera2, settings2) {
67799
67792
  return {
67800
- id: Ids$2.sectionCamera,
67793
+ id: Ids$2.cameraSpan,
67801
67794
  enable: () => true,
67802
67795
  style: Style.sectionDefaultStyle,
67803
67796
  buttons: [
67804
67797
  {
67805
- id: Ids$2.buttonCameraAuto,
67798
+ id: Ids$2.cameraAuto,
67806
67799
  enabled: () => isTrue(settings2.cameraAuto),
67807
67800
  tip: "Auto Camera",
67808
67801
  isOn: () => camera2.autoCamera.get(),
@@ -67811,7 +67804,7 @@ function controlBarCamera(camera2, settings2) {
67811
67804
  style: Style.buttonDefaultStyle
67812
67805
  },
67813
67806
  {
67814
- id: Ids$2.buttonCameraFrameSelection,
67807
+ id: Ids$2.cameraFrameSelection,
67815
67808
  enabled: () => isTrue(settings2.cameraFrameSelection),
67816
67809
  tip: "Frame Selection",
67817
67810
  action: () => camera2.frameSelection.call(),
@@ -67820,7 +67813,7 @@ function controlBarCamera(camera2, settings2) {
67820
67813
  style: Style.buttonDefaultStyle
67821
67814
  },
67822
67815
  {
67823
- id: Ids$2.buttonCameraFrameScene,
67816
+ id: Ids$2.cameraFrameScene,
67824
67817
  enabled: () => isTrue(settings2.cameraFrameScene),
67825
67818
  tip: "Frame All",
67826
67819
  action: () => camera2.frameScene.call(),
@@ -67835,12 +67828,12 @@ function controlBarVisibility(isolation, settings2) {
67835
67828
  const adapter = isolation.adapter.current;
67836
67829
  const someVisible = adapter.hasVisibleSelection() || !adapter.hasHiddenSelection();
67837
67830
  return {
67838
- id: Ids$2.sectionSelection,
67831
+ id: Ids$2.visibilitySpan,
67839
67832
  enable: () => true,
67840
- style: `${Style.sectionDefaultStyle}`,
67833
+ style: Style.sectionDefaultStyle,
67841
67834
  buttons: [
67842
67835
  {
67843
- id: Ids$2.buttonClearSelection,
67836
+ id: Ids$2.visibilityClearSelection,
67844
67837
  enabled: () => isTrue(settings2.visibilityClearSelection),
67845
67838
  tip: "Clear Selection",
67846
67839
  action: () => adapter.clearSelection(),
@@ -67849,7 +67842,7 @@ function controlBarVisibility(isolation, settings2) {
67849
67842
  style: Style.buttonDisableDefaultStyle
67850
67843
  },
67851
67844
  {
67852
- id: Ids$2.buttonShowAll,
67845
+ id: Ids$2.visibilityShowAll,
67853
67846
  tip: "Show All",
67854
67847
  enabled: () => isTrue(settings2.visibilityShowAll),
67855
67848
  action: () => adapter.showAll(),
@@ -67858,7 +67851,7 @@ function controlBarVisibility(isolation, settings2) {
67858
67851
  style: Style.buttonDisableStyle
67859
67852
  },
67860
67853
  {
67861
- id: Ids$2.buttonHideSelection,
67854
+ id: Ids$2.visibilityHideSelection,
67862
67855
  enabled: () => someVisible && isTrue(settings2.visibilityToggle),
67863
67856
  tip: "Hide Selection",
67864
67857
  action: () => adapter.hideSelection(),
@@ -67867,7 +67860,7 @@ function controlBarVisibility(isolation, settings2) {
67867
67860
  style: Style.buttonDisableStyle
67868
67861
  },
67869
67862
  {
67870
- id: Ids$2.buttonShowSelection,
67863
+ id: Ids$2.visibilityShowSelection,
67871
67864
  enabled: () => !someVisible && isTrue(settings2.visibilityToggle),
67872
67865
  tip: "Show Selection",
67873
67866
  action: () => adapter.showSelection(),
@@ -67876,7 +67869,7 @@ function controlBarVisibility(isolation, settings2) {
67876
67869
  style: Style.buttonDisableStyle
67877
67870
  },
67878
67871
  {
67879
- id: Ids$2.buttonIsolateSelection,
67872
+ id: Ids$2.visibilityIsolateSelection,
67880
67873
  enabled: () => isTrue(settings2.visibilityIsolate),
67881
67874
  tip: "Isolate Selection",
67882
67875
  action: () => adapter.isolateSelection(),
@@ -67885,7 +67878,7 @@ function controlBarVisibility(isolation, settings2) {
67885
67878
  style: Style.buttonDisableStyle
67886
67879
  },
67887
67880
  {
67888
- id: Ids$2.buttonAutoIsolate,
67881
+ id: Ids$2.visibilityAutoIsolate,
67889
67882
  enabled: () => isTrue(settings2.visibilityAutoIsolate),
67890
67883
  tip: "Auto Isolate",
67891
67884
  action: () => isolation.autoIsolate.set(!isolation.autoIsolate.get()),
@@ -67893,7 +67886,7 @@ function controlBarVisibility(isolation, settings2) {
67893
67886
  icon: autoIsolate
67894
67887
  },
67895
67888
  {
67896
- id: Ids$2.buttonIsolationSettings,
67889
+ id: Ids$2.visibilitySettings,
67897
67890
  enabled: () => isTrue(settings2.visibilitySettings),
67898
67891
  tip: "Isolation Settings",
67899
67892
  action: () => isolation.showPanel.set(!isolation.showPanel.get()),
@@ -67906,22 +67899,31 @@ function controlBarVisibility(isolation, settings2) {
67906
67899
  function useControlBar(viewer, camera2, modal, side, cursor, settings2, section, isolationRef, customization) {
67907
67900
  const measure2 = getMeasureState(viewer, cursor);
67908
67901
  let controlBarSections = [
67909
- controlBarPointer(viewer, camera2, settings2.ui),
67902
+ controlBarPointer(viewer, settings2.ui),
67910
67903
  controlBarCamera(camera2, settings2.ui),
67911
67904
  controlBarVisibility(isolationRef, settings2.ui),
67912
67905
  controlBarMeasure(measure2, settings2.ui),
67913
67906
  controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
67914
- controlBarSettings(modal, side, settings2)
67907
+ controlBarMisc(modal, side, settings2)
67915
67908
  ];
67916
67909
  controlBarSections = (customization == null ? void 0 : customization(controlBarSections)) ?? controlBarSections;
67917
67910
  return controlBarSections;
67918
67911
  }
67912
+ function showBimButton(settings2) {
67913
+ if (isFalse(settings2.ui.miscProjectInspector)) return false;
67914
+ if (isTrue(settings2.ui.panelBimTree)) return true;
67915
+ if (isTrue(settings2.ui.panelBimInfo)) return true;
67916
+ return false;
67917
+ }
67919
67918
  function anyUiCursorButton(settings2) {
67920
67919
  return isTrue(settings2.cursorOrbit) || isTrue(settings2.cursorLookAround) || isTrue(settings2.cursorPan) || isTrue(settings2.cursorZoom);
67921
67920
  }
67922
- function anyUiSettingButton(settings2) {
67921
+ function anyWebglMiscButton(settings2) {
67923
67922
  return isTrue(settings2.ui.miscProjectInspector) || isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp) || isTrue(settings2.ui.miscMaximise);
67924
67923
  }
67924
+ function anyUltraMiscButton(settings2) {
67925
+ return isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp);
67926
+ }
67925
67927
  function RestOfScreen(props) {
67926
67928
  const [, setVersion] = useState(0);
67927
67929
  const resizeObserver = useRef();
@@ -74808,7 +74810,7 @@ const errorStyle = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
74808
74810
  }, Symbol.toStringTag, { value: "Module" }));
74809
74811
  function fileOpeningError(url) {
74810
74812
  return {
74811
- title: "File Opening Error",
74813
+ title: "VIM Ultra File Error",
74812
74814
  body: serverFileOpeningErrorBody(url),
74813
74815
  footer: footer$1(),
74814
74816
  canClose: false
@@ -74816,12 +74818,8 @@ function fileOpeningError(url) {
74816
74818
  }
74817
74819
  function serverFileOpeningErrorBody(url) {
74818
74820
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74819
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74820
- "Oops, it appears that there's an ",
74821
- bold("error opening the VIM file"),
74822
- ". Please check the file exists at the path noted below."
74823
- ] })),
74824
- subTitle("Error details:"),
74821
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error opening the VIM file in VIM Ultra." })),
74822
+ subTitle("Details"),
74825
74823
  dotList([bullet("File path:", url)])
74826
74824
  ] });
74827
74825
  }
@@ -74830,7 +74828,7 @@ function serverFileDownloadingError(url, authToken, server) {
74830
74828
  return fileOpeningError(url);
74831
74829
  }
74832
74830
  return {
74833
- title: "File Downloading Error",
74831
+ title: "VIM Ultra Download Error",
74834
74832
  body: body$5(url, authToken, server),
74835
74833
  footer: footer$1(),
74836
74834
  canClose: false
@@ -74838,28 +74836,23 @@ function serverFileDownloadingError(url, authToken, server) {
74838
74836
  }
74839
74837
  function body$5(url, authToken, server) {
74840
74838
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74841
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74842
- "Oops, it appears that there’s an ",
74843
- bold("error downloading the VIM file"),
74844
- ". Please check the following conditions to get back up and running quickly."
74845
- ] })),
74846
- subTitle("Error details:"),
74839
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error downloading the VIM file in VIM Ultra." })),
74840
+ subTitle("Details"),
74847
74841
  dotList([
74848
- server ? bullet("VIM ULTRA Server:", server) : null,
74849
- bullet("File URL:", url),
74850
- authToken ? bullet("Auth Token:", authToken) : null
74842
+ server ? bullet("VIM Ultra:", server) : null,
74843
+ bullet("VIM URL:", url),
74844
+ authToken ? bullet("Access Token:", authToken) : null
74851
74845
  ]),
74852
- subTitle("Troubleshooting tips:"),
74846
+ subTitle("Tips"),
74853
74847
  numList([
74854
- "Make sure the VIM exists at the url listed above.",
74855
- "Reprocess the VIM file and refresh the Power BI report dataset.",
74856
- server ? "Check network access policies to allow the VIM Ultra Server access to the VIM File url." : ""
74848
+ "Ensure the VIM URL is valid",
74849
+ "Check your network connection and access policies"
74857
74850
  ])
74858
74851
  ] });
74859
74852
  }
74860
74853
  function serverFileLoadingError(url) {
74861
74854
  return {
74862
- title: "File Loading Error",
74855
+ title: "VIM Ultra Loading Error",
74863
74856
  body: body$4(url),
74864
74857
  footer: footer$1(),
74865
74858
  canClose: false
@@ -74867,30 +74860,20 @@ function serverFileLoadingError(url) {
74867
74860
  }
74868
74861
  function body$4(url) {
74869
74862
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74870
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74871
- "Oops, it appears that we ",
74872
- bold("couldn’t load the VIM file"),
74873
- ". This could be due to a couple of reasons, including that the file could be corrupt or not recognizable."
74874
- ] })),
74875
- subTitle("Error details:"),
74863
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error loading the VIM file in VIM Ultra." })),
74864
+ subTitle("Details"),
74876
74865
  dotList([bullet("File path:", url)]),
74877
- subTitle("Troubleshooting tips:"),
74866
+ subTitle("Tips"),
74878
74867
  numList([
74879
- "Reload this Power BI report",
74880
- "Reprocess the VIM file and refresh the Power BI report dataset"
74868
+ "Reload the page",
74869
+ "Ensure the VIM URL points to a valid VIM file",
74870
+ "Clear your VIM Ultra download cache"
74881
74871
  ])
74882
74872
  ] });
74883
74873
  }
74884
- const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
74885
- const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
74886
- const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
74887
- __proto__: null,
74888
- supportControls,
74889
- supportUltra
74890
- }, Symbol.toStringTag, { value: "Module" }));
74891
74874
  function serverConnectionError(url) {
74892
74875
  return {
74893
- title: "Connection Error",
74876
+ title: "VIM Ultra Connection",
74894
74877
  body: body$3(url, isLocalUrl(url)),
74895
74878
  footer: footer$1(),
74896
74879
  canClose: false
@@ -74898,29 +74881,17 @@ function serverConnectionError(url) {
74898
74881
  }
74899
74882
  function body$3(url, local) {
74900
74883
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74901
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74902
- "Oops, it appears that there’s an ",
74903
- bold("error connecting to the ULTRA server"),
74904
- ". Please check the following conditions to get back up and running quickly."
74905
- ] })),
74906
- subTitle("Troubleshooting tips:"),
74884
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error connecting to VIM Ultra." })),
74885
+ subTitle("Tips"),
74907
74886
  numList([
74908
- /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74909
- "Ensure that VIM Ultra",
74910
- " ",
74911
- link(supportUltra, "process is running"),
74912
- " ",
74913
- "at ",
74914
- detailText(url)
74915
- ] }),
74916
- "Check your internet connection.",
74917
- "Check firewall permissions."
74887
+ `Ensure that VIM Ultra is running at ${detailText(url)}`,
74888
+ "Check your network connection and access policies"
74918
74889
  ])
74919
74890
  ] });
74920
74891
  }
74921
74892
  function serverCompatibilityError(url, localVersion, remoteVersion) {
74922
74893
  return {
74923
- title: "Compatibility Error",
74894
+ title: "VIM Ultra Compatibility",
74924
74895
  body: body$2(url, localVersion, remoteVersion),
74925
74896
  footer: footer$1(),
74926
74897
  canClose: false
@@ -74928,28 +74899,23 @@ function serverCompatibilityError(url, localVersion, remoteVersion) {
74928
74899
  }
74929
74900
  function body$2(url, localVersion, remoteVersion) {
74930
74901
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74931
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74932
- "Oops, it appears that you’re running a ",
74933
- " ",
74934
- bold("version of VIM Ultra Server that isn’t compatible with this visual"),
74935
- ". Please check the following conditions to get back up and running quickly."
74936
- ] })),
74937
- subTitle("Error details:"),
74902
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "The VIM Ultra version is incompatible with this visual." })),
74903
+ subTitle("Details"),
74938
74904
  dotList([
74939
74905
  bullet("Url:", url),
74940
74906
  bullet("Local Version:", localVersion),
74941
74907
  bullet("Remote Version:", remoteVersion)
74942
74908
  ]),
74943
- subTitle("Troubleshooting tips:"),
74909
+ subTitle("Tips"),
74944
74910
  numList([
74945
- "Update your PowerBI visual with the compatible version.",
74946
- "Or, run the compatible version of VIM Ultra."
74911
+ "Update this visual to a compatible version.",
74912
+ "Start a compatible version of VIM Ultra."
74947
74913
  ])
74948
74914
  ] });
74949
74915
  }
74950
74916
  function serverStreamError(url) {
74951
74917
  return {
74952
- title: "Stream Error",
74918
+ title: "VIM Ultra Stream Error",
74953
74919
  body: body$1(),
74954
74920
  footer: footer$1(),
74955
74921
  canClose: false
@@ -74957,16 +74923,12 @@ function serverStreamError(url) {
74957
74923
  }
74958
74924
  function body$1(url) {
74959
74925
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74960
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74961
- "Oops, it appears that there’s an ",
74962
- bold("error starting a stream on the VIM Ultra Server"),
74963
- ". Please check the following conditions to get back up and running quickly."
74964
- ] })),
74965
- subTitle("Troubleshooting tips:"),
74926
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered a streaming error with VIM Ultra." })),
74927
+ subTitle("Tips"),
74966
74928
  numList([
74967
- "Close other applications that may be using the server.",
74968
- "Try reconnecting to the server.",
74969
- "Restart the server."
74929
+ "Reload the page",
74930
+ "Close other applications that may be using VIM Ultra",
74931
+ "Restart VIM Ultra"
74970
74932
  ])
74971
74933
  ] });
74972
74934
  }
@@ -75581,7 +75543,7 @@ function useSectionBox(adapter) {
75581
75543
  adapter.setVisible(false);
75582
75544
  adapter.setClip(false);
75583
75545
  return adapter.onSelectionChanged.sub(() => {
75584
- if (auto.get() && enable.get()) sectionSelection2.call();
75546
+ if (auto.get() && enable.get()) sectionSelection.call();
75585
75547
  });
75586
75548
  }, []);
75587
75549
  enable.useOnChange((v) => {
@@ -75589,7 +75551,7 @@ function useSectionBox(adapter) {
75589
75551
  visible2.set(v);
75590
75552
  showOffsetPanel.set(false);
75591
75553
  if (v && auto.get()) {
75592
- sectionSelection2.call();
75554
+ sectionSelection.call();
75593
75555
  } else {
75594
75556
  sectionScene.call();
75595
75557
  }
@@ -75600,7 +75562,7 @@ function useSectionBox(adapter) {
75600
75562
  sideOffset.useOnChange((v) => sectionBox2.call(boxRef.current));
75601
75563
  bottomOffset.useOnChange((v) => sectionBox2.call(boxRef.current));
75602
75564
  auto.useOnChange((v) => {
75603
- if (v) sectionSelection2.call();
75565
+ if (v) sectionSelection.call();
75604
75566
  });
75605
75567
  visible2.useOnChange((v) => adapter.setVisible(v));
75606
75568
  const sectionBox2 = useArgActionRef((box) => {
@@ -75610,7 +75572,7 @@ function useSectionBox(adapter) {
75610
75572
  const newBox = addBox(box, offsetsToBox3_(topOffset.get(), sideOffset.get(), bottomOffset.get()));
75611
75573
  adapter.setBox(newBox);
75612
75574
  });
75613
- const sectionSelection2 = useFuncRef(async () => {
75575
+ const sectionSelection = useFuncRef(async () => {
75614
75576
  const id2 = requestId.current;
75615
75577
  const box = await getSelectionBox.call() ?? await getSceneBox.call();
75616
75578
  if (requestId.current !== id2) return;
@@ -75630,7 +75592,7 @@ function useSectionBox(adapter) {
75630
75592
  topOffset,
75631
75593
  sideOffset,
75632
75594
  bottomOffset,
75633
- sectionSelection: sectionSelection2,
75595
+ sectionSelection,
75634
75596
  sectionScene,
75635
75597
  sectionBox: sectionBox2,
75636
75598
  getBox: () => adapter.getBox(),
@@ -76164,11 +76126,11 @@ __publicField(SettingsPanelKeys, "ControlBarVisibilityIsolate", "controlBar.visi
76164
76126
  __publicField(SettingsPanelKeys, "ControlBarVisibilityAutoIsolate", "controlBar.visibility.autoIsolate");
76165
76127
  __publicField(SettingsPanelKeys, "ControlBarVisibilitySettings", "controlBar.visibility.settings");
76166
76128
  // --- Control Bar - Settings ---
76167
- __publicField(SettingsPanelKeys, "ControlBarSettingsSubtitle", "controlBarSettings");
76168
- __publicField(SettingsPanelKeys, "ControlBarSettingsShowProjectInspectorButtonToggle", "projectInspector");
76169
- __publicField(SettingsPanelKeys, "ControlBarSettingsShowSettingsButtonToggle", "settingsButton");
76170
- __publicField(SettingsPanelKeys, "ControlBarSettingsShowHelpButtonToggle", "help");
76171
- __publicField(SettingsPanelKeys, "ControlBarSettingsShowMaximiseButtonToggle", "maximise");
76129
+ __publicField(SettingsPanelKeys, "ControlBarMiscSubtitle", "controlBarSettings");
76130
+ __publicField(SettingsPanelKeys, "ControlBarMiscShowProjectInspectorButtonToggle", "projectInspector");
76131
+ __publicField(SettingsPanelKeys, "ControlBarMiscShowSettingsButtonToggle", "settingsButton");
76132
+ __publicField(SettingsPanelKeys, "ControlBarMiscShowHelpButtonToggle", "help");
76133
+ __publicField(SettingsPanelKeys, "ControlBarMiscShowMaximiseButtonToggle", "maximise");
76172
76134
  function getControlBarCursorSettings() {
76173
76135
  return [
76174
76136
  {
@@ -76342,33 +76304,33 @@ function getControlBarVariousSettings() {
76342
76304
  return [
76343
76305
  {
76344
76306
  type: "subtitle",
76345
- key: SettingsPanelKeys.ControlBarSettingsSubtitle,
76307
+ key: SettingsPanelKeys.ControlBarMiscSubtitle,
76346
76308
  title: "Control Bar - Settings"
76347
76309
  },
76348
76310
  {
76349
76311
  type: "toggle",
76350
- key: SettingsPanelKeys.ControlBarSettingsShowProjectInspectorButtonToggle,
76312
+ key: SettingsPanelKeys.ControlBarMiscShowProjectInspectorButtonToggle,
76351
76313
  label: "Project Inspector",
76352
76314
  getter: (s) => s.ui.miscProjectInspector,
76353
76315
  setter: (s, v) => s.ui.miscProjectInspector = v
76354
76316
  },
76355
76317
  {
76356
76318
  type: "toggle",
76357
- key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
76319
+ key: SettingsPanelKeys.ControlBarMiscShowSettingsButtonToggle,
76358
76320
  label: "Settings",
76359
76321
  getter: (s) => s.ui.miscSettings,
76360
76322
  setter: (s, v) => s.ui.miscSettings = v
76361
76323
  },
76362
76324
  {
76363
76325
  type: "toggle",
76364
- key: SettingsPanelKeys.ControlBarSettingsShowHelpButtonToggle,
76326
+ key: SettingsPanelKeys.ControlBarMiscShowHelpButtonToggle,
76365
76327
  label: "Help",
76366
76328
  getter: (s) => s.ui.miscHelp,
76367
76329
  setter: (s, v) => s.ui.miscHelp = v
76368
76330
  },
76369
76331
  {
76370
76332
  type: "toggle",
76371
- key: SettingsPanelKeys.ControlBarSettingsShowMaximiseButtonToggle,
76333
+ key: SettingsPanelKeys.ControlBarMiscShowMaximiseButtonToggle,
76372
76334
  label: "Maximise",
76373
76335
  getter: (s) => s.ui.miscMaximise,
76374
76336
  setter: (s, v) => s.ui.miscMaximise = v
@@ -76772,12 +76734,12 @@ function useUltraSectionBox(viewer) {
76772
76734
  };
76773
76735
  return useSectionBox(ultraAdapter);
76774
76736
  }
76775
- function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, customization) {
76737
+ function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, modal, customization) {
76776
76738
  let bar = [
76777
76739
  controlBarCamera(camera2, settings2.ui),
76778
76740
  controlBarVisibility(isolation, settings2.ui),
76779
76741
  controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
76780
- controlBarSettingsUltra(side, settings2)
76742
+ controlBarMiscUltra(modal, side, settings2)
76781
76743
  ];
76782
76744
  bar = (customization == null ? void 0 : customization(bar)) ?? bar;
76783
76745
  return bar;
@@ -76929,6 +76891,9 @@ function allButSelection(viewer, vim) {
76929
76891
  function getDefaultUltraSettings() {
76930
76892
  return {
76931
76893
  ui: {
76894
+ // panels
76895
+ panelLogo: true,
76896
+ panelControlBar: true,
76932
76897
  // Control bar - cursors
76933
76898
  cursorOrbit: true,
76934
76899
  cursorLookAround: true,
@@ -76952,7 +76917,9 @@ function getDefaultUltraSettings() {
76952
76917
  visibilityIsolate: true,
76953
76918
  visibilityAutoIsolate: true,
76954
76919
  visibilitySettings: true,
76955
- settings: true
76920
+ // Control bar - misc
76921
+ miscSettings: true,
76922
+ miscHelp: true
76956
76923
  }
76957
76924
  };
76958
76925
  }
@@ -76960,15 +76927,22 @@ function getControlBarUltraSettings() {
76960
76927
  return [
76961
76928
  {
76962
76929
  type: "subtitle",
76963
- key: SettingsPanelKeys.ControlBarSettingsSubtitle,
76930
+ key: SettingsPanelKeys.ControlBarMiscSubtitle,
76964
76931
  title: "Control Bar - Settings"
76965
76932
  },
76966
76933
  {
76967
76934
  type: "toggle",
76968
- key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
76935
+ key: SettingsPanelKeys.ControlBarMiscShowSettingsButtonToggle,
76969
76936
  label: "Settings",
76970
- getter: (s) => s.ui.settings,
76971
- setter: (s, v) => s.ui.settings = v
76937
+ getter: (s) => s.ui.miscSettings,
76938
+ setter: (s, v) => s.ui.miscSettings = v
76939
+ },
76940
+ {
76941
+ type: "toggle",
76942
+ key: SettingsPanelKeys.ControlBarMiscShowHelpButtonToggle,
76943
+ label: "Help",
76944
+ getter: (s) => s.ui.miscHelp,
76945
+ setter: (s, v) => s.ui.miscHelp = v
76972
76946
  }
76973
76947
  ];
76974
76948
  }
@@ -77024,6 +76998,7 @@ function Viewer3(props) {
77024
76998
  camera2,
77025
76999
  settings2.value,
77026
77000
  side,
77001
+ modalHandle.current,
77027
77002
  (_2) => _2
77028
77003
  );
77029
77004
  useViewerInput(props.core.inputs, camera2);
@@ -77089,13 +77064,13 @@ function Viewer3(props) {
77089
77064
  ),
77090
77065
  /* @__PURE__ */ jsxRuntimeExports.jsx(RestOfScreen, { side, content: () => {
77091
77066
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
77092
- whenTrue(true, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
77067
+ whenTrue(settings2.value.ui.panelLogo, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
77093
77068
  /* @__PURE__ */ jsxRuntimeExports.jsx(Overlay, { canvas: props.core.viewport.canvas }),
77094
77069
  /* @__PURE__ */ jsxRuntimeExports.jsx(
77095
77070
  ControlBar,
77096
77071
  {
77097
77072
  content: controlBarCustom(controlBar),
77098
- show: true
77073
+ show: isTrue(settings2.value.ui.panelControlBar)
77099
77074
  }
77100
77075
  ),
77101
77076
  /* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
@@ -77140,6 +77115,13 @@ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
77140
77115
  createViewer,
77141
77116
  getDefaultUltraSettings
77142
77117
  }, Symbol.toStringTag, { value: "Module" }));
77118
+ const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
77119
+ const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
77120
+ const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
77121
+ __proto__: null,
77122
+ supportControls,
77123
+ supportUltra
77124
+ }, Symbol.toStringTag, { value: "Module" }));
77143
77125
  const SectionBoxPanel = {
77144
77126
  Ids
77145
77127
  };