@terraware/web-components 5.0.27 → 5.1.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 (295) 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/SummaryBox.js +70 -72
  58. package/components/Tabs/index.js +133 -135
  59. package/components/TextTruncated/index.js +117 -130
  60. package/components/Textfield/Textfield.js +158 -190
  61. package/components/Textfield/TruncatedTextArea.js +70 -84
  62. package/components/TimelineSlider/TimelineMarker.js +25 -30
  63. package/components/TimelineSlider/TimelineRail.js +8 -11
  64. package/components/TimelineSlider/index.js +64 -66
  65. package/components/TimelineSliderV2/ClusterBadge.js +25 -29
  66. package/components/TimelineSliderV2/TimelineDot.js +31 -35
  67. package/components/TimelineSliderV2/TimelineRail.js +8 -11
  68. package/components/TimelineSliderV2/index.js +121 -103
  69. package/components/TimelineSliderV2/layout.js +124 -147
  70. package/components/TimelineSliderV2/types.js +0 -1
  71. package/components/Tooltip/Tooltip.js +47 -56
  72. package/components/ViewPhotosDialog/index.js +28 -35
  73. package/components/VirtualWalkthrough/Annotation.js +163 -207
  74. package/components/VirtualWalkthrough/AnnotationEditPane.js +198 -184
  75. package/components/VirtualWalkthrough/AnnotationPanel.js +187 -199
  76. package/components/VirtualWalkthrough/Application.js +31 -34
  77. package/components/VirtualWalkthrough/AutoRotator.js +85 -223
  78. package/components/VirtualWalkthrough/BlockingSpinner.js +26 -28
  79. package/components/VirtualWalkthrough/BoundaryRing.js +30 -34
  80. package/components/VirtualWalkthrough/BoundaryWall.js +32 -36
  81. package/components/VirtualWalkthrough/CameraInfo.js +100 -89
  82. package/components/VirtualWalkthrough/ControlsInfoPane.js +254 -195
  83. package/components/VirtualWalkthrough/GradientSky.js +72 -73
  84. package/components/VirtualWalkthrough/SplatControls.js +209 -221
  85. package/components/VirtualWalkthrough/SplatCrop.js +21 -20
  86. package/components/VirtualWalkthrough/SplatFadeCrop.js +21 -20
  87. package/components/VirtualWalkthrough/SplatModel.js +65 -85
  88. package/components/VirtualWalkthrough/SplatRevealRain.js +41 -46
  89. package/components/VirtualWalkthrough/TfAnnotationManager.js +197 -379
  90. package/components/VirtualWalkthrough/TfXrNavigation.js +73 -162
  91. package/components/VirtualWalkthrough/VirtualWalkthroughViewer.js +438 -431
  92. package/components/VirtualWalkthrough/VrAnnotationPanel.js +18 -22
  93. package/components/VirtualWalkthrough/XrAnnotationInteraction.js +14 -17
  94. package/components/VirtualWalkthrough/XrExitButton.js +14 -17
  95. package/components/VirtualWalkthrough/XrGazeDwell.js +14 -17
  96. package/components/VirtualWalkthrough/XrPointerRay.js +14 -17
  97. package/components/VirtualWalkthrough/XrStartPose.js +67 -121
  98. package/components/VirtualWalkthrough/boundary-ring.js +87 -117
  99. package/components/VirtualWalkthrough/boundary-wall.js +175 -258
  100. package/components/VirtualWalkthrough/camera-adoption.js +18 -64
  101. package/components/VirtualWalkthrough/groundPlane.js +32 -47
  102. package/components/VirtualWalkthrough/gsplat-fade-crop-effect.js +35 -35
  103. package/components/VirtualWalkthrough/splatFormat.js +13 -47
  104. package/components/VirtualWalkthrough/useAdoptedCamera.js +23 -44
  105. package/components/VirtualWalkthrough/useRestartOnVr.js +26 -37
  106. package/components/VirtualWalkthrough/useXrRenderTuning.js +33 -54
  107. package/components/VirtualWalkthrough/vr-annotation-panel-layout.js +67 -99
  108. package/components/VirtualWalkthrough/vr-annotation-panel.js +403 -433
  109. package/components/VirtualWalkthrough/vr-annotation-scroll.js +10 -28
  110. package/components/VirtualWalkthrough/walkthrough-camera.js +204 -329
  111. package/components/VirtualWalkthrough/xr-annotation-candidate-buffer.js +39 -80
  112. package/components/VirtualWalkthrough/xr-annotation-candidates.js +6 -18
  113. package/components/VirtualWalkthrough/xr-annotation-interaction.js +31 -56
  114. package/components/VirtualWalkthrough/xr-annotation-targeting.js +22 -38
  115. package/components/VirtualWalkthrough/xr-button-arming.js +7 -17
  116. package/components/VirtualWalkthrough/xr-button-hold.js +22 -36
  117. package/components/VirtualWalkthrough/xr-exit-button-mask.js +22 -36
  118. package/components/VirtualWalkthrough/xr-exit-button.js +148 -207
  119. package/components/VirtualWalkthrough/xr-face-buttons.js +19 -29
  120. package/components/VirtualWalkthrough/xr-gaze-dwell-state.js +23 -34
  121. package/components/VirtualWalkthrough/xr-gaze-dwell.js +107 -144
  122. package/components/VirtualWalkthrough/xr-interactive-ui.js +12 -24
  123. package/components/VirtualWalkthrough/xr-pointer-ray.js +13 -20
  124. package/components/VirtualWalkthrough/xr-progress-pie-material.js +117 -88
  125. package/components/VirtualWalkthrough/xr-progress-pie.js +1 -10
  126. package/components/VirtualWalkthrough/xr-ray-quad.js +16 -30
  127. package/components/VirtualWalkthrough/xr-render-tuning.js +17 -48
  128. package/components/VirtualWalkthrough/xr-scene-bounds.js +21 -37
  129. package/components/VirtualWalkthrough/xr-start-pose.js +27 -73
  130. package/components/VirtualWalkthrough/xr-teleport-gesture.js +16 -42
  131. package/components/svg/BlobbyGrayIconImage.js +41 -39
  132. package/components/svg/BlobbyGrayIconImport.js +41 -39
  133. package/components/svg/BlobbyGrayIconUploadToTheCloud.js +41 -39
  134. package/components/svg/BlobbyIconCloudChecked.js +202 -164
  135. package/components/svg/BlobbyIconExportOrUploadPhoto.js +202 -164
  136. package/components/svg/BlobbyIconFolder.js +202 -164
  137. package/components/svg/BlobbyIconGraphReport.js +202 -164
  138. package/components/svg/BlobbyIconHappy.js +202 -164
  139. package/components/svg/BlobbyIconHeartMonitor.js +202 -164
  140. package/components/svg/BlobbyIconLeaf.js +202 -164
  141. package/components/svg/BlobbyIconLibrary.js +202 -164
  142. package/components/svg/BlobbyIconNursery.js +204 -166
  143. package/components/svg/BlobbyIconOrganization.js +202 -164
  144. package/components/svg/BlobbyIconParchment.js +202 -164
  145. package/components/svg/BlobbyIconPeople.js +202 -164
  146. package/components/svg/BlobbyIconSeedBank.js +202 -164
  147. package/components/svg/BlobbyIconSeedling.js +202 -164
  148. package/components/svg/BlobbyIconSeeds.js +202 -164
  149. package/components/svg/BlobbyIconSite.js +206 -167
  150. package/components/svg/BlobbyIconSparkles.js +202 -164
  151. package/components/svg/BlobbyIconWrench.js +202 -164
  152. package/components/svg/Bug.js +19 -21
  153. package/components/svg/Calendar.js +19 -21
  154. package/components/svg/CaretDown.js +19 -21
  155. package/components/svg/CaretLeft.js +19 -21
  156. package/components/svg/CaretRight.js +19 -21
  157. package/components/svg/CaretUp.js +19 -21
  158. package/components/svg/ChevronDown.js +19 -21
  159. package/components/svg/ChevronUp.js +19 -21
  160. package/components/svg/Close.js +19 -21
  161. package/components/svg/Critical.js +19 -21
  162. package/components/svg/Edit.js +202 -164
  163. package/components/svg/Error.js +19 -21
  164. package/components/svg/Filter.js +19 -21
  165. package/components/svg/Folder.js +19 -21
  166. package/components/svg/Help.js +19 -21
  167. package/components/svg/Home.js +19 -21
  168. package/components/svg/IconAdd.js +19 -21
  169. package/components/svg/IconArrowRight.js +21 -23
  170. package/components/svg/IconBusinessNetwork.js +19 -21
  171. package/components/svg/IconCalendar.js +19 -21
  172. package/components/svg/IconCancel.js +19 -21
  173. package/components/svg/IconChargingBattery.js +19 -21
  174. package/components/svg/IconChecklist.js +21 -23
  175. package/components/svg/IconCheckmark.js +19 -21
  176. package/components/svg/IconCoinInHand.js +19 -21
  177. package/components/svg/IconColumns.js +19 -21
  178. package/components/svg/IconComment.js +20 -22
  179. package/components/svg/IconDashboard.js +19 -21
  180. package/components/svg/IconDataMigration.js +19 -21
  181. package/components/svg/IconDocument.js +21 -23
  182. package/components/svg/IconDownloadFromTheCloud.js +21 -23
  183. package/components/svg/IconEdit.js +21 -23
  184. package/components/svg/IconExpand.js +21 -23
  185. package/components/svg/IconExport.js +19 -21
  186. package/components/svg/IconExternalLink.js +19 -21
  187. package/components/svg/IconEye.js +19 -21
  188. package/components/svg/IconEyeOff.js +19 -21
  189. package/components/svg/IconFile.js +19 -21
  190. package/components/svg/IconFolder.js +19 -21
  191. package/components/svg/IconFullScreen.js +20 -22
  192. package/components/svg/IconFutures.js +19 -21
  193. package/components/svg/IconGraphReport.js +19 -21
  194. package/components/svg/IconGrid.js +19 -21
  195. package/components/svg/IconHeartMonitor.js +19 -21
  196. package/components/svg/IconHelp.js +21 -23
  197. package/components/svg/IconHistory.js +19 -21
  198. package/components/svg/IconImport.js +19 -21
  199. package/components/svg/IconIndex.js +19 -21
  200. package/components/svg/IconLayers.js +19 -21
  201. package/components/svg/IconLibrary.js +20 -22
  202. package/components/svg/IconList.js +19 -21
  203. package/components/svg/IconLivePlant.js +19 -21
  204. package/components/svg/IconLocations.js +19 -21
  205. package/components/svg/IconMail.js +19 -21
  206. package/components/svg/IconManager.js +19 -21
  207. package/components/svg/IconMap.js +19 -21
  208. package/components/svg/IconMarker.js +19 -21
  209. package/components/svg/IconMenu.js +19 -21
  210. package/components/svg/IconMenuHorizontal.js +19 -21
  211. package/components/svg/IconModule.js +19 -21
  212. package/components/svg/IconMyLocation.js +19 -21
  213. package/components/svg/IconNote.js +21 -23
  214. package/components/svg/IconNursery.js +21 -23
  215. package/components/svg/IconOrg.js +19 -21
  216. package/components/svg/IconParchment.js +19 -21
  217. package/components/svg/IconPhoto.js +19 -21
  218. package/components/svg/IconPlantsFilled.js +19 -21
  219. package/components/svg/IconRedo.js +19 -21
  220. package/components/svg/IconRestorationSite.js +19 -21
  221. package/components/svg/IconSeedBank.js +19 -21
  222. package/components/svg/IconSeedling.js +19 -21
  223. package/components/svg/IconSettings.js +19 -21
  224. package/components/svg/IconSlice.js +19 -21
  225. package/components/svg/IconSubmit.js +19 -21
  226. package/components/svg/IconSubtract.js +21 -23
  227. package/components/svg/IconSynced.js +19 -21
  228. package/components/svg/IconTrashCan.js +19 -21
  229. package/components/svg/IconTreasureMap.js +19 -21
  230. package/components/svg/IconUnavailable.js +19 -21
  231. package/components/svg/IconUndo.js +19 -21
  232. package/components/svg/IconVariable.js +19 -21
  233. package/components/svg/IconVideo.js +30 -31
  234. package/components/svg/IconWifi.js +19 -21
  235. package/components/svg/Info.js +19 -21
  236. package/components/svg/Key.js +19 -21
  237. package/components/svg/Leaf.js +19 -21
  238. package/components/svg/Lock.js +19 -21
  239. package/components/svg/Logo.js +48 -43
  240. package/components/svg/MenuVertical.js +19 -21
  241. package/components/svg/Notification.js +19 -21
  242. package/components/svg/Person.js +19 -21
  243. package/components/svg/Plus.js +19 -21
  244. package/components/svg/RestorationSite.js +19 -21
  245. package/components/svg/Search.js +19 -21
  246. package/components/svg/Seeds.js +19 -21
  247. package/components/svg/Site.js +19 -21
  248. package/components/svg/Sparkles.js +19 -21
  249. package/components/svg/Species.js +19 -21
  250. package/components/svg/Species2.js +202 -164
  251. package/components/svg/Spinner.js +54 -48
  252. package/components/svg/Star.js +19 -21
  253. package/components/svg/Success.js +19 -21
  254. package/components/svg/SuccessFilled.js +19 -21
  255. package/components/svg/TerrawareLogoDesktop.js +55 -49
  256. package/components/svg/TerrawareLogoMobile.js +25 -26
  257. package/components/svg/Touchscreen.js +19 -21
  258. package/components/svg/UploadCloud.js +202 -164
  259. package/components/svg/Warning.js +19 -21
  260. package/components/svg/WelcomeClipboard.js +156 -133
  261. package/components/svg/index.js +129 -129
  262. package/components/table/EnhancedTableToolbar.js +68 -74
  263. package/components/table/EnhancedTableToolbarV2.js +31 -41
  264. package/components/table/TableCellRenderer.js +196 -231
  265. package/components/table/TableHeader.js +71 -73
  266. package/components/table/TableHeaderItem.js +97 -102
  267. package/components/table/density.js +18 -19
  268. package/components/table/index.js +350 -369
  269. package/components/table/sort.js +27 -52
  270. package/components/table/types.js +0 -1
  271. package/components/types/index.js +0 -1
  272. package/hooks/cameraEntityContext.js +2 -13
  273. package/hooks/useBoolean.js +17 -13
  274. package/hooks/useCameraPosition.js +56 -56
  275. package/hooks/useDevicePerformance.js +17 -17
  276. package/hooks/useXr.js +85 -87
  277. package/index.js +58 -58
  278. package/package.json +1 -1
  279. package/setupTests.js +0 -4
  280. package/strings/export.js +111 -170
  281. package/strings/index.js +25 -54
  282. package/strings/locales.js +21 -41
  283. package/strings/strings-en.js +49 -51
  284. package/strings/strings-es.js +49 -51
  285. package/strings/strings-fr.js +49 -51
  286. package/strings/strings-gx.js +49 -51
  287. package/style-dictionary-dist/TerrawareTheme.js +186 -186
  288. package/theme.js +74 -76
  289. package/utils/color.js +8 -15
  290. package/utils/date.js +42 -108
  291. package/utils/index.js +4 -4
  292. package/utils/preventDefaultEvent.js +3 -3
  293. package/utils/text.js +11 -11
  294. package/utils/useDeviceInfo.js +42 -79
  295. package/virtualWalkthrough.js +23 -23
