@terraware/web-components 5.0.26 → 5.0.27-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 (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,79 +1,72 @@
1
- import { useState, useEffect } from 'react';
2
- import useEmblaCarousel from 'embla-carousel-react';
3
-
4
- const usePhotosCarousel = ({
5
- photos,
6
- selectedSlide,
7
- onSlideChange
8
- }) => {
9
- const [internalSlide, setInternalSlide] = useState(0);
10
- const currentSlide = Math.max(0, Math.min(selectedSlide ?? internalSlide, photos.length - 1));
11
- const [startIndex] = useState(currentSlide);
12
- const [emblaRef, emblaApi] = useEmblaCarousel({
13
- loop: false,
14
- startIndex
15
- });
16
- const [scrollSnaps, setScrollSnaps] = useState([]);
17
- const [prevButtonDisabled, setPrevButtonDisabled] = useState(true);
18
- const [nextButtonDisabled, setNextButtonDisabled] = useState(true);
19
- const photoKey = JSON.stringify(photos.map(photo => photo.url));
20
- const scrollPrev = () => emblaApi?.scrollPrev();
21
- const scrollNext = () => emblaApi?.scrollNext();
22
- const scrollTo = index => emblaApi?.scrollTo(index);
23
- useEffect(() => {
24
- emblaApi?.reInit();
25
- }, [emblaApi, photoKey]);
26
- useEffect(() => {
27
- if (!emblaApi) {
28
- return;
29
- }
30
- // Synchronize external selection before subscribing so it does not echo a change callback.
31
- if (emblaApi.selectedScrollSnap() !== currentSlide) {
32
- emblaApi.scrollTo(currentSlide);
33
- }
34
- const updateControls = () => {
35
- setPrevButtonDisabled(!emblaApi.canScrollPrev());
36
- setNextButtonDisabled(!emblaApi.canScrollNext());
1
+ import { useEffect, useState } from "react";
2
+ import embla_carousel_react from "embla-carousel-react";
3
+ const usePhotosCarousel = ({ photos, selectedSlide, onSlideChange })=>{
4
+ const [internalSlide, setInternalSlide] = useState(0);
5
+ const currentSlide = Math.max(0, Math.min(selectedSlide ?? internalSlide, photos.length - 1));
6
+ const [startIndex] = useState(currentSlide);
7
+ const [emblaRef, emblaApi] = embla_carousel_react({
8
+ loop: false,
9
+ startIndex
10
+ });
11
+ const [scrollSnaps, setScrollSnaps] = useState([]);
12
+ const [prevButtonDisabled, setPrevButtonDisabled] = useState(true);
13
+ const [nextButtonDisabled, setNextButtonDisabled] = useState(true);
14
+ const photoKey = JSON.stringify(photos.map((photo)=>photo.url));
15
+ const scrollPrev = ()=>emblaApi?.scrollPrev();
16
+ const scrollNext = ()=>emblaApi?.scrollNext();
17
+ const scrollTo = (index)=>emblaApi?.scrollTo(index);
18
+ useEffect(()=>{
19
+ emblaApi?.reInit();
20
+ }, [
21
+ emblaApi,
22
+ photoKey
23
+ ]);
24
+ useEffect(()=>{
25
+ if (!emblaApi) return;
26
+ if (emblaApi.selectedScrollSnap() !== currentSlide) emblaApi.scrollTo(currentSlide);
27
+ const updateControls = ()=>{
28
+ setPrevButtonDisabled(!emblaApi.canScrollPrev());
29
+ setNextButtonDisabled(!emblaApi.canScrollNext());
30
+ };
31
+ const handleInit = ()=>{
32
+ setScrollSnaps(emblaApi.scrollSnapList());
33
+ updateControls();
34
+ };
35
+ const handleSelect = ()=>{
36
+ updateControls();
37
+ const slide = emblaApi.selectedScrollSnap();
38
+ setInternalSlide(slide);
39
+ if (slide !== currentSlide) onSlideChange?.(slide);
40
+ };
41
+ handleInit();
42
+ emblaApi.on('select', handleSelect).on('reInit', handleInit);
43
+ return ()=>{
44
+ emblaApi.off('select', handleSelect).off('reInit', handleInit);
45
+ };
46
+ }, [
47
+ emblaApi,
48
+ currentSlide,
49
+ onSlideChange,
50
+ photoKey
51
+ ]);
52
+ const onKeyDown = (event)=>{
53
+ if ('ArrowLeft' === event.key || 'ArrowRight' === event.key) {
54
+ event.preventDefault();
55
+ if ('ArrowLeft' === event.key) scrollPrev();
56
+ else scrollNext();
57
+ }
37
58
  };
38
- const handleInit = () => {
39
- setScrollSnaps(emblaApi.scrollSnapList());
40
- updateControls();
59
+ return {
60
+ emblaRef,
61
+ currentSlide,
62
+ scrollSnaps,
63
+ prevButtonDisabled,
64
+ nextButtonDisabled,
65
+ scrollPrev,
66
+ scrollNext,
67
+ scrollTo,
68
+ onKeyDown
41
69
  };
42
- const handleSelect = () => {
43
- updateControls();
44
- const slide = emblaApi.selectedScrollSnap();
45
- setInternalSlide(slide);
46
- if (slide !== currentSlide) {
47
- onSlideChange?.(slide);
48
- }
49
- };
50
- handleInit();
51
- emblaApi.on('select', handleSelect).on('reInit', handleInit);
52
- return () => {
53
- emblaApi.off('select', handleSelect).off('reInit', handleInit);
54
- };
55
- }, [emblaApi, currentSlide, onSlideChange, photoKey]);
56
- const onKeyDown = event => {
57
- if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
58
- event.preventDefault();
59
- if (event.key === 'ArrowLeft') {
60
- scrollPrev();
61
- } else {
62
- scrollNext();
63
- }
64
- }
65
- };
66
- return {
67
- emblaRef,
68
- currentSlide,
69
- scrollSnaps,
70
- prevButtonDisabled,
71
- nextButtonDisabled,
72
- scrollPrev,
73
- scrollNext,
74
- scrollTo,
75
- onKeyDown
76
- };
77
70
  };
78
-
79
- export { usePhotosCarousel as default };
71
+ const PhotosCarousel_usePhotosCarousel = usePhotosCarousel;
72
+ export default PhotosCarousel_usePhotosCarousel;
@@ -1,47 +1,43 @@
1
- import 'react';
2
- import { IconButton } from '@mui/material';
3
- import Icon from '../Icon/Icon.js';
4
- import './styles.scss';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
-
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { IconButton } from "@mui/material";
4
+ import Icon from "../Icon/Icon.js";
5
+ import "./styles.scss";
7
6
  function Pill(props) {
8
- const {
9
- id,
10
- label,
11
- value,
12
- onClick,
13
- onRemove,
14
- className
15
- } = props;
16
- return /*#__PURE__*/jsxs("div", {
17
- className: `pill ${className ?? ''}`,
18
- onClick: ev => {
19
- ev.stopPropagation();
20
- if (onClick) {
21
- onClick(id);
22
- }
23
- },
24
- children: [label && /*#__PURE__*/jsxs("p", {
25
- className: "label",
26
- children: [label, ":"]
27
- }), /*#__PURE__*/jsx("p", {
28
- className: `value${label ? '' : ' value--no-label'}`,
29
- children: value
30
- }), onRemove ? /*#__PURE__*/jsx(IconButton, {
31
- onClick: ev => {
32
- ev.stopPropagation();
33
- onRemove(id);
34
- },
35
- className: "iconContainer",
36
- "aria-label": "remove",
37
- children: /*#__PURE__*/jsx(Icon, {
38
- name: "close",
39
- className: "icon"
40
- })
41
- }) : /*#__PURE__*/jsx("div", {
42
- className: "spacer"
43
- })]
44
- });
7
+ const { id, label, value, onClick, onRemove, className } = props;
8
+ return /*#__PURE__*/ jsxs("div", {
9
+ className: `pill ${className ?? ''}`,
10
+ onClick: (ev)=>{
11
+ ev.stopPropagation();
12
+ if (onClick) onClick(id);
13
+ },
14
+ children: [
15
+ label && /*#__PURE__*/ jsxs("p", {
16
+ className: "label",
17
+ children: [
18
+ label,
19
+ ":"
20
+ ]
21
+ }),
22
+ /*#__PURE__*/ jsx("p", {
23
+ className: `value${label ? '' : ' value--no-label'}`,
24
+ children: value
25
+ }),
26
+ onRemove ? /*#__PURE__*/ jsx(IconButton, {
27
+ onClick: (ev)=>{
28
+ ev.stopPropagation();
29
+ onRemove(id);
30
+ },
31
+ className: "iconContainer",
32
+ "aria-label": "remove",
33
+ children: /*#__PURE__*/ jsx(Icon, {
34
+ name: "close",
35
+ className: "icon"
36
+ })
37
+ }) : /*#__PURE__*/ jsx("div", {
38
+ className: "spacer"
39
+ })
40
+ ]
41
+ });
45
42
  }
46
-
47
- export { Pill as default };
43
+ export default Pill;
@@ -1,26 +1,19 @@
1
- import 'react';
2
- import Pill from '../Pill/index.js';
3
- import './styles.scss';
4
- import { jsx } from 'react/jsx-runtime';
5
-
1
+ import { jsx } from "react/jsx-runtime";
2
+ import "react";
3
+ import Pill from "../Pill/index.js";
4
+ import "./styles.scss";
6
5
  function PillList(props) {
7
- const {
8
- data,
9
- onClick,
10
- onRemove,
11
- className
12
- } = props;
13
- return /*#__PURE__*/jsx("div", {
14
- className: "pill-list",
15
- children: data.map((item, index) => /*#__PURE__*/jsx(Pill, {
16
- id: item.id,
17
- label: item.label,
18
- value: item.value,
19
- onClick: item.onClick || onClick,
20
- onRemove: item.onRemove || onRemove,
21
- className: item.className || className
22
- }, index))
23
- });
6
+ const { data, onClick, onRemove, className } = props;
7
+ return /*#__PURE__*/ jsx("div", {
8
+ className: "pill-list",
9
+ children: data.map((item, index)=>/*#__PURE__*/ jsx(Pill, {
10
+ id: item.id,
11
+ label: item.label,
12
+ value: item.value,
13
+ onClick: item.onClick || onClick,
14
+ onRemove: item.onRemove || onRemove,
15
+ className: item.className || className
16
+ }, index))
17
+ });
24
18
  }
25
-
26
- export { PillList as default };
19
+ export default PillList;
@@ -1,60 +1,39 @@
1
- import { useMemo } from 'react';
2
- import { useTheme, Box } from '@mui/material';
3
- import { jsxs, jsx } from 'react/jsx-runtime';
4
-
5
- /**
6
- * A component that allows simple management of the location of an object around some children
7
- *
8
- * Example:
9
- * ```
10
- * <PlacementWrapper objectPlacement={'right-end'} placedObject={<Button icon={'iconComment'} onClick={onClick} />}>
11
- * <Box>Stuff and Things</Box>
12
- * </PlacementWrapper>
13
- * ```
14
- */
15
- const PlacementWrapper = ({
16
- placedObject,
17
- children,
18
- objectPlacement
19
- }) => {
20
- const theme = useTheme();
21
- const outsideDirection = useMemo(() => {
22
- if (!objectPlacement) {
23
- return 'column';
24
- }
25
- if (objectPlacement.startsWith('top')) {
26
- return 'column';
27
- } else if (objectPlacement.startsWith('bottom')) {
28
- return 'column-reverse';
29
- } else if (objectPlacement.startsWith('left')) {
30
- return 'row';
31
- } else {
32
- return 'row-reverse';
33
- }
34
- }, [objectPlacement]);
35
- const insideAlignment = useMemo(() => {
36
- if (!objectPlacement) {
37
- return 'center';
38
- }
39
- if (objectPlacement.endsWith('start')) {
40
- return 'flex-start';
41
- } else if (objectPlacement.endsWith('end')) {
42
- return 'flex-end';
43
- } else {
44
- return 'center';
45
- }
46
- }, [objectPlacement]);
47
- return /*#__PURE__*/jsxs(Box, {
48
- display: 'flex',
49
- flexDirection: outsideDirection,
50
- flexGrow: 1,
51
- marginBottom: theme.spacing(2),
52
- children: [/*#__PURE__*/jsx(Box, {
53
- alignSelf: insideAlignment,
54
- margin: theme.spacing(1),
55
- children: placedObject
56
- }), children]
57
- });
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { Box, useTheme } from "@mui/material";
4
+ const PlacementWrapper = ({ placedObject, children, objectPlacement })=>{
5
+ const theme = useTheme();
6
+ const outsideDirection = useMemo(()=>{
7
+ if (!objectPlacement) return 'column';
8
+ if (objectPlacement.startsWith('top')) return 'column';
9
+ else if (objectPlacement.startsWith('bottom')) return 'column-reverse';
10
+ else if (objectPlacement.startsWith('left')) return 'row';
11
+ else return 'row-reverse';
12
+ }, [
13
+ objectPlacement
14
+ ]);
15
+ const insideAlignment = useMemo(()=>{
16
+ if (!objectPlacement) return 'center';
17
+ if (objectPlacement.endsWith('start')) return 'flex-start';
18
+ else if (objectPlacement.endsWith('end')) return 'flex-end';
19
+ else return 'center';
20
+ }, [
21
+ objectPlacement
22
+ ]);
23
+ return /*#__PURE__*/ jsxs(Box, {
24
+ display: 'flex',
25
+ flexDirection: outsideDirection,
26
+ flexGrow: 1,
27
+ marginBottom: theme.spacing(2),
28
+ children: [
29
+ /*#__PURE__*/ jsx(Box, {
30
+ alignSelf: insideAlignment,
31
+ margin: theme.spacing(1),
32
+ children: placedObject
33
+ }),
34
+ children
35
+ ]
36
+ });
58
37
  };
59
-
60
- export { PlacementWrapper as default };
38
+ const components_PlacementWrapper = PlacementWrapper;
39
+ export default components_PlacementWrapper;
@@ -1,87 +1,70 @@
1
- import 'react';
2
- import { useTheme, Popover, MenuList, Divider, MenuItem } from '@mui/material';
3
- import { jsx } from 'react/jsx-runtime';
4
-
1
+ import { jsx } from "react/jsx-runtime";
2
+ import "react";
3
+ import { Divider, MenuItem, MenuList, Popover, useTheme } from "@mui/material";
5
4
  function PopoverDropdown(props) {
6
- const {
7
- sections,
8
- handleClick,
9
- anchorElement,
10
- setAnchorElement,
11
- itemRenderer,
12
- menuAlign,
13
- selectedValue,
14
- onClose,
15
- container
16
- } = props;
17
- const theme = useTheme();
18
- const handleClose = () => {
19
- if (onClose) {
20
- onClose();
21
- }
22
- setAnchorElement(null);
23
- };
24
- const onClick = item => {
25
- if (item.onClick) {
26
- item.onClick();
27
- }
28
- handleClick(item);
29
- };
30
- const itemStyles = type => ({
31
- color: type === 'destructive' ? theme.palette.TwClrTxtDanger : theme.palette.TwClrTxt,
32
- '& .MuiMenuItem-root:hover': {
33
- backgroundColor: theme.palette.TwClrBgSelectedGhostHover
34
- },
35
- '&.MuiMenuItem-root:active': {
36
- backgroundColor: theme.palette.TwClrBgSelectedGhostActive
37
- }
38
- });
39
- return /*#__PURE__*/jsx(Popover, {
40
- id: "simple-popover",
41
- container: container,
42
- open: Boolean(anchorElement),
43
- anchorEl: anchorElement,
44
- onClose: handleClose,
45
- anchorOrigin: {
46
- vertical: 'bottom',
47
- horizontal: menuAlign ?? 'left'
48
- },
49
- transformOrigin: {
50
- vertical: 'top',
51
- horizontal: menuAlign ?? 'left'
52
- },
53
- sx: {
54
- '& .MuiPaper-root': {
55
- borderRadius: '8px',
56
- boxShadow: 'none',
57
- border: `1px solid ${theme.palette.TwClrBrdrSecondary}`,
58
- paddingY: '8px',
59
- marginTop: '4px'
60
- }
61
- },
62
- children: /*#__PURE__*/jsx(MenuList, {
63
- sx: {
64
- padding: 0
65
- },
66
- children: sections?.map((section, index) => {
67
- let elements = [];
68
- if (index > 0) {
69
- elements.push(/*#__PURE__*/jsx(Divider, {}));
70
- }
71
- elements = [...elements, ...section.map((item, itemIndex) => {
72
- return /*#__PURE__*/jsx(MenuItem, {
73
- onClick: () => onClick(item),
74
- sx: itemStyles(item.type),
75
- disableRipple: true,
76
- disabled: item.disabled,
77
- selected: item.value === selectedValue,
78
- children: itemRenderer ? itemRenderer(item) : item.label
79
- }, `option-${itemIndex}`);
80
- })];
81
- return elements;
82
- })
83
- })
84
- });
5
+ const { sections, handleClick, anchorElement, setAnchorElement, itemRenderer, menuAlign, selectedValue, onClose, container } = props;
6
+ const theme = useTheme();
7
+ const handleClose = ()=>{
8
+ if (onClose) onClose();
9
+ setAnchorElement(null);
10
+ };
11
+ const onClick = (item)=>{
12
+ if (item.onClick) item.onClick();
13
+ handleClick(item);
14
+ };
15
+ const itemStyles = (type)=>({
16
+ color: 'destructive' === type ? theme.palette.TwClrTxtDanger : theme.palette.TwClrTxt,
17
+ '& .MuiMenuItem-root:hover': {
18
+ backgroundColor: theme.palette.TwClrBgSelectedGhostHover
19
+ },
20
+ '&.MuiMenuItem-root:active': {
21
+ backgroundColor: theme.palette.TwClrBgSelectedGhostActive
22
+ }
23
+ });
24
+ return /*#__PURE__*/ jsx(Popover, {
25
+ id: "simple-popover",
26
+ container: container,
27
+ open: Boolean(anchorElement),
28
+ anchorEl: anchorElement,
29
+ onClose: handleClose,
30
+ anchorOrigin: {
31
+ vertical: 'bottom',
32
+ horizontal: menuAlign ?? 'left'
33
+ },
34
+ transformOrigin: {
35
+ vertical: 'top',
36
+ horizontal: menuAlign ?? 'left'
37
+ },
38
+ sx: {
39
+ '& .MuiPaper-root': {
40
+ borderRadius: '8px',
41
+ boxShadow: 'none',
42
+ border: `1px solid ${theme.palette.TwClrBrdrSecondary}`,
43
+ paddingY: '8px',
44
+ marginTop: '4px'
45
+ }
46
+ },
47
+ children: /*#__PURE__*/ jsx(MenuList, {
48
+ sx: {
49
+ padding: 0
50
+ },
51
+ children: sections?.map((section, index)=>{
52
+ let elements = [];
53
+ if (index > 0) elements.push(/*#__PURE__*/ jsx(Divider, {}));
54
+ elements = [
55
+ ...elements,
56
+ ...section.map((item, itemIndex)=>/*#__PURE__*/ jsx(MenuItem, {
57
+ onClick: ()=>onClick(item),
58
+ sx: itemStyles(item.type),
59
+ disableRipple: true,
60
+ disabled: item.disabled,
61
+ selected: item.value === selectedValue,
62
+ children: itemRenderer ? itemRenderer(item) : item.label
63
+ }, `option-${itemIndex}`))
64
+ ];
65
+ return elements;
66
+ })
67
+ })
68
+ });
85
69
  }
86
-
87
- export { PopoverDropdown as default };
70
+ export default PopoverDropdown;
@@ -1,57 +1,52 @@
1
- import { useState } from 'react';
2
- import { useTheme, IconButton } from '@mui/material';
3
- import Icon from '../Icon/Icon.js';
4
- import PopoverDropdown from './Popover.js';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
-
7
- function PopoverMenu({
8
- anchor,
9
- container,
10
- menuSections,
11
- onClick,
12
- showChevron = true,
13
- selectedValue
14
- }) {
15
- const theme = useTheme();
16
- const [anchorEl, setAnchorEl] = useState(null);
17
- const handleClick = event => {
18
- setAnchorEl(event.currentTarget);
19
- };
20
- const handleClose = () => {
21
- setAnchorEl(null);
22
- };
23
- const onItemClick = selectedItem => {
24
- if (onClick) {
25
- onClick(selectedItem);
26
- }
27
- handleClose();
28
- };
29
- return /*#__PURE__*/jsxs("div", {
30
- children: [/*#__PURE__*/jsxs(IconButton, {
31
- onClick: handleClick,
32
- size: "small",
33
- sx: {
34
- height: '48px',
35
- borderRadius: '16px',
36
- padding: theme.spacing(1.5, 2)
37
- },
38
- children: [anchor, showChevron && /*#__PURE__*/jsx(Icon, {
39
- name: "chevronDown",
40
- size: "medium",
41
- style: {
42
- marginLeft: '8px',
43
- fill: theme.palette.TwClrIcn
44
- }
45
- })]
46
- }), /*#__PURE__*/jsx(PopoverDropdown, {
47
- sections: menuSections,
48
- handleClick: onItemClick,
49
- anchorElement: anchorEl,
50
- setAnchorElement: setAnchorEl,
51
- selectedValue: selectedValue,
52
- container: container
53
- })]
54
- });
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { IconButton, useTheme } from "@mui/material";
4
+ import Icon from "../Icon/Icon.js";
5
+ import Popover from "./Popover.js";
6
+ function PopoverMenu({ anchor, container, menuSections, onClick, showChevron = true, selectedValue }) {
7
+ const theme = useTheme();
8
+ const [anchorEl, setAnchorEl] = useState(null);
9
+ const handleClick = (event)=>{
10
+ setAnchorEl(event.currentTarget);
11
+ };
12
+ const handleClose = ()=>{
13
+ setAnchorEl(null);
14
+ };
15
+ const onItemClick = (selectedItem)=>{
16
+ if (onClick) onClick(selectedItem);
17
+ handleClose();
18
+ };
19
+ return /*#__PURE__*/ jsxs("div", {
20
+ children: [
21
+ /*#__PURE__*/ jsxs(IconButton, {
22
+ onClick: handleClick,
23
+ size: "small",
24
+ sx: {
25
+ height: '48px',
26
+ borderRadius: '16px',
27
+ padding: theme.spacing(1.5, 2)
28
+ },
29
+ children: [
30
+ anchor,
31
+ showChevron && /*#__PURE__*/ jsx(Icon, {
32
+ name: "chevronDown",
33
+ size: "medium",
34
+ style: {
35
+ marginLeft: '8px',
36
+ fill: theme.palette.TwClrIcn
37
+ }
38
+ })
39
+ ]
40
+ }),
41
+ /*#__PURE__*/ jsx(Popover, {
42
+ sections: menuSections,
43
+ handleClick: onItemClick,
44
+ anchorElement: anchorEl,
45
+ setAnchorElement: setAnchorEl,
46
+ selectedValue: selectedValue,
47
+ container: container
48
+ })
49
+ ]
50
+ });
55
51
  }
56
-
57
- export { PopoverMenu as default };
52
+ export default PopoverMenu;