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

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 +22 -19
  2. package/components/Autocomplete/Autocomplete.js +130 -106
  3. package/components/Badge/index.js +29 -28
  4. package/components/BusySpinner/index.js +45 -40
  5. package/components/Button/Button.js +47 -41
  6. package/components/Checkbox.js +63 -64
  7. package/components/Confirm/index.js +83 -74
  8. package/components/DatePicker/DatePicker.js +141 -138
  9. package/components/DialogBox/DialogBox.js +118 -111
  10. package/components/Divisor.js +18 -18
  11. package/components/Dropdown.js +94 -66
  12. package/components/EditableTable/index.js +271 -211
  13. package/components/ErrorBox/ErrorBox.js +49 -47
  14. package/components/FileChooser/index.js +135 -117
  15. package/components/FormBottomBar/index.js +84 -75
  16. package/components/Icon/Icon.js +20 -12
  17. package/components/Icon/icons/index.js +256 -256
  18. package/components/IconTooltip/index.js +60 -49
  19. package/components/Map/MapBox.js +452 -545
  20. package/components/Map/MapContainer.js +29 -25
  21. package/components/Map/MapDateSliderControl.js +64 -64
  22. package/components/Map/MapDrawer.js +47 -41
  23. package/components/Map/MapLegend.js +172 -176
  24. package/components/Map/MapViewStyleControl.js +63 -59
  25. package/components/Map/ReactMapboxWrapper.js +2 -3
  26. package/components/Map/index.js +180 -161
  27. package/components/Map/types.js +17 -12
  28. package/components/Map/useMaintainLayerOrder.js +26 -16
  29. package/components/Markdown/index.js +26 -25
  30. package/components/Message/Message.js +76 -73
  31. package/components/MultiSelect/index.js +124 -112
  32. package/components/Navbar/NavFooter.js +13 -9
  33. package/components/Navbar/NavItem.js +76 -70
  34. package/components/Navbar/NavSection.js +19 -17
  35. package/components/Navbar/Navbar.js +46 -39
  36. package/components/Navbar/SubNavbar.js +13 -9
  37. package/components/Note.js +22 -18
  38. package/components/OverlayModal/OverlayModal.js +63 -56
  39. package/components/PageForm/index.js +41 -33
  40. package/components/PhotoChooser/index.js +173 -165
  41. package/components/PhotosCarousel/PhotoSlide.js +35 -32
  42. package/components/PhotosCarousel/index.js +85 -80
  43. package/components/PhotosCarousel/usePhotosCarousel.js +76 -69
  44. package/components/Pill/index.js +45 -41
  45. package/components/PillList/index.js +24 -17
  46. package/components/PlacementWrapper/index.js +59 -38
  47. package/components/PopoverMenu/Popover.js +85 -68
  48. package/components/PopoverMenu/index.js +56 -51
  49. package/components/PopoverMultiSelect/index.js +59 -52
  50. package/components/ProgressCircle/ProgressCircle.js +32 -28
  51. package/components/RadioButton.js +19 -17
  52. package/components/Select/Select.js +15 -13
  53. package/components/Select/SelectT.js +250 -235
  54. package/components/Separator/index.js +17 -14
  55. package/components/Size.js +1 -0
  56. package/components/Slider/index.js +56 -43
  57. package/components/SummaryBox.js +72 -70
  58. package/components/Tabs/index.js +135 -133
  59. package/components/TextTruncated/index.js +130 -117
  60. package/components/Textfield/Textfield.js +190 -158
  61. package/components/Textfield/TruncatedTextArea.js +84 -70
  62. package/components/TimelineSlider/TimelineMarker.js +30 -25
  63. package/components/TimelineSlider/TimelineRail.js +11 -8
  64. package/components/TimelineSlider/index.js +66 -64
  65. package/components/TimelineSliderV2/ClusterBadge.js +29 -25
  66. package/components/TimelineSliderV2/TimelineDot.js +35 -31
  67. package/components/TimelineSliderV2/TimelineRail.js +11 -8
  68. package/components/TimelineSliderV2/index.js +103 -121
  69. package/components/TimelineSliderV2/layout.js +147 -124
  70. package/components/TimelineSliderV2/types.js +1 -0
  71. package/components/Tooltip/Tooltip.js +56 -47
  72. package/components/ViewPhotosDialog/index.js +35 -28
  73. package/components/VirtualWalkthrough/Annotation.js +207 -163
  74. package/components/VirtualWalkthrough/AnnotationEditPane.js +184 -198
  75. package/components/VirtualWalkthrough/AnnotationPanel.js +199 -187
  76. package/components/VirtualWalkthrough/Application.js +34 -31
  77. package/components/VirtualWalkthrough/AutoRotator.js +223 -85
  78. package/components/VirtualWalkthrough/BlockingSpinner.js +28 -26
  79. package/components/VirtualWalkthrough/BoundaryRing.js +34 -30
  80. package/components/VirtualWalkthrough/BoundaryWall.js +36 -32
  81. package/components/VirtualWalkthrough/CameraInfo.js +89 -100
  82. package/components/VirtualWalkthrough/ControlsInfoPane.js +195 -254
  83. package/components/VirtualWalkthrough/GradientSky.js +73 -72
  84. package/components/VirtualWalkthrough/SplatControls.js +221 -209
  85. package/components/VirtualWalkthrough/SplatCrop.js +20 -21
  86. package/components/VirtualWalkthrough/SplatFadeCrop.js +20 -21
  87. package/components/VirtualWalkthrough/SplatModel.js +85 -65
  88. package/components/VirtualWalkthrough/SplatRevealRain.js +46 -41
  89. package/components/VirtualWalkthrough/TfAnnotationManager.js +379 -197
  90. package/components/VirtualWalkthrough/TfXrNavigation.js +162 -73
  91. package/components/VirtualWalkthrough/VirtualWalkthroughViewer.js +431 -438
  92. package/components/VirtualWalkthrough/VrAnnotationPanel.js +22 -18
  93. package/components/VirtualWalkthrough/XrAnnotationInteraction.js +17 -14
  94. package/components/VirtualWalkthrough/XrExitButton.js +17 -14
  95. package/components/VirtualWalkthrough/XrGazeDwell.js +17 -14
  96. package/components/VirtualWalkthrough/XrPointerRay.js +17 -14
  97. package/components/VirtualWalkthrough/XrStartPose.js +121 -67
  98. package/components/VirtualWalkthrough/boundary-ring.js +117 -87
  99. package/components/VirtualWalkthrough/boundary-wall.js +258 -175
  100. package/components/VirtualWalkthrough/camera-adoption.js +64 -18
  101. package/components/VirtualWalkthrough/groundPlane.js +47 -32
  102. package/components/VirtualWalkthrough/gsplat-fade-crop-effect.js +35 -35
  103. package/components/VirtualWalkthrough/splatFormat.js +47 -13
  104. package/components/VirtualWalkthrough/useAdoptedCamera.js +44 -23
  105. package/components/VirtualWalkthrough/useRestartOnVr.js +37 -26
  106. package/components/VirtualWalkthrough/useXrRenderTuning.js +54 -33
  107. package/components/VirtualWalkthrough/vr-annotation-panel-layout.js +99 -67
  108. package/components/VirtualWalkthrough/vr-annotation-panel.js +433 -403
  109. package/components/VirtualWalkthrough/vr-annotation-scroll.js +28 -10
  110. package/components/VirtualWalkthrough/walkthrough-camera.js +329 -204
  111. package/components/VirtualWalkthrough/xr-annotation-candidate-buffer.js +80 -39
  112. package/components/VirtualWalkthrough/xr-annotation-candidates.js +18 -6
  113. package/components/VirtualWalkthrough/xr-annotation-interaction.js +56 -31
  114. package/components/VirtualWalkthrough/xr-annotation-targeting.js +38 -22
  115. package/components/VirtualWalkthrough/xr-button-arming.js +17 -7
  116. package/components/VirtualWalkthrough/xr-button-hold.js +36 -22
  117. package/components/VirtualWalkthrough/xr-exit-button-mask.js +36 -22
  118. package/components/VirtualWalkthrough/xr-exit-button.js +207 -148
  119. package/components/VirtualWalkthrough/xr-face-buttons.js +29 -19
  120. package/components/VirtualWalkthrough/xr-gaze-dwell-state.js +34 -23
  121. package/components/VirtualWalkthrough/xr-gaze-dwell.js +144 -107
  122. package/components/VirtualWalkthrough/xr-interactive-ui.js +24 -12
  123. package/components/VirtualWalkthrough/xr-pointer-ray.js +20 -13
  124. package/components/VirtualWalkthrough/xr-progress-pie-material.js +88 -117
  125. package/components/VirtualWalkthrough/xr-progress-pie.js +10 -1
  126. package/components/VirtualWalkthrough/xr-ray-quad.js +30 -16
  127. package/components/VirtualWalkthrough/xr-render-tuning.js +48 -17
  128. package/components/VirtualWalkthrough/xr-scene-bounds.js +37 -21
  129. package/components/VirtualWalkthrough/xr-start-pose.js +73 -27
  130. package/components/VirtualWalkthrough/xr-teleport-gesture.js +42 -16
  131. package/components/svg/BlobbyGrayIconImage.js +39 -41
  132. package/components/svg/BlobbyGrayIconImport.js +39 -41
  133. package/components/svg/BlobbyGrayIconUploadToTheCloud.js +39 -41
  134. package/components/svg/BlobbyIconCloudChecked.js +164 -202
  135. package/components/svg/BlobbyIconExportOrUploadPhoto.js +164 -202
  136. package/components/svg/BlobbyIconFolder.js +164 -202
  137. package/components/svg/BlobbyIconGraphReport.js +164 -202
  138. package/components/svg/BlobbyIconHappy.js +164 -202
  139. package/components/svg/BlobbyIconHeartMonitor.js +164 -202
  140. package/components/svg/BlobbyIconLeaf.js +164 -202
  141. package/components/svg/BlobbyIconLibrary.js +164 -202
  142. package/components/svg/BlobbyIconNursery.js +166 -204
  143. package/components/svg/BlobbyIconOrganization.js +164 -202
  144. package/components/svg/BlobbyIconParchment.js +164 -202
  145. package/components/svg/BlobbyIconPeople.js +164 -202
  146. package/components/svg/BlobbyIconSeedBank.js +164 -202
  147. package/components/svg/BlobbyIconSeedling.js +164 -202
  148. package/components/svg/BlobbyIconSeeds.js +164 -202
  149. package/components/svg/BlobbyIconSite.js +167 -206
  150. package/components/svg/BlobbyIconSparkles.js +164 -202
  151. package/components/svg/BlobbyIconWrench.js +164 -202
  152. package/components/svg/Bug.js +21 -19
  153. package/components/svg/Calendar.js +21 -19
  154. package/components/svg/CaretDown.js +21 -19
  155. package/components/svg/CaretLeft.js +21 -19
  156. package/components/svg/CaretRight.js +21 -19
  157. package/components/svg/CaretUp.js +21 -19
  158. package/components/svg/ChevronDown.js +21 -19
  159. package/components/svg/ChevronUp.js +21 -19
  160. package/components/svg/Close.js +21 -19
  161. package/components/svg/Critical.js +21 -19
  162. package/components/svg/Edit.js +164 -202
  163. package/components/svg/Error.js +21 -19
  164. package/components/svg/Filter.js +21 -19
  165. package/components/svg/Folder.js +21 -19
  166. package/components/svg/Help.js +21 -19
  167. package/components/svg/Home.js +21 -19
  168. package/components/svg/IconAdd.js +21 -19
  169. package/components/svg/IconArrowRight.js +23 -21
  170. package/components/svg/IconBusinessNetwork.js +21 -19
  171. package/components/svg/IconCalendar.js +21 -19
  172. package/components/svg/IconCancel.js +21 -19
  173. package/components/svg/IconChargingBattery.js +21 -19
  174. package/components/svg/IconChecklist.js +23 -21
  175. package/components/svg/IconCheckmark.js +21 -19
  176. package/components/svg/IconCoinInHand.js +21 -19
  177. package/components/svg/IconColumns.js +21 -19
  178. package/components/svg/IconComment.js +22 -20
  179. package/components/svg/IconDashboard.js +21 -19
  180. package/components/svg/IconDataMigration.js +21 -19
  181. package/components/svg/IconDocument.js +23 -21
  182. package/components/svg/IconDownloadFromTheCloud.js +23 -21
  183. package/components/svg/IconEdit.js +23 -21
  184. package/components/svg/IconExpand.js +23 -21
  185. package/components/svg/IconExport.js +21 -19
  186. package/components/svg/IconExternalLink.js +21 -19
  187. package/components/svg/IconEye.js +21 -19
  188. package/components/svg/IconEyeOff.js +21 -19
  189. package/components/svg/IconFile.js +21 -19
  190. package/components/svg/IconFolder.js +21 -19
  191. package/components/svg/IconFullScreen.js +22 -20
  192. package/components/svg/IconFutures.js +21 -19
  193. package/components/svg/IconGraphReport.js +21 -19
  194. package/components/svg/IconGrid.js +21 -19
  195. package/components/svg/IconHeartMonitor.js +21 -19
  196. package/components/svg/IconHelp.js +23 -21
  197. package/components/svg/IconHistory.js +21 -19
  198. package/components/svg/IconImport.js +21 -19
  199. package/components/svg/IconIndex.js +21 -19
  200. package/components/svg/IconLayers.js +21 -19
  201. package/components/svg/IconLibrary.js +22 -20
  202. package/components/svg/IconList.js +21 -19
  203. package/components/svg/IconLivePlant.js +21 -19
  204. package/components/svg/IconLocations.js +21 -19
  205. package/components/svg/IconMail.js +21 -19
  206. package/components/svg/IconManager.js +21 -19
  207. package/components/svg/IconMap.js +21 -19
  208. package/components/svg/IconMarker.js +21 -19
  209. package/components/svg/IconMenu.js +21 -19
  210. package/components/svg/IconMenuHorizontal.js +21 -19
  211. package/components/svg/IconModule.js +21 -19
  212. package/components/svg/IconMyLocation.js +21 -19
  213. package/components/svg/IconNote.js +23 -21
  214. package/components/svg/IconNursery.js +23 -21
  215. package/components/svg/IconOrg.js +21 -19
  216. package/components/svg/IconParchment.js +21 -19
  217. package/components/svg/IconPhoto.js +21 -19
  218. package/components/svg/IconPlantsFilled.js +21 -19
  219. package/components/svg/IconRedo.js +21 -19
  220. package/components/svg/IconRestorationSite.js +21 -19
  221. package/components/svg/IconSeedBank.js +21 -19
  222. package/components/svg/IconSeedling.js +21 -19
  223. package/components/svg/IconSettings.js +21 -19
  224. package/components/svg/IconSlice.js +21 -19
  225. package/components/svg/IconSubmit.js +21 -19
  226. package/components/svg/IconSubtract.js +23 -21
  227. package/components/svg/IconSynced.js +21 -19
  228. package/components/svg/IconTrashCan.js +21 -19
  229. package/components/svg/IconTreasureMap.js +21 -19
  230. package/components/svg/IconUnavailable.js +21 -19
  231. package/components/svg/IconUndo.js +21 -19
  232. package/components/svg/IconVariable.js +21 -19
  233. package/components/svg/IconVideo.js +31 -30
  234. package/components/svg/IconWifi.js +21 -19
  235. package/components/svg/Info.js +21 -19
  236. package/components/svg/Key.js +21 -19
  237. package/components/svg/Leaf.js +21 -19
  238. package/components/svg/Lock.js +21 -19
  239. package/components/svg/Logo.js +43 -48
  240. package/components/svg/MenuVertical.js +21 -19
  241. package/components/svg/Notification.js +21 -19
  242. package/components/svg/Person.js +21 -19
  243. package/components/svg/Plus.js +21 -19
  244. package/components/svg/RestorationSite.js +21 -19
  245. package/components/svg/Search.js +21 -19
  246. package/components/svg/Seeds.js +21 -19
  247. package/components/svg/Site.js +21 -19
  248. package/components/svg/Sparkles.js +21 -19
  249. package/components/svg/Species.js +21 -19
  250. package/components/svg/Species2.js +164 -202
  251. package/components/svg/Spinner.js +48 -54
  252. package/components/svg/Star.js +21 -19
  253. package/components/svg/Success.js +21 -19
  254. package/components/svg/SuccessFilled.js +21 -19
  255. package/components/svg/TerrawareLogoDesktop.js +49 -55
  256. package/components/svg/TerrawareLogoMobile.js +26 -25
  257. package/components/svg/Touchscreen.js +21 -19
  258. package/components/svg/UploadCloud.js +164 -202
  259. package/components/svg/Warning.js +21 -19
  260. package/components/svg/WelcomeClipboard.js +133 -156
  261. package/components/svg/index.js +129 -129
  262. package/components/table/EnhancedTableToolbar.js +74 -68
  263. package/components/table/EnhancedTableToolbarV2.js +41 -31
  264. package/components/table/TableCellRenderer.js +231 -196
  265. package/components/table/TableHeader.js +73 -71
  266. package/components/table/TableHeaderItem.js +102 -97
  267. package/components/table/density.js +19 -18
  268. package/components/table/index.js +369 -350
  269. package/components/table/sort.js +52 -27
  270. package/components/table/types.js +1 -0
  271. package/components/types/index.js +1 -0
  272. package/hooks/cameraEntityContext.js +13 -2
  273. package/hooks/useBoolean.js +13 -17
  274. package/hooks/useCameraPosition.js +56 -56
  275. package/hooks/useDevicePerformance.js +17 -17
  276. package/hooks/useXr.js +87 -85
  277. package/index.js +58 -58
  278. package/package.json +1 -1
  279. package/setupTests.js +4 -0
  280. package/strings/export.js +170 -111
  281. package/strings/index.js +54 -25
  282. package/strings/locales.js +41 -21
  283. package/strings/strings-en.js +51 -49
  284. package/strings/strings-es.js +51 -49
  285. package/strings/strings-fr.js +51 -49
  286. package/strings/strings-gx.js +51 -49
  287. package/style-dictionary-dist/TerrawareTheme.js +186 -186
  288. package/theme.js +76 -74
  289. package/utils/color.js +15 -8
  290. package/utils/date.js +108 -42
  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 +79 -42
  295. package/virtualWalkthrough.js +23 -23
