@terraware/web-components 5.0.27 → 5.1.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/components/AntSwitch/index.js +19 -22
  2. package/components/Autocomplete/Autocomplete.js +106 -130
  3. package/components/Badge/index.js +28 -29
  4. package/components/BusySpinner/index.js +40 -45
  5. package/components/Button/Button.js +41 -47
  6. package/components/Checkbox.js +64 -63
  7. package/components/Confirm/index.js +74 -83
  8. package/components/DatePicker/DatePicker.js +138 -141
  9. package/components/DialogBox/DialogBox.js +111 -118
  10. package/components/Divisor.js +18 -18
  11. package/components/Dropdown.js +66 -94
  12. package/components/EditableTable/index.js +211 -271
  13. package/components/ErrorBox/ErrorBox.js +47 -49
  14. package/components/FileChooser/index.js +117 -135
  15. package/components/FormBottomBar/index.js +75 -84
  16. package/components/Icon/Icon.js +12 -20
  17. package/components/Icon/icons/index.js +256 -256
  18. package/components/IconTooltip/index.js +49 -60
  19. package/components/Map/MapBox.js +545 -452
  20. package/components/Map/MapContainer.js +25 -29
  21. package/components/Map/MapDateSliderControl.js +64 -64
  22. package/components/Map/MapDrawer.js +41 -47
  23. package/components/Map/MapLegend.js +176 -172
  24. package/components/Map/MapViewStyleControl.js +59 -63
  25. package/components/Map/ReactMapboxWrapper.js +3 -2
  26. package/components/Map/index.js +161 -180
  27. package/components/Map/types.js +12 -17
  28. package/components/Map/useMaintainLayerOrder.js +16 -26
  29. package/components/Markdown/index.js +25 -26
  30. package/components/Message/Message.js +73 -76
  31. package/components/MultiSelect/index.js +112 -124
  32. package/components/Navbar/NavFooter.js +9 -13
  33. package/components/Navbar/NavItem.js +70 -76
  34. package/components/Navbar/NavSection.js +17 -19
  35. package/components/Navbar/Navbar.js +39 -46
  36. package/components/Navbar/SubNavbar.js +9 -13
  37. package/components/Note.js +18 -22
  38. package/components/OverlayModal/OverlayModal.js +56 -63
  39. package/components/PageForm/index.js +33 -41
  40. package/components/PhotoChooser/index.js +165 -173
  41. package/components/PhotosCarousel/PhotoSlide.js +32 -35
  42. package/components/PhotosCarousel/index.js +80 -85
  43. package/components/PhotosCarousel/usePhotosCarousel.js +69 -76
  44. package/components/Pill/index.js +41 -45
  45. package/components/PillList/index.js +17 -24
  46. package/components/PlacementWrapper/index.js +38 -59
  47. package/components/PopoverMenu/Popover.js +68 -85
  48. package/components/PopoverMenu/index.js +51 -56
  49. package/components/PopoverMultiSelect/index.js +52 -59
  50. package/components/ProgressCircle/ProgressCircle.js +28 -32
  51. package/components/RadioButton.js +17 -19
  52. package/components/Select/Select.js +13 -15
  53. package/components/Select/SelectT.js +235 -250
  54. package/components/Separator/index.js +14 -17
  55. package/components/Size.js +0 -1
  56. package/components/Slider/index.js +43 -56
  57. package/components/Stepper/index.d.ts +33 -0
  58. package/components/Stepper/index.d.ts.map +1 -0
  59. package/components/Stepper/index.js +66 -0
  60. package/components/SummaryBox.js +70 -72
  61. package/components/Tabs/index.js +133 -135
  62. package/components/TextTruncated/index.js +117 -130
  63. package/components/Textfield/Textfield.js +158 -190
  64. package/components/Textfield/TruncatedTextArea.js +70 -84
  65. package/components/TimelineSlider/TimelineMarker.js +25 -30
  66. package/components/TimelineSlider/TimelineRail.js +8 -11
  67. package/components/TimelineSlider/index.js +64 -66
  68. package/components/TimelineSliderV2/ClusterBadge.js +25 -29
  69. package/components/TimelineSliderV2/TimelineDot.js +31 -35
  70. package/components/TimelineSliderV2/TimelineRail.js +8 -11
  71. package/components/TimelineSliderV2/index.js +121 -103
  72. package/components/TimelineSliderV2/layout.js +124 -147
  73. package/components/TimelineSliderV2/types.js +0 -1
  74. package/components/Tooltip/Tooltip.js +47 -56
  75. package/components/ViewPhotosDialog/index.js +28 -35
  76. package/components/VirtualWalkthrough/Annotation.js +163 -207
  77. package/components/VirtualWalkthrough/AnnotationEditPane.js +198 -184
  78. package/components/VirtualWalkthrough/AnnotationPanel.js +187 -199
  79. package/components/VirtualWalkthrough/Application.js +31 -34
  80. package/components/VirtualWalkthrough/AutoRotator.js +85 -223
  81. package/components/VirtualWalkthrough/BlockingSpinner.js +26 -28
  82. package/components/VirtualWalkthrough/BoundaryRing.js +30 -34
  83. package/components/VirtualWalkthrough/BoundaryWall.js +32 -36
  84. package/components/VirtualWalkthrough/CameraInfo.js +100 -89
  85. package/components/VirtualWalkthrough/ControlsInfoPane.js +254 -195
  86. package/components/VirtualWalkthrough/GradientSky.js +72 -73
  87. package/components/VirtualWalkthrough/SplatControls.js +209 -221
  88. package/components/VirtualWalkthrough/SplatCrop.js +21 -20
  89. package/components/VirtualWalkthrough/SplatFadeCrop.js +21 -20
  90. package/components/VirtualWalkthrough/SplatModel.js +65 -85
  91. package/components/VirtualWalkthrough/SplatRevealRain.js +41 -46
  92. package/components/VirtualWalkthrough/TfAnnotationManager.js +197 -379
  93. package/components/VirtualWalkthrough/TfXrNavigation.js +73 -162
  94. package/components/VirtualWalkthrough/VirtualWalkthroughViewer.js +438 -431
  95. package/components/VirtualWalkthrough/VrAnnotationPanel.js +18 -22
  96. package/components/VirtualWalkthrough/XrAnnotationInteraction.js +14 -17
  97. package/components/VirtualWalkthrough/XrExitButton.js +14 -17
  98. package/components/VirtualWalkthrough/XrGazeDwell.js +14 -17
  99. package/components/VirtualWalkthrough/XrPointerRay.js +14 -17
  100. package/components/VirtualWalkthrough/XrStartPose.js +67 -121
  101. package/components/VirtualWalkthrough/boundary-ring.js +87 -117
  102. package/components/VirtualWalkthrough/boundary-wall.js +175 -258
  103. package/components/VirtualWalkthrough/camera-adoption.js +18 -64
  104. package/components/VirtualWalkthrough/groundPlane.js +32 -47
  105. package/components/VirtualWalkthrough/gsplat-fade-crop-effect.js +35 -35
  106. package/components/VirtualWalkthrough/splatFormat.js +13 -47
  107. package/components/VirtualWalkthrough/useAdoptedCamera.js +23 -44
  108. package/components/VirtualWalkthrough/useRestartOnVr.js +26 -37
  109. package/components/VirtualWalkthrough/useXrRenderTuning.js +33 -54
  110. package/components/VirtualWalkthrough/vr-annotation-panel-layout.js +67 -99
  111. package/components/VirtualWalkthrough/vr-annotation-panel.js +403 -433
  112. package/components/VirtualWalkthrough/vr-annotation-scroll.js +10 -28
  113. package/components/VirtualWalkthrough/walkthrough-camera.js +204 -329
  114. package/components/VirtualWalkthrough/xr-annotation-candidate-buffer.js +39 -80
  115. package/components/VirtualWalkthrough/xr-annotation-candidates.js +6 -18
  116. package/components/VirtualWalkthrough/xr-annotation-interaction.js +31 -56
  117. package/components/VirtualWalkthrough/xr-annotation-targeting.js +22 -38
  118. package/components/VirtualWalkthrough/xr-button-arming.js +7 -17
  119. package/components/VirtualWalkthrough/xr-button-hold.js +22 -36
  120. package/components/VirtualWalkthrough/xr-exit-button-mask.js +22 -36
  121. package/components/VirtualWalkthrough/xr-exit-button.js +148 -207
  122. package/components/VirtualWalkthrough/xr-face-buttons.js +19 -29
  123. package/components/VirtualWalkthrough/xr-gaze-dwell-state.js +23 -34
  124. package/components/VirtualWalkthrough/xr-gaze-dwell.js +107 -144
  125. package/components/VirtualWalkthrough/xr-interactive-ui.js +12 -24
  126. package/components/VirtualWalkthrough/xr-pointer-ray.js +13 -20
  127. package/components/VirtualWalkthrough/xr-progress-pie-material.js +117 -88
  128. package/components/VirtualWalkthrough/xr-progress-pie.js +1 -10
  129. package/components/VirtualWalkthrough/xr-ray-quad.js +16 -30
  130. package/components/VirtualWalkthrough/xr-render-tuning.js +17 -48
  131. package/components/VirtualWalkthrough/xr-scene-bounds.js +21 -37
  132. package/components/VirtualWalkthrough/xr-start-pose.js +27 -73
  133. package/components/VirtualWalkthrough/xr-teleport-gesture.js +16 -42
  134. package/components/svg/BlobbyGrayIconImage.js +41 -39
  135. package/components/svg/BlobbyGrayIconImport.js +41 -39
  136. package/components/svg/BlobbyGrayIconUploadToTheCloud.js +41 -39
  137. package/components/svg/BlobbyIconCloudChecked.js +202 -164
  138. package/components/svg/BlobbyIconExportOrUploadPhoto.js +202 -164
  139. package/components/svg/BlobbyIconFolder.js +202 -164
  140. package/components/svg/BlobbyIconGraphReport.js +202 -164
  141. package/components/svg/BlobbyIconHappy.js +202 -164
  142. package/components/svg/BlobbyIconHeartMonitor.js +202 -164
  143. package/components/svg/BlobbyIconLeaf.js +202 -164
  144. package/components/svg/BlobbyIconLibrary.js +202 -164
  145. package/components/svg/BlobbyIconNursery.js +204 -166
  146. package/components/svg/BlobbyIconOrganization.js +202 -164
  147. package/components/svg/BlobbyIconParchment.js +202 -164
  148. package/components/svg/BlobbyIconPeople.js +202 -164
  149. package/components/svg/BlobbyIconSeedBank.js +202 -164
  150. package/components/svg/BlobbyIconSeedling.js +202 -164
  151. package/components/svg/BlobbyIconSeeds.js +202 -164
  152. package/components/svg/BlobbyIconSite.js +206 -167
  153. package/components/svg/BlobbyIconSparkles.js +202 -164
  154. package/components/svg/BlobbyIconWrench.js +202 -164
  155. package/components/svg/Bug.js +19 -21
  156. package/components/svg/Calendar.js +19 -21
  157. package/components/svg/CaretDown.js +19 -21
  158. package/components/svg/CaretLeft.js +19 -21
  159. package/components/svg/CaretRight.js +19 -21
  160. package/components/svg/CaretUp.js +19 -21
  161. package/components/svg/ChevronDown.js +19 -21
  162. package/components/svg/ChevronUp.js +19 -21
  163. package/components/svg/Close.js +19 -21
  164. package/components/svg/Critical.js +19 -21
  165. package/components/svg/Edit.js +202 -164
  166. package/components/svg/Error.js +19 -21
  167. package/components/svg/Filter.js +19 -21
  168. package/components/svg/Folder.js +19 -21
  169. package/components/svg/Help.js +19 -21
  170. package/components/svg/Home.js +19 -21
  171. package/components/svg/IconAdd.js +19 -21
  172. package/components/svg/IconArrowRight.js +21 -23
  173. package/components/svg/IconBusinessNetwork.js +19 -21
  174. package/components/svg/IconCalendar.js +19 -21
  175. package/components/svg/IconCancel.js +19 -21
  176. package/components/svg/IconChargingBattery.js +19 -21
  177. package/components/svg/IconChecklist.js +21 -23
  178. package/components/svg/IconCheckmark.js +19 -21
  179. package/components/svg/IconCoinInHand.js +19 -21
  180. package/components/svg/IconColumns.js +19 -21
  181. package/components/svg/IconComment.js +20 -22
  182. package/components/svg/IconDashboard.js +19 -21
  183. package/components/svg/IconDataMigration.js +19 -21
  184. package/components/svg/IconDocument.js +21 -23
  185. package/components/svg/IconDownloadFromTheCloud.js +21 -23
  186. package/components/svg/IconEdit.js +21 -23
  187. package/components/svg/IconExpand.js +21 -23
  188. package/components/svg/IconExport.js +19 -21
  189. package/components/svg/IconExternalLink.js +19 -21
  190. package/components/svg/IconEye.js +19 -21
  191. package/components/svg/IconEyeOff.js +19 -21
  192. package/components/svg/IconFile.js +19 -21
  193. package/components/svg/IconFolder.js +19 -21
  194. package/components/svg/IconFullScreen.js +20 -22
  195. package/components/svg/IconFutures.js +19 -21
  196. package/components/svg/IconGraphReport.js +19 -21
  197. package/components/svg/IconGrid.js +19 -21
  198. package/components/svg/IconHeartMonitor.js +19 -21
  199. package/components/svg/IconHelp.js +21 -23
  200. package/components/svg/IconHistory.js +19 -21
  201. package/components/svg/IconImport.js +19 -21
  202. package/components/svg/IconIndex.js +19 -21
  203. package/components/svg/IconLayers.js +19 -21
  204. package/components/svg/IconLibrary.js +20 -22
  205. package/components/svg/IconList.js +19 -21
  206. package/components/svg/IconLivePlant.js +19 -21
  207. package/components/svg/IconLocations.js +19 -21
  208. package/components/svg/IconMail.js +19 -21
  209. package/components/svg/IconManager.js +19 -21
  210. package/components/svg/IconMap.js +19 -21
  211. package/components/svg/IconMarker.js +19 -21
  212. package/components/svg/IconMenu.js +19 -21
  213. package/components/svg/IconMenuHorizontal.js +19 -21
  214. package/components/svg/IconModule.js +19 -21
  215. package/components/svg/IconMyLocation.js +19 -21
  216. package/components/svg/IconNote.js +21 -23
  217. package/components/svg/IconNursery.js +21 -23
  218. package/components/svg/IconOrg.js +19 -21
  219. package/components/svg/IconParchment.js +19 -21
  220. package/components/svg/IconPhoto.js +19 -21
  221. package/components/svg/IconPlantsFilled.js +19 -21
  222. package/components/svg/IconRedo.js +19 -21
  223. package/components/svg/IconRestorationSite.js +19 -21
  224. package/components/svg/IconSeedBank.js +19 -21
  225. package/components/svg/IconSeedling.js +19 -21
  226. package/components/svg/IconSettings.js +19 -21
  227. package/components/svg/IconSlice.js +19 -21
  228. package/components/svg/IconSubmit.js +19 -21
  229. package/components/svg/IconSubtract.js +21 -23
  230. package/components/svg/IconSynced.js +19 -21
  231. package/components/svg/IconTrashCan.js +19 -21
  232. package/components/svg/IconTreasureMap.js +19 -21
  233. package/components/svg/IconUnavailable.js +19 -21
  234. package/components/svg/IconUndo.js +19 -21
  235. package/components/svg/IconVariable.js +19 -21
  236. package/components/svg/IconVideo.js +30 -31
  237. package/components/svg/IconWifi.js +19 -21
  238. package/components/svg/Info.js +19 -21
  239. package/components/svg/Key.js +19 -21
  240. package/components/svg/Leaf.js +19 -21
  241. package/components/svg/Lock.js +19 -21
  242. package/components/svg/Logo.js +48 -43
  243. package/components/svg/MenuVertical.js +19 -21
  244. package/components/svg/Notification.js +19 -21
  245. package/components/svg/Person.js +19 -21
  246. package/components/svg/Plus.js +19 -21
  247. package/components/svg/RestorationSite.js +19 -21
  248. package/components/svg/Search.js +19 -21
  249. package/components/svg/Seeds.js +19 -21
  250. package/components/svg/Site.js +19 -21
  251. package/components/svg/Sparkles.js +19 -21
  252. package/components/svg/Species.js +19 -21
  253. package/components/svg/Species2.js +202 -164
  254. package/components/svg/Spinner.js +54 -48
  255. package/components/svg/Star.js +19 -21
  256. package/components/svg/Success.js +19 -21
  257. package/components/svg/SuccessFilled.js +19 -21
  258. package/components/svg/TerrawareLogoDesktop.js +55 -49
  259. package/components/svg/TerrawareLogoMobile.js +25 -26
  260. package/components/svg/Touchscreen.js +19 -21
  261. package/components/svg/UploadCloud.js +202 -164
  262. package/components/svg/Warning.js +19 -21
  263. package/components/svg/WelcomeClipboard.js +156 -133
  264. package/components/svg/index.js +129 -129
  265. package/components/table/EnhancedTableToolbar.js +68 -74
  266. package/components/table/EnhancedTableToolbarV2.js +31 -41
  267. package/components/table/TableCellRenderer.js +196 -231
  268. package/components/table/TableHeader.js +71 -73
  269. package/components/table/TableHeaderItem.js +97 -102
  270. package/components/table/density.js +18 -19
  271. package/components/table/index.js +350 -369
  272. package/components/table/sort.js +27 -52
  273. package/components/table/types.js +0 -1
  274. package/components/types/index.js +0 -1
  275. package/hooks/cameraEntityContext.js +2 -13
  276. package/hooks/useBoolean.js +17 -13
  277. package/hooks/useCameraPosition.js +56 -56
  278. package/hooks/useDevicePerformance.js +17 -17
  279. package/hooks/useXr.js +85 -87
  280. package/index.d.ts +3 -1
  281. package/index.d.ts.map +1 -1
  282. package/index.js +59 -58
  283. package/package.json +1 -1
  284. package/setupTests.js +0 -4
  285. package/strings/csv/en.csv +1 -0
  286. package/strings/csv/es.csv +1 -0
  287. package/strings/csv/fr.csv +1 -0
  288. package/strings/export.js +111 -170
  289. package/strings/index.js +25 -54
  290. package/strings/locales.js +21 -41
  291. package/strings/strings-en.d.ts +1 -0
  292. package/strings/strings-en.d.ts.map +1 -1
  293. package/strings/strings-en.js +50 -51
  294. package/strings/strings-es.d.ts +1 -0
  295. package/strings/strings-es.d.ts.map +1 -1
  296. package/strings/strings-es.js +50 -51
  297. package/strings/strings-fr.d.ts +1 -0
  298. package/strings/strings-fr.d.ts.map +1 -1
  299. package/strings/strings-fr.js +50 -51
  300. package/strings/strings-gx.d.ts +1 -0
  301. package/strings/strings-gx.d.ts.map +1 -1
  302. package/strings/strings-gx.js +50 -51
  303. package/style-dictionary-dist/TerrawareTheme.js +186 -186
  304. package/theme.js +74 -76
  305. package/utils/color.js +8 -15
  306. package/utils/date.js +42 -108
  307. package/utils/index.js +4 -4
  308. package/utils/preventDefaultEvent.js +3 -3
  309. package/utils/text.js +11 -11
  310. package/utils/useDeviceInfo.js +42 -79
  311. package/virtualWalkthrough.js +23 -23