@@ -1,189 +1,203 @@
1
- import { useMemo, useCallback } from 'react';
2
- import { useTheme, Box, Fade, Typography, Tooltip, ThemeProvider } from '@mui/material';
3
- import { useStrings } from '../../strings/index.js';
4
- import PhotoChooser from '../PhotoChooser/index.js';
5
- import TextField from '../Textfield/Textfield.js';
6
- import { jsx, jsxs } from 'react/jsx-runtime';
7
-
8
- const AnnotationEditPane = ({
9
- visible,
10
- annotation,
11
- onUpdate,
12
- onTextFieldFocus,
13
- maxImages,
14
- onImagesChange
15
- }) => {
16
- const theme = useTheme();
17
- const strings = useStrings();
18
- const showImageUpload = !!onImagesChange && !!maxImages && maxImages > 0;
19
- const remainingImageSlots = Math.max(0, (maxImages ?? 0) - (annotation?.imageUrls?.length ?? 0));
20
-
21
- // Recolor PhotoChooser's Terraware tokens to match the dark edit pane instead of its default light card.
22
- const photoChooserTheme = useMemo(() => ({
23
- ...theme,
24
- palette: {
25
- ...theme.palette,
26
- TwClrBg: 'transparent',
27
- TwClrBrdrTertiary: theme.palette.grey[700],
28
- TwClrTxt: theme.palette.grey[300]
29
- }
30
- }), [theme]);
31
- const textFieldSx = useMemo(() => ({
32
- '& .textfield-label': {
33
- color: `${theme.palette.grey[400]} !important`
34
- },
35
- '& .textfield-value': {
36
- backgroundColor: `${theme.palette.grey[800]} !important`,
37
- borderColor: `${theme.palette.grey[700]} !important`
38
- },
39
- '& input': {
40
- color: `${theme.palette.common.white} !important`
41
- }
42
- }), [theme]);
43
- const handleTitleChange = useCallback(value => {
44
- onUpdate({
45
- title: value
46
- });
47
- }, [onUpdate]);
48
- const handleBodyTextChange = useCallback(value => {
49
- onUpdate({
50
- bodyText: value
51
- });
52
- }, [onUpdate]);
53
- const handleLabelChange = useCallback(value => {
54
- onUpdate({
55
- label: value
56
- });
57
- }, [onUpdate]);
58
- const handleRemoveExistingImage = useCallback(index => {
59
- const remaining = (annotation?.imageUrls ?? []).filter((_, i) => i !== index);
60
- onUpdate({
61
- imageUrls: remaining
62
- });
63
- }, [annotation, onUpdate]);
64
- const handleFocus = useCallback(() => {
65
- onTextFieldFocus?.(true);
66
- }, [onTextFieldFocus]);
67
- const handleBlur = useCallback(() => {
68
- onTextFieldFocus?.(false);
69
- }, [onTextFieldFocus]);
70
- if (!annotation) {
71
- return null;
72
- }
73
- return /*#__PURE__*/jsx(Box, {
74
- sx: {
75
- position: 'absolute',
76
- top: 0,
77
- left: 0,
78
- right: 0,
79
- bottom: 0,
80
- pointerEvents: 'none',
81
- display: 'flex',
82
- justifyContent: 'flex-start',
83
- alignItems: 'flex-start',
84
- padding: 2,
85
- zIndex: 1001
86
- },
87
- children: /*#__PURE__*/jsx(Fade, {
88
- in: visible,
89
- timeout: 500,
90
- children: /*#__PURE__*/jsx(Box, {
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useMemo } from "react";
3
+ import { Box, Fade, ThemeProvider, Tooltip, Typography, useTheme } from "@mui/material";
4
+ import { useStrings } from "../../strings/index.js";
5
+ import PhotoChooser from "../PhotoChooser/index.js";
6
+ import Textfield from "../Textfield/Textfield.js";
7
+ const AnnotationEditPane = ({ visible, annotation, onUpdate, onTextFieldFocus, maxImages, onImagesChange })=>{
8
+ const theme = useTheme();
9
+ const strings = useStrings();
10
+ const showImageUpload = !!onImagesChange && !!maxImages && maxImages > 0;
11
+ const remainingImageSlots = Math.max(0, (maxImages ?? 0) - (annotation?.imageUrls?.length ?? 0));
12
+ const photoChooserTheme = useMemo(()=>({
13
+ ...theme,
14
+ palette: {
15
+ ...theme.palette,
16
+ TwClrBg: 'transparent',
17
+ TwClrBrdrTertiary: theme.palette.grey[700],
18
+ TwClrTxt: theme.palette.grey[300]
19
+ }
20
+ }), [
21
+ theme
22
+ ]);
23
+ const textFieldSx = useMemo(()=>({
24
+ '& .textfield-label': {
25
+ color: `${theme.palette.grey[400]} !important`
26
+ },
27
+ '& .textfield-value': {
28
+ backgroundColor: `${theme.palette.grey[800]} !important`,
29
+ borderColor: `${theme.palette.grey[700]} !important`
30
+ },
31
+ '& input': {
32
+ color: `${theme.palette.common.white} !important`
33
+ }
34
+ }), [
35
+ theme
36
+ ]);
37
+ const handleTitleChange = useCallback((value)=>{
38
+ onUpdate({
39
+ title: value
40
+ });
41
+ }, [
42
+ onUpdate
43
+ ]);
44
+ const handleBodyTextChange = useCallback((value)=>{
45
+ onUpdate({
46
+ bodyText: value
47
+ });
48
+ }, [
49
+ onUpdate
50
+ ]);
51
+ const handleLabelChange = useCallback((value)=>{
52
+ onUpdate({
53
+ label: value
54
+ });
55
+ }, [
56
+ onUpdate
57
+ ]);
58
+ const handleRemoveExistingImage = useCallback((index)=>{
59
+ const remaining = (annotation?.imageUrls ?? []).filter((_, i)=>i !== index);
60
+ onUpdate({
61
+ imageUrls: remaining
62
+ });
63
+ }, [
64
+ annotation,
65
+ onUpdate
66
+ ]);
67
+ const handleFocus = useCallback(()=>{
68
+ onTextFieldFocus?.(true);
69
+ }, [
70
+ onTextFieldFocus
71
+ ]);
72
+ const handleBlur = useCallback(()=>{
73
+ onTextFieldFocus?.(false);
74
+ }, [
75
+ onTextFieldFocus
76
+ ]);
77
+ if (!annotation) return null;
78
+ return /*#__PURE__*/ jsx(Box, {
91
79
  sx: {
92
- backgroundColor: theme.palette.grey[900],
93
- color: theme.palette.common.white,
94
- borderRadius: 2,
95
- padding: 3,
96
- minWidth: 320,
97
- maxWidth: 400,
98
- pointerEvents: 'auto'
99
- },
100
- children: /*#__PURE__*/jsxs(Box, {
101
- sx: {
80
+ position: 'absolute',
81
+ top: 0,
82
+ left: 0,
83
+ right: 0,
84
+ bottom: 0,
85
+ pointerEvents: 'none',
102
86
  display: 'flex',
103
- flexDirection: 'column',
104
- gap: 2
105
- },
106
- children: [/*#__PURE__*/jsx(Typography, {
107
- sx: {
108
- fontWeight: 600
109
- },
110
- children: strings.EDIT_ANNOTATION
111
- }), /*#__PURE__*/jsx(Tooltip, {
112
- title: strings.ANNOTATION_TITLE_TOOLTIP,
113
- placement: "top",
114
- disableFocusListener: true,
115
- children: /*#__PURE__*/jsx(TextField, {
116
- id: "annotation-title",
117
- label: strings.TITLE,
118
- type: "text",
119
- value: annotation.title,
120
- onChange: handleTitleChange,
121
- onFocus: handleFocus,
122
- onBlur: handleBlur,
123
- sx: textFieldSx,
124
- required: true
125
- })
126
- }), /*#__PURE__*/jsx(Tooltip, {
127
- title: strings.ANNOTATION_DESCRIPTION_TOOLTIP,
128
- placement: "top",
129
- disableFocusListener: true,
130
- children: /*#__PURE__*/jsx(TextField, {
131
- id: "annotation-body",
132
- label: strings.DESCRIPTION,
133
- type: "text",
134
- value: annotation.bodyText ?? '',
135
- onChange: handleBodyTextChange,
136
- onFocus: handleFocus,
137
- onBlur: handleBlur,
138
- sx: textFieldSx
139
- })
140
- }), /*#__PURE__*/jsx(Tooltip, {
141
- title: strings.ANNOTATION_LABEL_TOOLTIP,
142
- placement: "top",
143
- disableFocusListener: true,
144
- children: /*#__PURE__*/jsx(TextField, {
145
- id: "annotation-label",
146
- label: strings.LABEL,
147
- type: "text",
148
- value: annotation.label ?? '',
149
- onChange: handleLabelChange,
150
- onFocus: handleFocus,
151
- onBlur: handleBlur,
152
- sx: textFieldSx
87
+ justifyContent: 'flex-start',
88
+ alignItems: 'flex-start',
89
+ padding: 2,
90
+ zIndex: 1001
91
+ },
92
+ children: /*#__PURE__*/ jsx(Fade, {
93
+ in: visible,
94
+ timeout: 500,
95
+ children: /*#__PURE__*/ jsx(Box, {
96
+ sx: {
97
+ backgroundColor: theme.palette.grey[900],
98
+ color: theme.palette.common.white,
99
+ borderRadius: 2,
100
+ padding: 3,
101
+ minWidth: 320,
102
+ maxWidth: 400,
103
+ pointerEvents: 'auto'
104
+ },
105
+ children: /*#__PURE__*/ jsxs(Box, {
106
+ sx: {
107
+ display: 'flex',
108
+ flexDirection: 'column',
109
+ gap: 2
110
+ },
111
+ children: [
112
+ /*#__PURE__*/ jsx(Typography, {
113
+ sx: {
114
+ fontWeight: 600
115
+ },
116
+ children: strings.EDIT_ANNOTATION
117
+ }),
118
+ /*#__PURE__*/ jsx(Tooltip, {
119
+ title: strings.ANNOTATION_TITLE_TOOLTIP,
120
+ placement: "top",
121
+ disableFocusListener: true,
122
+ children: /*#__PURE__*/ jsx(Textfield, {
123
+ id: "annotation-title",
124
+ label: strings.TITLE,
125
+ type: "text",
126
+ value: annotation.title,
127
+ onChange: handleTitleChange,
128
+ onFocus: handleFocus,
129
+ onBlur: handleBlur,
130
+ sx: textFieldSx,
131
+ required: true
132
+ })
133
+ }),
134
+ /*#__PURE__*/ jsx(Tooltip, {
135
+ title: strings.ANNOTATION_DESCRIPTION_TOOLTIP,
136
+ placement: "top",
137
+ disableFocusListener: true,
138
+ children: /*#__PURE__*/ jsx(Textfield, {
139
+ id: "annotation-body",
140
+ label: strings.DESCRIPTION,
141
+ type: "text",
142
+ value: annotation.bodyText ?? '',
143
+ onChange: handleBodyTextChange,
144
+ onFocus: handleFocus,
145
+ onBlur: handleBlur,
146
+ sx: textFieldSx
147
+ })
148
+ }),
149
+ /*#__PURE__*/ jsx(Tooltip, {
150
+ title: strings.ANNOTATION_LABEL_TOOLTIP,
151
+ placement: "top",
152
+ disableFocusListener: true,
153
+ children: /*#__PURE__*/ jsx(Textfield, {
154
+ id: "annotation-label",
155
+ label: strings.LABEL,
156
+ type: "text",
157
+ value: annotation.label ?? '',
158
+ onChange: handleLabelChange,
159
+ onFocus: handleFocus,
160
+ onBlur: handleBlur,
161
+ sx: textFieldSx
162
+ })
163
+ }),
164
+ showImageUpload && /*#__PURE__*/ jsxs(Box, {
165
+ children: [
166
+ /*#__PURE__*/ jsx(Typography, {
167
+ sx: {
168
+ fontFamily: 'Inter',
169
+ fontSize: '14px',
170
+ fontWeight: 400,
171
+ lineHeight: '20px',
172
+ color: theme.palette.grey[400],
173
+ marginBottom: 0.5
174
+ },
175
+ children: strings.IMAGES
176
+ }),
177
+ /*#__PURE__*/ jsx(ThemeProvider, {
178
+ theme: photoChooserTheme,
179
+ children: /*#__PURE__*/ jsx(PhotoChooser, {
180
+ uploadText: strings.UPLOAD_FILES,
181
+ uploadDescription: strings.UPLOAD_FILES_DESCRIPTION,
182
+ chooseFileText: strings.CHOOSE_FILE,
183
+ replaceFileText: strings.REPLACE_FILE,
184
+ photoSelectedText: strings.FILE_SELECTED,
185
+ multipleSelection: (maxImages ?? 0) > 1,
186
+ maxPhotos: remainingImageSlots,
187
+ onPhotosChanged: (files)=>onImagesChange?.(files),
188
+ existingPhotos: annotation.imageUrls,
189
+ onExistingPhotoRemoved: handleRemoveExistingImage,
190
+ existingImagesLabel: strings.EXISTING,
191
+ newImagesLabel: strings.NEW
192
+ })
193
+ })
194
+ ]
195
+ })
196
+ ]
197
+ })
153
198
  })
154
- }), showImageUpload && /*#__PURE__*/jsxs(Box, {
155
- children: [/*#__PURE__*/jsx(Typography, {
156
- sx: {
157
- fontFamily: 'Inter',
158
- fontSize: '14px',
159
- fontWeight: 400,
160
- lineHeight: '20px',
161
- color: theme.palette.grey[400],
162
- marginBottom: 0.5
163
- },
164
- children: strings.IMAGES
165
- }), /*#__PURE__*/jsx(ThemeProvider, {
166
- theme: photoChooserTheme,
167
- children: /*#__PURE__*/jsx(PhotoChooser, {
168
- uploadText: strings.UPLOAD_FILES,
169
- uploadDescription: strings.UPLOAD_FILES_DESCRIPTION,
170
- chooseFileText: strings.CHOOSE_FILE,
171
- replaceFileText: strings.REPLACE_FILE,
172
- photoSelectedText: strings.FILE_SELECTED,
173
- multipleSelection: (maxImages ?? 0) > 1,
174
- maxPhotos: remainingImageSlots,
175
- onPhotosChanged: files => onImagesChange?.(files),
176
- existingPhotos: annotation.imageUrls,
177
- onExistingPhotoRemoved: handleRemoveExistingImage,
178
- existingImagesLabel: strings.EXISTING,
179
- newImagesLabel: strings.NEW
180
- })
181
- })]
182
- })]
183
199
  })
184
- })
185
- })
186
- });
200
+ });
187
201
  };
188
-
189
- export { AnnotationEditPane as default };
202
+ const VirtualWalkthrough_AnnotationEditPane = AnnotationEditPane;
203
+ export default VirtualWalkthrough_AnnotationEditPane;