@@ -1,72 +1,86 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
3
- import { Link, Typography, useTheme } from "@mui/material";
4
- import "./styles.scss";
5
- const TruncatedTextArea = ({ truncateConfig, children })=>{
6
- const { maxHeight, showLessText, showMoreText, showTextStyle, alignment = 'left', collapseOnBlur = false } = truncateConfig;
7
- const theme = useTheme();
8
- const [showAll, setShowAll] = useState(false);
9
- const [needsTruncating, setNeedsTruncating] = useState(false);
10
- const contentRef = useRef(null);
11
- useEffect(()=>{
12
- const node = contentRef.current;
13
- if (!node) return;
14
- const measure = ()=>{
15
- const truncating = node.offsetHeight > maxHeight;
16
- setNeedsTruncating(truncating);
17
- if (!truncating) setShowAll(false);
18
- };
19
- measure();
20
- const observer = new ResizeObserver(measure);
21
- observer.observe(node);
22
- return ()=>observer.disconnect();
23
- }, [
24
- maxHeight
25
- ]);
26
- const toggleShowAll = ()=>setShowAll((prev)=>!prev);
27
- const containerStyle = {
28
- margin: 0,
29
- padding: 0,
30
- overflow: 'hidden',
31
- width: '100%'
1
+ import { useState, useRef, useEffect } from 'react';
2
+ import { useTheme, Link, Typography } from '@mui/material';
3
+ import './styles.scss';
4
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
+
6
+ const TruncatedTextArea = ({
7
+ truncateConfig,
8
+ children
9
+ }) => {
10
+ const {
11
+ maxHeight,
12
+ showLessText,
13
+ showMoreText,
14
+ showTextStyle,
15
+ alignment = 'left',
16
+ collapseOnBlur = false
17
+ } = truncateConfig;
18
+ const theme = useTheme();
19
+ const [showAll, setShowAll] = useState(false);
20
+ const [needsTruncating, setNeedsTruncating] = useState(false);
21
+ const contentRef = useRef(null);
22
+ useEffect(() => {
23
+ const node = contentRef.current;
24
+ if (!node) {
25
+ return;
26
+ }
27
+ const measure = () => {
28
+ // offsetHeight is an untransformed layout value, so it is in the same units as maxHeight
29
+ const truncating = node.offsetHeight > maxHeight;
30
+ setNeedsTruncating(truncating);
31
+ if (!truncating) {
32
+ // Otherwise content that grows long again later would start out expanded
33
+ setShowAll(false);
34
+ }
32
35
  };
33
- if (needsTruncating && !showAll) containerStyle.maxHeight = `${maxHeight}px`;
34
- return /*#__PURE__*/ jsxs(Fragment, {
35
- children: [
36
- /*#__PURE__*/ jsx("div", {
37
- style: containerStyle,
38
- children: /*#__PURE__*/ jsx("div", {
39
- ref: contentRef,
40
- style: {
41
- display: 'flow-root'
42
- },
43
- children: children
44
- })
45
- }),
46
- needsTruncating && /*#__PURE__*/ jsx("div", {
47
- style: {
48
- width: '100%',
49
- textAlign: alignment
50
- },
51
- children: /*#__PURE__*/ jsx(Link, {
52
- component: "button",
53
- onClick: toggleShowAll,
54
- onBlur: collapseOnBlur ? ()=>setShowAll(false) : void 0,
55
- sx: {
56
- color: theme.palette.TwClrTxtBrand,
57
- textDecorationColor: `${theme.palette.TwClrTxtBrand}80`
58
- },
59
- children: /*#__PURE__*/ jsx(Typography, {
60
- sx: {
61
- ...showTextStyle,
62
- marginTop: '-3px'
63
- },
64
- children: showAll ? showLessText : showMoreText
65
- })
66
- })
67
- })
68
- ]
69
- });
36
+ measure();
37
+ const observer = new ResizeObserver(measure);
38
+ observer.observe(node);
39
+ return () => observer.disconnect();
40
+ }, [maxHeight]);
41
+ const toggleShowAll = () => setShowAll(prev => !prev);
42
+ const containerStyle = {
43
+ margin: 0,
44
+ padding: 0,
45
+ overflow: 'hidden',
46
+ width: '100%'
47
+ };
48
+ if (needsTruncating && !showAll) {
49
+ containerStyle.maxHeight = `${maxHeight}px`;
50
+ }
51
+ return /*#__PURE__*/jsxs(Fragment, {
52
+ children: [/*#__PURE__*/jsx("div", {
53
+ style: containerStyle,
54
+ children: /*#__PURE__*/jsx("div", {
55
+ ref: contentRef,
56
+ style: {
57
+ display: 'flow-root'
58
+ },
59
+ children: children
60
+ })
61
+ }), needsTruncating && /*#__PURE__*/jsx("div", {
62
+ style: {
63
+ width: '100%',
64
+ textAlign: alignment
65
+ },
66
+ children: /*#__PURE__*/jsx(Link, {
67
+ component: "button",
68
+ onClick: toggleShowAll,
69
+ onBlur: collapseOnBlur ? () => setShowAll(false) : undefined,
70
+ sx: {
71
+ color: theme.palette.TwClrTxtBrand,
72
+ textDecorationColor: `${theme.palette.TwClrTxtBrand}80`
73
+ },
74
+ children: /*#__PURE__*/jsx(Typography, {
75
+ sx: {
76
+ ...showTextStyle,
77
+ marginTop: '-3px'
78
+ },
79
+ children: showAll ? showLessText : showMoreText
80
+ })
81
+ })
82
+ })]
83
+ });
70
84
  };
71
- const Textfield_TruncatedTextArea = TruncatedTextArea;
72
- export default Textfield_TruncatedTextArea;
85
+
86
+ export { TruncatedTextArea as default };
@@ -1,26 +1,31 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "react";
3
- import "./styles.scss";
4
- const TimelineMarker = ({ color, labelBottom, labelTop, onClick, size, value })=>{
5
- const clampedValue = Math.min(1, Math.max(0, value));
6
- return /*#__PURE__*/ jsxs("div", {
7
- className: `timeline-marker timeline-marker--${size} ${onClick ? 'timeline-marker--clickable' : ''}`,
8
- style: {
9
- left: `${100 * clampedValue}%`,
10
- backgroundColor: color
11
- },
12
- onClick: onClick,
13
- children: [
14
- labelTop && /*#__PURE__*/ jsx("div", {
15
- className: "timeline-marker__label timeline-marker__label--top",
16
- children: labelTop
17
- }),
18
- labelBottom && /*#__PURE__*/ jsx("div", {
19
- className: "timeline-marker__label timeline-marker__label--bottom",
20
- children: labelBottom
21
- })
22
- ]
23
- });
1
+ import 'react';
2
+ import './styles.scss';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ const TimelineMarker = ({
6
+ color,
7
+ labelBottom,
8
+ labelTop,
9
+ onClick,
10
+ size,
11
+ value
12
+ }) => {
13
+ const clampedValue = Math.min(1, Math.max(0, value));
14
+ return /*#__PURE__*/jsxs("div", {
15
+ className: `timeline-marker timeline-marker--${size} ${onClick ? 'timeline-marker--clickable' : ''}`,
16
+ style: {
17
+ left: `${clampedValue * 100}%`,
18
+ backgroundColor: color
19
+ },
20
+ onClick: onClick,
21
+ children: [labelTop && /*#__PURE__*/jsx("div", {
22
+ className: "timeline-marker__label timeline-marker__label--top",
23
+ children: labelTop
24
+ }), labelBottom && /*#__PURE__*/jsx("div", {
25
+ className: "timeline-marker__label timeline-marker__label--bottom",
26
+ children: labelBottom
27
+ })]
28
+ });
24
29
  };
25
- const TimelineSlider_TimelineMarker = TimelineMarker;
26
- export default TimelineSlider_TimelineMarker;
30
+
31
+ export { TimelineMarker as default };
@@ -1,8 +1,11 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "react";
3
- import "./styles.scss";
4
- const TimelineRail = ()=>/*#__PURE__*/ jsx("div", {
5
- className: "timeline-rail"
6
- });
7
- const TimelineSlider_TimelineRail = TimelineRail;
8
- export default TimelineSlider_TimelineRail;
1
+ import 'react';
2
+ import './styles.scss';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ const TimelineRail = () => {
6
+ return /*#__PURE__*/jsx("div", {
7
+ className: "timeline-rail"
8
+ });
9
+ };
10
+
11
+ export { TimelineRail as default };
@@ -1,65 +1,67 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { useTheme } from "@mui/material";
4
- import TimelineMarker from "./TimelineMarker.js";
5
- import TimelineRail from "./TimelineRail.js";
6
- import "./styles.scss";
7
- const TimelineSlider = ({ labelEnd, labelSelected, labelStart, marks })=>{
8
- const theme = useTheme();
9
- const { minValue, maxValue } = useMemo(()=>{
10
- const values = marks.map((mark)=>mark.value);
11
- if (values.length > 0) return {
12
- minValue: Math.min(...values),
13
- maxValue: Math.max(...values)
14
- };
15
- else return {
16
- minValue: 0,
17
- maxValue: 1
18
- };
19
- }, [
20
- marks
21
- ]);
22
- const range = maxValue - minValue;
23
- return /*#__PURE__*/ jsxs("div", {
24
- className: 'timeline',
25
- children: [
26
- /*#__PURE__*/ jsx("div", {
27
- className: 'timeline-label',
28
- style: {
29
- marginRight: theme.spacing(2)
30
- },
31
- children: labelStart
32
- }),
33
- /*#__PURE__*/ jsxs("div", {
34
- className: "timeline-container",
35
- children: [
36
- /*#__PURE__*/ jsx(TimelineRail, {}),
37
- marks.map((mark, idx)=>{
38
- const normalizedValue = 0 === range ? 1 : (mark.value - minValue) / range;
39
- return /*#__PURE__*/ jsx(TimelineMarker, {
40
- color: mark.color,
41
- labelBottom: mark.labelBottom,
42
- labelTop: mark.labelTop,
43
- onClick: mark.onClick,
44
- size: mark.size,
45
- value: normalizedValue
46
- }, idx);
47
- })
48
- ]
49
- }),
50
- /*#__PURE__*/ jsx("div", {
51
- className: 'timeline-label',
52
- style: {
53
- marginLeft: theme.spacing(2)
54
- },
55
- children: labelEnd
56
- }),
57
- labelSelected && /*#__PURE__*/ jsx("div", {
58
- className: 'timeline-selected-label',
59
- children: labelSelected
60
- })
61
- ]
62
- });
1
+ import { useMemo } from 'react';
2
+ import { useTheme } from '@mui/material';
3
+ import TimelineMarker from './TimelineMarker.js';
4
+ import TimelineRail from './TimelineRail.js';
5
+ import './styles.scss';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ const TimelineSlider = ({
9
+ labelEnd,
10
+ labelSelected,
11
+ labelStart,
12
+ marks
13
+ }) => {
14
+ const theme = useTheme();
15
+ const {
16
+ minValue,
17
+ maxValue
18
+ } = useMemo(() => {
19
+ const values = marks.map(mark => mark.value);
20
+ if (values.length > 0) {
21
+ return {
22
+ minValue: Math.min(...values),
23
+ maxValue: Math.max(...values)
24
+ };
25
+ } else {
26
+ return {
27
+ minValue: 0,
28
+ maxValue: 1
29
+ };
30
+ }
31
+ }, [marks]);
32
+ const range = maxValue - minValue;
33
+ return /*#__PURE__*/jsxs("div", {
34
+ className: 'timeline',
35
+ children: [/*#__PURE__*/jsx("div", {
36
+ className: 'timeline-label',
37
+ style: {
38
+ marginRight: theme.spacing(2)
39
+ },
40
+ children: labelStart
41
+ }), /*#__PURE__*/jsxs("div", {
42
+ className: "timeline-container",
43
+ children: [/*#__PURE__*/jsx(TimelineRail, {}), marks.map((mark, idx) => {
44
+ const normalizedValue = range === 0 ? 1 : (mark.value - minValue) / range;
45
+ return /*#__PURE__*/jsx(TimelineMarker, {
46
+ color: mark.color,
47
+ labelBottom: mark.labelBottom,
48
+ labelTop: mark.labelTop,
49
+ onClick: mark.onClick,
50
+ size: mark.size,
51
+ value: normalizedValue
52
+ }, idx);
53
+ })]
54
+ }), /*#__PURE__*/jsx("div", {
55
+ className: 'timeline-label',
56
+ style: {
57
+ marginLeft: theme.spacing(2)
58
+ },
59
+ children: labelEnd
60
+ }), labelSelected && /*#__PURE__*/jsx("div", {
61
+ className: 'timeline-selected-label',
62
+ children: labelSelected
63
+ })]
64
+ });
63
65
  };
64
- const components_TimelineSlider = TimelineSlider;
65
- export default components_TimelineSlider;
66
+
67
+ export { TimelineSlider as default };
@@ -1,25 +1,29 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import "react";
3
- import Icon from "../Icon/Icon.js";
4
- import "./styles.scss";
5
- const ClusterBadge = ({ count, leftPx, onClose })=>/*#__PURE__*/ jsxs("div", {
6
- className: "timeline-v2-cluster-badge",
7
- style: {
8
- left: `${leftPx}px`
9
- },
10
- children: [
11
- count,
12
- /*#__PURE__*/ jsx("button", {
13
- "aria-label": "Close cluster",
14
- className: "timeline-v2-cluster-badge__close",
15
- onClick: onClose,
16
- type: "button",
17
- children: /*#__PURE__*/ jsx(Icon, {
18
- name: "close",
19
- size: "small"
20
- })
21
- })
22
- ]
23
- });
24
- const TimelineSliderV2_ClusterBadge = ClusterBadge;
25
- export default TimelineSliderV2_ClusterBadge;
1
+ import 'react';
2
+ import Icon from '../Icon/Icon.js';
3
+ import './styles.scss';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ const ClusterBadge = ({
7
+ count,
8
+ leftPx,
9
+ onClose
10
+ }) => {
11
+ return /*#__PURE__*/jsxs("div", {
12
+ className: "timeline-v2-cluster-badge",
13
+ style: {
14
+ left: `${leftPx}px`
15
+ },
16
+ children: [count, /*#__PURE__*/jsx("button", {
17
+ "aria-label": "Close cluster",
18
+ className: "timeline-v2-cluster-badge__close",
19
+ onClick: onClose,
20
+ type: "button",
21
+ children: /*#__PURE__*/jsx(Icon, {
22
+ name: "close",
23
+ size: "small"
24
+ })
25
+ })]
26
+ });
27
+ };
28
+
29
+ export { ClusterBadge as default };
@@ -1,32 +1,36 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { toConicGradient } from "./layout.js";
4
- import "./styles.scss";
5
- const TimelineDot = ({ ariaLabel, colorWeights, dimmed, leftPx, markCount, onClick, selected, sizePx })=>{
6
- const background = useMemo(()=>toConicGradient(colorWeights), [
7
- colorWeights
8
- ]);
9
- const className = [
10
- 'timeline-v2-dot',
11
- dimmed ? 'timeline-v2-dot--dimmed' : '',
12
- selected ? 'timeline-v2-dot--selected' : ''
13
- ].filter((entry)=>'' !== entry).join(' ');
14
- return /*#__PURE__*/ jsx("button", {
15
- "aria-label": ariaLabel,
16
- className: className,
17
- style: {
18
- background,
19
- height: `${sizePx}px`,
20
- left: `${leftPx}px`,
21
- width: `${sizePx}px`
22
- },
23
- onClick: onClick,
24
- type: "button",
25
- children: markCount > 1 && /*#__PURE__*/ jsx("span", {
26
- className: "timeline-v2-dot__count",
27
- children: markCount
28
- })
29
- });
1
+ import { useMemo } from 'react';
2
+ import { toConicGradient } from './layout.js';
3
+ import './styles.scss';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ const TimelineDot = ({
7
+ ariaLabel,
8
+ colorWeights,
9
+ dimmed,
10
+ leftPx,
11
+ markCount,
12
+ onClick,
13
+ selected,
14
+ sizePx
15
+ }) => {
16
+ const background = useMemo(() => toConicGradient(colorWeights), [colorWeights]);
17
+ const className = ['timeline-v2-dot', dimmed ? 'timeline-v2-dot--dimmed' : '', selected ? 'timeline-v2-dot--selected' : ''].filter(entry => entry !== '').join(' ');
18
+ return /*#__PURE__*/jsx("button", {
19
+ "aria-label": ariaLabel,
20
+ className: className,
21
+ style: {
22
+ background,
23
+ height: `${sizePx}px`,
24
+ left: `${leftPx}px`,
25
+ width: `${sizePx}px`
26
+ },
27
+ onClick: onClick,
28
+ type: "button",
29
+ children: markCount > 1 && /*#__PURE__*/jsx("span", {
30
+ className: "timeline-v2-dot__count",
31
+ children: markCount
32
+ })
33
+ });
30
34
  };
31
- const TimelineSliderV2_TimelineDot = TimelineDot;
32
- export default TimelineSliderV2_TimelineDot;
35
+
36
+ export { TimelineDot as default };
@@ -1,8 +1,11 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "react";
3
- import "./styles.scss";
4
- const TimelineRail = ()=>/*#__PURE__*/ jsx("div", {
5
- className: "timeline-v2-rail"
6
- });
7
- const TimelineSliderV2_TimelineRail = TimelineRail;
8
- export default TimelineSliderV2_TimelineRail;
1
+ import 'react';
2
+ import './styles.scss';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ const TimelineRail = () => {
6
+ return /*#__PURE__*/jsx("div", {
7
+ className: "timeline-v2-rail"
8
+ });
9
+ };
10
+
11
+ export { TimelineRail as default };