@@ -1,91 +1,102 @@
1
- import { useState, useEffect } from 'react';
2
- import { useTheme, Box, Typography } from '@mui/material';
3
- import { useStrings } from '../../strings/index.js';
4
- import { getRgbaFromHex } from '../../utils/color.js';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
-
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Box, Typography, useTheme } from "@mui/material";
4
+ import { useStrings } from "../../strings/index.js";
5
+ import { getRgbaFromHex } from "../../utils/color.js";
7
6
  const UPDATE_FREQUENCY_MS = 200;
8
- const COORDINATE_LABELS = ['X', 'Y', 'Z'];
9
- const formatNumber = num => num.toFixed(6);
10
- const CoordinateDisplay = ({
11
- label,
12
- coordinates,
13
- textColor
14
- }) => /*#__PURE__*/jsxs(Box, {
15
- children: [/*#__PURE__*/jsxs(Typography, {
16
- variant: "caption",
17
- sx: {
18
- color: textColor,
19
- fontWeight: 'bold'
20
- },
21
- children: [label, ":"]
22
- }), coordinates.map((value, index) => /*#__PURE__*/jsxs(Typography, {
23
- variant: "caption",
24
- sx: {
25
- color: textColor,
26
- display: 'block',
27
- fontFamily: 'monospace'
28
- },
29
- children: [COORDINATE_LABELS[index], ": ", formatNumber(value)]
30
- }, COORDINATE_LABELS[index]))]
31
- });
32
- const CameraInfo = ({
33
- getCameraState
34
- }) => {
35
- const theme = useTheme();
36
- const strings = useStrings();
37
- const [cameraState, setCameraState] = useState(null);
38
- useEffect(() => {
39
- const updateCameraState = () => {
40
- const state = getCameraState();
41
- if (state) {
42
- setCameraState(state);
43
- }
44
- };
45
- updateCameraState();
46
- const intervalId = setInterval(updateCameraState, UPDATE_FREQUENCY_MS);
47
- return () => clearInterval(intervalId);
48
- }, [getCameraState]);
49
- if (!cameraState) {
50
- return null;
51
- }
52
- const textColor = theme.palette.TwClrIcnInfo;
53
- return /*#__PURE__*/jsxs(Box, {
54
- sx: {
55
- position: 'absolute',
56
- bottom: 16,
57
- left: 16,
58
- backgroundColor: getRgbaFromHex(theme.palette.TwClrIcnOnBrand, 0.9),
59
- padding: 2,
60
- borderRadius: 1,
61
- pointerEvents: 'auto',
62
- minWidth: 220
63
- },
64
- children: [/*#__PURE__*/jsx(Typography, {
65
- variant: "body2",
66
- sx: {
67
- color: textColor,
68
- fontWeight: 'bold',
69
- marginBottom: 1
70
- },
71
- children: strings.CAMERA_INFO
72
- }), /*#__PURE__*/jsxs(Box, {
73
- sx: {
74
- display: 'flex',
75
- flexDirection: 'column',
76
- gap: 1
77
- },
78
- children: [/*#__PURE__*/jsx(CoordinateDisplay, {
79
- label: strings.CAMERA_POSITION,
80
- coordinates: cameraState.position,
81
- textColor: textColor
82
- }), /*#__PURE__*/jsx(CoordinateDisplay, {
83
- label: strings.CAMERA_FOCUS_POINT,
84
- coordinates: cameraState.focus,
85
- textColor: textColor
86
- })]
87
- })]
88
- });
7
+ const COORDINATE_LABELS = [
8
+ 'X',
9
+ 'Y',
10
+ 'Z'
11
+ ];
12
+ const formatNumber = (num)=>num.toFixed(6);
13
+ const CoordinateDisplay = ({ label, coordinates, textColor })=>/*#__PURE__*/ jsxs(Box, {
14
+ children: [
15
+ /*#__PURE__*/ jsxs(Typography, {
16
+ variant: "caption",
17
+ sx: {
18
+ color: textColor,
19
+ fontWeight: 'bold'
20
+ },
21
+ children: [
22
+ label,
23
+ ":"
24
+ ]
25
+ }),
26
+ coordinates.map((value, index)=>/*#__PURE__*/ jsxs(Typography, {
27
+ variant: "caption",
28
+ sx: {
29
+ color: textColor,
30
+ display: 'block',
31
+ fontFamily: 'monospace'
32
+ },
33
+ children: [
34
+ COORDINATE_LABELS[index],
35
+ ": ",
36
+ formatNumber(value)
37
+ ]
38
+ }, COORDINATE_LABELS[index]))
39
+ ]
40
+ });
41
+ const CameraInfo = ({ getCameraState })=>{
42
+ const theme = useTheme();
43
+ const strings = useStrings();
44
+ const [cameraState, setCameraState] = useState(null);
45
+ useEffect(()=>{
46
+ const updateCameraState = ()=>{
47
+ const state = getCameraState();
48
+ if (state) setCameraState(state);
49
+ };
50
+ updateCameraState();
51
+ const intervalId = setInterval(updateCameraState, UPDATE_FREQUENCY_MS);
52
+ return ()=>clearInterval(intervalId);
53
+ }, [
54
+ getCameraState
55
+ ]);
56
+ if (!cameraState) return null;
57
+ const textColor = theme.palette.TwClrIcnInfo;
58
+ return /*#__PURE__*/ jsxs(Box, {
59
+ sx: {
60
+ position: 'absolute',
61
+ bottom: 16,
62
+ left: 16,
63
+ backgroundColor: getRgbaFromHex(theme.palette.TwClrIcnOnBrand, 0.9),
64
+ padding: 2,
65
+ borderRadius: 1,
66
+ pointerEvents: 'auto',
67
+ minWidth: 220
68
+ },
69
+ children: [
70
+ /*#__PURE__*/ jsx(Typography, {
71
+ variant: "body2",
72
+ sx: {
73
+ color: textColor,
74
+ fontWeight: 'bold',
75
+ marginBottom: 1
76
+ },
77
+ children: strings.CAMERA_INFO
78
+ }),
79
+ /*#__PURE__*/ jsxs(Box, {
80
+ sx: {
81
+ display: 'flex',
82
+ flexDirection: 'column',
83
+ gap: 1
84
+ },
85
+ children: [
86
+ /*#__PURE__*/ jsx(CoordinateDisplay, {
87
+ label: strings.CAMERA_POSITION,
88
+ coordinates: cameraState.position,
89
+ textColor: textColor
90
+ }),
91
+ /*#__PURE__*/ jsx(CoordinateDisplay, {
92
+ label: strings.CAMERA_FOCUS_POINT,
93
+ coordinates: cameraState.focus,
94
+ textColor: textColor
95
+ })
96
+ ]
97
+ })
98
+ ]
99
+ });
89
100
  };
90
-
91
- export { CameraInfo as default };
101
+ const VirtualWalkthrough_CameraInfo = CameraInfo;
102
+ export default VirtualWalkthrough_CameraInfo;
@@ -1,199 +1,258 @@
1
- import { useCallback } from 'react';
2
- import { useTheme, Box, Fade, Typography, Checkbox, Divider } from '@mui/material';
3
- import { useStrings } from '../../strings/index.js';
4
- import { jsx, jsxs } from 'react/jsx-runtime';
5
-
6
- const ControlsInfoPane = ({
7
- visible,
8
- paneRef,
9
- showAnnotations,
10
- onToggleAnnotations,
11
- autoRotate,
12
- onToggleAutoRotate,
13
- isFullScreen = false
14
- }) => {
15
- const theme = useTheme();
16
- const strings = useStrings();
17
- const handleAnnotationsChange = useCallback(e => {
18
- onToggleAnnotations?.(e.target.checked);
19
- }, [onToggleAnnotations]);
20
- const handleAutoRotateChange = useCallback(e => {
21
- onToggleAutoRotate?.(e.target.checked);
22
- }, [onToggleAutoRotate]);
23
- const controlRowSx = {
24
- display: 'flex',
25
- justifyContent: 'space-between',
26
- alignItems: 'center'
27
- };
28
- const rightAlignedTextSx = {
29
- textAlign: 'right'
30
- };
31
- const dividerSx = {
32
- backgroundColor: theme.palette.TwClrBrdrTertiary
33
- };
34
- return /*#__PURE__*/jsx(Box, {
35
- sx: {
36
- position: 'absolute',
37
- top: 0,
38
- left: 0,
39
- right: 0,
40
- bottom: 0,
41
- pointerEvents: 'none',
42
- display: 'flex',
43
- justifyContent: 'flex-end',
44
- alignItems: 'flex-start',
45
- paddingX: 2,
46
- paddingTop: isFullScreen ? 8 : 2,
47
- zIndex: 1001
48
- },
49
- children: /*#__PURE__*/jsx(Fade, {
50
- in: visible,
51
- timeout: 500,
52
- children: /*#__PURE__*/jsx(Box, {
53
- ref: paneRef,
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from "react";
3
+ import { Box, Checkbox, Divider, Fade, Typography, useTheme } from "@mui/material";
4
+ import { useStrings } from "../../strings/index.js";
5
+ const ControlsInfoPane = ({ visible, paneRef, showAnnotations, onToggleAnnotations, autoRotate, onToggleAutoRotate, isFullScreen = false })=>{
6
+ const theme = useTheme();
7
+ const strings = useStrings();
8
+ const handleAnnotationsChange = useCallback((e)=>{
9
+ onToggleAnnotations?.(e.target.checked);
10
+ }, [
11
+ onToggleAnnotations
12
+ ]);
13
+ const handleAutoRotateChange = useCallback((e)=>{
14
+ onToggleAutoRotate?.(e.target.checked);
15
+ }, [
16
+ onToggleAutoRotate
17
+ ]);
18
+ const controlRowSx = {
19
+ display: 'flex',
20
+ justifyContent: 'space-between',
21
+ alignItems: 'center'
22
+ };
23
+ const rightAlignedTextSx = {
24
+ textAlign: 'right'
25
+ };
26
+ const dividerSx = {
27
+ backgroundColor: theme.palette.TwClrBrdrTertiary
28
+ };
29
+ return /*#__PURE__*/ jsx(Box, {
54
30
  sx: {
55
- backgroundColor: theme.palette.grey[900],
56
- color: theme.palette.common.white,
57
- borderRadius: 2,
58
- padding: 3,
59
- minWidth: 320,
60
- maxWidth: 400,
61
- pointerEvents: 'auto'
62
- },
63
- children: /*#__PURE__*/jsxs(Box, {
64
- sx: {
31
+ position: 'absolute',
32
+ top: 0,
33
+ left: 0,
34
+ right: 0,
35
+ bottom: 0,
36
+ pointerEvents: 'none',
65
37
  display: 'flex',
66
- flexDirection: 'column',
67
- gap: 1
68
- },
69
- children: [/*#__PURE__*/jsx(Typography, {
70
- sx: {
71
- fontWeight: 600
72
- },
73
- children: strings.CONTROLS
74
- }), /*#__PURE__*/jsxs(Box, {
75
- sx: controlRowSx,
76
- children: [/*#__PURE__*/jsx(Typography, {
77
- children: strings.ANNOTATIONS
78
- }), /*#__PURE__*/jsx(Checkbox, {
79
- checked: showAnnotations ?? true,
80
- onChange: handleAnnotationsChange,
81
- sx: {
82
- color: theme.palette.primary.main
83
- }
84
- })]
85
- }), /*#__PURE__*/jsx(Divider, {
86
- sx: dividerSx
87
- }), /*#__PURE__*/jsxs(Box, {
88
- sx: controlRowSx,
89
- children: [/*#__PURE__*/jsx(Typography, {
90
- children: strings.AUTO_ROTATE
91
- }), /*#__PURE__*/jsx(Checkbox, {
92
- checked: autoRotate ?? true,
93
- onChange: handleAutoRotateChange,
94
- sx: {
95
- color: theme.palette.primary.main
96
- }
97
- })]
98
- }), /*#__PURE__*/jsx(Divider, {
99
- sx: dividerSx
100
- }), /*#__PURE__*/jsxs(Box, {
101
- sx: controlRowSx,
102
- children: [/*#__PURE__*/jsx(Typography, {
103
- children: strings.ORBIT
104
- }), /*#__PURE__*/jsxs(Box, {
105
- sx: rightAlignedTextSx,
106
- children: [/*#__PURE__*/jsx(Typography, {
107
- children: strings.LEFT_MOUSE
108
- }), /*#__PURE__*/jsx(Typography, {
109
- children: strings.TOUCH_DRAG
110
- })]
111
- })]
112
- }), /*#__PURE__*/jsx(Divider, {
113
- sx: dividerSx
114
- }), /*#__PURE__*/jsxs(Box, {
115
- sx: controlRowSx,
116
- children: [/*#__PURE__*/jsx(Typography, {
117
- children: strings.PAN
118
- }), /*#__PURE__*/jsxs(Box, {
119
- sx: rightAlignedTextSx,
120
- children: [/*#__PURE__*/jsx(Typography, {
121
- children: strings.MIDDLE_MOUSE
122
- }), /*#__PURE__*/jsx(Typography, {
123
- children: strings.SWIPE
124
- })]
125
- })]
126
- }), /*#__PURE__*/jsx(Divider, {
127
- sx: dividerSx
128
- }), /*#__PURE__*/jsxs(Box, {
129
- sx: controlRowSx,
130
- children: [/*#__PURE__*/jsx(Typography, {
131
- children: strings.LOOK
132
- }), /*#__PURE__*/jsx(Typography, {
133
- children: strings.RIGHT_MOUSE
134
- })]
135
- }), /*#__PURE__*/jsx(Divider, {
136
- sx: dividerSx
137
- }), /*#__PURE__*/jsxs(Box, {
138
- sx: controlRowSx,
139
- children: [/*#__PURE__*/jsx(Typography, {
140
- children: strings.ZOOM
141
- }), /*#__PURE__*/jsxs(Box, {
142
- sx: rightAlignedTextSx,
143
- children: [/*#__PURE__*/jsx(Typography, {
144
- children: strings.MOUSE_WHEEL
145
- }), /*#__PURE__*/jsx(Typography, {
146
- children: strings.PINCH
147
- })]
148
- })]
149
- }), /*#__PURE__*/jsx(Divider, {
150
- sx: dividerSx
151
- }), /*#__PURE__*/jsxs(Box, {
152
- sx: controlRowSx,
153
- children: [/*#__PURE__*/jsx(Typography, {
154
- children: strings.FLY
155
- }), /*#__PURE__*/jsxs(Box, {
156
- sx: rightAlignedTextSx,
157
- children: [/*#__PURE__*/jsx(Typography, {
158
- children: "WASD"
159
- }), /*#__PURE__*/jsx(Typography, {
160
- children: strings.ARROW_KEYS
161
- })]
162
- })]
163
- }), /*#__PURE__*/jsx(Divider, {
164
- sx: dividerSx
165
- }), /*#__PURE__*/jsxs(Box, {
166
- sx: controlRowSx,
167
- children: [/*#__PURE__*/jsx(Typography, {
168
- children: strings.FLY_FASTER
169
- }), /*#__PURE__*/jsx(Typography, {
170
- children: strings.SHIFT
171
- })]
172
- }), /*#__PURE__*/jsx(Divider, {
173
- sx: dividerSx
174
- }), /*#__PURE__*/jsxs(Box, {
175
- sx: controlRowSx,
176
- children: [/*#__PURE__*/jsx(Typography, {
177
- children: strings.FLY_SLOWER
178
- }), /*#__PURE__*/jsx(Typography, {
179
- children: strings.CTRL
180
- })]
181
- }), /*#__PURE__*/jsx(Divider, {
182
- sx: dividerSx
183
- }), /*#__PURE__*/jsxs(Box, {
184
- sx: controlRowSx,
185
- children: [/*#__PURE__*/jsx(Typography, {
186
- children: strings.RESET_CAMERA
187
- }), /*#__PURE__*/jsx(Typography, {
188
- children: "R"
189
- })]
190
- }), /*#__PURE__*/jsx(Divider, {
191
- sx: dividerSx
192
- })]
38
+ justifyContent: 'flex-end',
39
+ alignItems: 'flex-start',
40
+ paddingX: 2,
41
+ paddingTop: isFullScreen ? 8 : 2,
42
+ zIndex: 1001
43
+ },
44
+ children: /*#__PURE__*/ jsx(Fade, {
45
+ in: visible,
46
+ timeout: 500,
47
+ children: /*#__PURE__*/ jsx(Box, {
48
+ ref: paneRef,
49
+ sx: {
50
+ backgroundColor: theme.palette.grey[900],
51
+ color: theme.palette.common.white,
52
+ borderRadius: 2,
53
+ padding: 3,
54
+ minWidth: 320,
55
+ maxWidth: 400,
56
+ pointerEvents: 'auto'
57
+ },
58
+ children: /*#__PURE__*/ jsxs(Box, {
59
+ sx: {
60
+ display: 'flex',
61
+ flexDirection: 'column',
62
+ gap: 1
63
+ },
64
+ children: [
65
+ /*#__PURE__*/ jsx(Typography, {
66
+ sx: {
67
+ fontWeight: 600
68
+ },
69
+ children: strings.CONTROLS
70
+ }),
71
+ /*#__PURE__*/ jsxs(Box, {
72
+ sx: controlRowSx,
73
+ children: [
74
+ /*#__PURE__*/ jsx(Typography, {
75
+ children: strings.ANNOTATIONS
76
+ }),
77
+ /*#__PURE__*/ jsx(Checkbox, {
78
+ checked: showAnnotations ?? true,
79
+ onChange: handleAnnotationsChange,
80
+ sx: {
81
+ color: theme.palette.primary.main
82
+ }
83
+ })
84
+ ]
85
+ }),
86
+ /*#__PURE__*/ jsx(Divider, {
87
+ sx: dividerSx
88
+ }),
89
+ /*#__PURE__*/ jsxs(Box, {
90
+ sx: controlRowSx,
91
+ children: [
92
+ /*#__PURE__*/ jsx(Typography, {
93
+ children: strings.AUTO_ROTATE
94
+ }),
95
+ /*#__PURE__*/ jsx(Checkbox, {
96
+ checked: autoRotate ?? true,
97
+ onChange: handleAutoRotateChange,
98
+ sx: {
99
+ color: theme.palette.primary.main
100
+ }
101
+ })
102
+ ]
103
+ }),
104
+ /*#__PURE__*/ jsx(Divider, {
105
+ sx: dividerSx
106
+ }),
107
+ /*#__PURE__*/ jsxs(Box, {
108
+ sx: controlRowSx,
109
+ children: [
110
+ /*#__PURE__*/ jsx(Typography, {
111
+ children: strings.ORBIT
112
+ }),
113
+ /*#__PURE__*/ jsxs(Box, {
114
+ sx: rightAlignedTextSx,
115
+ children: [
116
+ /*#__PURE__*/ jsx(Typography, {
117
+ children: strings.LEFT_MOUSE
118
+ }),
119
+ /*#__PURE__*/ jsx(Typography, {
120
+ children: strings.TOUCH_DRAG
121
+ })
122
+ ]
123
+ })
124
+ ]
125
+ }),
126
+ /*#__PURE__*/ jsx(Divider, {
127
+ sx: dividerSx
128
+ }),
129
+ /*#__PURE__*/ jsxs(Box, {
130
+ sx: controlRowSx,
131
+ children: [
132
+ /*#__PURE__*/ jsx(Typography, {
133
+ children: strings.PAN
134
+ }),
135
+ /*#__PURE__*/ jsxs(Box, {
136
+ sx: rightAlignedTextSx,
137
+ children: [
138
+ /*#__PURE__*/ jsx(Typography, {
139
+ children: strings.MIDDLE_MOUSE
140
+ }),
141
+ /*#__PURE__*/ jsx(Typography, {
142
+ children: strings.SWIPE
143
+ })
144
+ ]
145
+ })
146
+ ]
147
+ }),
148
+ /*#__PURE__*/ jsx(Divider, {
149
+ sx: dividerSx
150
+ }),
151
+ /*#__PURE__*/ jsxs(Box, {
152
+ sx: controlRowSx,
153
+ children: [
154
+ /*#__PURE__*/ jsx(Typography, {
155
+ children: strings.LOOK
156
+ }),
157
+ /*#__PURE__*/ jsx(Typography, {
158
+ children: strings.RIGHT_MOUSE
159
+ })
160
+ ]
161
+ }),
162
+ /*#__PURE__*/ jsx(Divider, {
163
+ sx: dividerSx
164
+ }),
165
+ /*#__PURE__*/ jsxs(Box, {
166
+ sx: controlRowSx,
167
+ children: [
168
+ /*#__PURE__*/ jsx(Typography, {
169
+ children: strings.ZOOM
170
+ }),
171
+ /*#__PURE__*/ jsxs(Box, {
172
+ sx: rightAlignedTextSx,
173
+ children: [
174
+ /*#__PURE__*/ jsx(Typography, {
175
+ children: strings.MOUSE_WHEEL
176
+ }),
177
+ /*#__PURE__*/ jsx(Typography, {
178
+ children: strings.PINCH
179
+ })
180
+ ]
181
+ })
182
+ ]
183
+ }),
184
+ /*#__PURE__*/ jsx(Divider, {
185
+ sx: dividerSx
186
+ }),
187
+ /*#__PURE__*/ jsxs(Box, {
188
+ sx: controlRowSx,
189
+ children: [
190
+ /*#__PURE__*/ jsx(Typography, {
191
+ children: strings.FLY
192
+ }),
193
+ /*#__PURE__*/ jsxs(Box, {
194
+ sx: rightAlignedTextSx,
195
+ children: [
196
+ /*#__PURE__*/ jsx(Typography, {
197
+ children: "WASD"
198
+ }),
199
+ /*#__PURE__*/ jsx(Typography, {
200
+ children: strings.ARROW_KEYS
201
+ })
202
+ ]
203
+ })
204
+ ]
205
+ }),
206
+ /*#__PURE__*/ jsx(Divider, {
207
+ sx: dividerSx
208
+ }),
209
+ /*#__PURE__*/ jsxs(Box, {
210
+ sx: controlRowSx,
211
+ children: [
212
+ /*#__PURE__*/ jsx(Typography, {
213
+ children: strings.FLY_FASTER
214
+ }),
215
+ /*#__PURE__*/ jsx(Typography, {
216
+ children: strings.SHIFT
217
+ })
218
+ ]
219
+ }),
220
+ /*#__PURE__*/ jsx(Divider, {
221
+ sx: dividerSx
222
+ }),
223
+ /*#__PURE__*/ jsxs(Box, {
224
+ sx: controlRowSx,
225
+ children: [
226
+ /*#__PURE__*/ jsx(Typography, {
227
+ children: strings.FLY_SLOWER
228
+ }),
229
+ /*#__PURE__*/ jsx(Typography, {
230
+ children: strings.CTRL
231
+ })
232
+ ]
233
+ }),
234
+ /*#__PURE__*/ jsx(Divider, {
235
+ sx: dividerSx
236
+ }),
237
+ /*#__PURE__*/ jsxs(Box, {
238
+ sx: controlRowSx,
239
+ children: [
240
+ /*#__PURE__*/ jsx(Typography, {
241
+ children: strings.RESET_CAMERA
242
+ }),
243
+ /*#__PURE__*/ jsx(Typography, {
244
+ children: "R"
245
+ })
246
+ ]
247
+ }),
248
+ /*#__PURE__*/ jsx(Divider, {
249
+ sx: dividerSx
250
+ })
251
+ ]
252
+ })
253
+ })
193
254
  })
194
- })
195
- })
196
- });
255
+ });
197
256
  };
198
-
199
- export { ControlsInfoPane as default };
257
+ const VirtualWalkthrough_ControlsInfoPane = ControlsInfoPane;
258
+ export default VirtualWalkthrough_ControlsInfoPane;