@terraware/web-components 4.2.26-rc.0 → 4.3.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.
- package/_vendor/react-multi-carousel/index.js +13 -0
- package/_vendor/react-multi-carousel/lib/Arrows.js +13 -0
- package/_vendor/react-multi-carousel/lib/Carousel.js +19 -0
- package/_vendor/react-multi-carousel/lib/CarouselItems.js +14 -0
- package/_vendor/react-multi-carousel/lib/Dots.js +16 -0
- package/_vendor/react-multi-carousel/lib/index.js +13 -0
- package/_vendor/react-multi-carousel/lib/types.js +13 -0
- package/_vendor/react-multi-carousel/lib/utils/clones.js +14 -0
- package/_vendor/react-multi-carousel/lib/utils/common.js +13 -0
- package/_vendor/react-multi-carousel/lib/utils/dots.js +14 -0
- package/_vendor/react-multi-carousel/lib/utils/elementWidth.js +12 -0
- package/_vendor/react-multi-carousel/lib/utils/index.js +20 -0
- package/_vendor/react-multi-carousel/lib/utils/mouseOrTouchMove.js +14 -0
- package/_vendor/react-multi-carousel/lib/utils/next.js +13 -0
- package/_vendor/react-multi-carousel/lib/utils/previous.js +14 -0
- package/_vendor/react-multi-carousel/lib/utils/throttle.js +12 -0
- package/_vendor/react-multi-carousel/lib/utils/throwError.js +14 -0
- package/_virtual/Arrows.js +3 -0
- package/_virtual/Carousel.js +3 -0
- package/_virtual/CarouselItems.js +3 -0
- package/_virtual/Dots.js +3 -0
- package/_virtual/_commonjsHelpers.js +5 -0
- package/_virtual/clones.js +3 -0
- package/_virtual/common.js +3 -0
- package/_virtual/dots2.js +3 -0
- package/_virtual/elementWidth.js +3 -0
- package/_virtual/index.js +7 -0
- package/_virtual/index2.js +3 -0
- package/_virtual/index3.js +3 -0
- package/_virtual/mouseOrTouchMove.js +3 -0
- package/_virtual/next.js +3 -0
- package/_virtual/previous.js +3 -0
- package/_virtual/throttle.js +3 -0
- package/_virtual/throwError.js +3 -0
- package/_virtual/types.js +3 -0
- package/components/AntSwitch/index.js +6 -4
- package/components/Autocomplete/Autocomplete.js +19 -16
- package/components/Badge/index.js +8 -6
- package/components/BusySpinner/index.js +11 -8
- package/components/Button/Button.js +12 -9
- package/components/Checkbox.js +11 -8
- package/components/Confirm/index.js +14 -17
- package/components/DatePicker/DatePicker.js +19 -23
- package/components/DialogBox/DialogBox.js +25 -20
- package/components/Divisor.js +11 -8
- package/components/Dropdown.js +18 -15
- package/components/EditableTable/index.js +17 -14
- package/components/ErrorBox/ErrorBox.js +18 -15
- package/components/FileChooser/index.js +20 -15
- package/components/FormBottomBar/index.js +15 -12
- package/components/Icon/Icon.js +9 -6
- package/components/Icon/icons/index.js +252 -251
- package/components/IconTooltip/index.js +14 -9
- package/components/Map/MapBox.js +35 -32
- package/components/Map/MapContainer.js +10 -6
- package/components/Map/MapDateSliderControl.js +14 -12
- package/components/Map/MapDrawer.js +16 -12
- package/components/Map/MapLegend.js +32 -28
- package/components/Map/MapViewStyleControl.js +11 -9
- package/components/Map/ReactMapboxWrapper.js +1 -1
- package/components/Map/index.js +13 -11
- package/components/Map/types.js +5 -3
- package/components/Map/useMaintainLayerOrder.js +5 -2
- package/components/Markdown/index.js +6 -4
- package/components/Message/Message.js +25 -20
- package/components/MultiSelect/index.js +26 -23
- package/components/Navbar/NavFooter.js +8 -5
- package/components/Navbar/NavItem.js +14 -11
- package/components/Navbar/NavSection.js +10 -7
- package/components/Navbar/Navbar.js +16 -11
- package/components/Navbar/SubNavbar.js +8 -5
- package/components/Note.js +10 -7
- package/components/OverlayModal/OverlayModal.js +13 -11
- package/components/PageForm/index.js +15 -12
- package/components/PhotoChooser/index.js +30 -25
- package/components/PhotosCarousel/index.js +15 -18
- package/components/Pill/index.js +14 -11
- package/components/PillList/index.js +10 -7
- package/components/PlacementWrapper/index.js +8 -6
- package/components/PopoverMenu/Popover.js +12 -9
- package/components/PopoverMenu/index.js +14 -11
- package/components/PopoverMultiSelect/index.js +14 -11
- package/components/ProgressCircle/ProgressCircle.js +12 -9
- package/components/RadioButton.js +9 -6
- package/components/Select/Select.js +9 -6
- package/components/Select/SelectT.js +30 -26
- package/components/Separator/index.js +7 -5
- package/components/Size.js +1 -1
- package/components/Slider/index.js +9 -6
- package/components/SummaryBox.js +13 -10
- package/components/Tabs/index.js +22 -18
- package/components/TextTruncated/index.js +13 -20
- package/components/Textfield/Textfield.js +34 -28
- package/components/Textfield/TruncatedTextArea.js +12 -10
- package/components/TimelineSlider/TimelineMarker.js +8 -6
- package/components/TimelineSlider/TimelineRail.js +6 -4
- package/components/TimelineSlider/index.js +14 -12
- package/components/Tooltip/Tooltip.js +12 -7
- package/components/ViewPhotosDialog/index.js +14 -11
- package/components/VirtualWalkthrough/Annotation.js +10 -8
- package/components/VirtualWalkthrough/AnnotationEditPane.js +23 -21
- package/components/VirtualWalkthrough/AnnotationPanel.js +16 -14
- package/components/VirtualWalkthrough/Application.js +9 -7
- package/components/VirtualWalkthrough/AutoRotator.js +5 -3
- package/components/VirtualWalkthrough/BlockingSpinner.js +10 -7
- package/components/VirtualWalkthrough/BoundaryRing.js +8 -6
- package/components/VirtualWalkthrough/BoundaryWall.js +8 -6
- package/components/VirtualWalkthrough/CameraInfo.js +15 -13
- package/components/VirtualWalkthrough/ControlsInfoPane.js +59 -57
- package/components/VirtualWalkthrough/GradientSky.js +8 -6
- package/components/VirtualWalkthrough/SplatControls.js +37 -35
- package/components/VirtualWalkthrough/SplatCrop.js +6 -4
- package/components/VirtualWalkthrough/SplatFadeCrop.js +7 -5
- package/components/VirtualWalkthrough/SplatModel.js +17 -14
- package/components/VirtualWalkthrough/SplatRevealRain.js +6 -4
- package/components/VirtualWalkthrough/TfAnnotationManager.js +8 -5
- package/components/VirtualWalkthrough/TfXrNavigation.js +7 -5
- package/components/VirtualWalkthrough/VirtualWalkthroughViewer.js +47 -45
- package/components/VirtualWalkthrough/VrAnnotationPanel.js +9 -7
- package/components/VirtualWalkthrough/XrAnnotationInteraction.js +9 -7
- package/components/VirtualWalkthrough/XrExitButton.js +9 -7
- package/components/VirtualWalkthrough/XrGazeDwell.js +9 -7
- package/components/VirtualWalkthrough/XrPointerRay.js +9 -7
- package/components/VirtualWalkthrough/boundary-ring.js +7 -5
- package/components/VirtualWalkthrough/boundary-wall.js +8 -6
- package/components/VirtualWalkthrough/groundPlane.js +6 -3
- package/components/VirtualWalkthrough/gsplat-fade-crop-effect.js +5 -2
- package/components/VirtualWalkthrough/splatFormat.js +6 -4
- package/components/VirtualWalkthrough/vr-annotation-panel-layout.js +4 -2
- package/components/VirtualWalkthrough/vr-annotation-panel.js +8 -5
- package/components/VirtualWalkthrough/walkthrough-camera.js +6 -4
- package/components/VirtualWalkthrough/xr-annotation-candidates.js +8 -6
- package/components/VirtualWalkthrough/xr-annotation-interaction.js +9 -6
- package/components/VirtualWalkthrough/xr-annotation-targeting.js +5 -2
- package/components/VirtualWalkthrough/xr-button-arming.js +4 -2
- package/components/VirtualWalkthrough/xr-button-hold.js +5 -3
- package/components/VirtualWalkthrough/xr-exit-button.js +10 -8
- package/components/VirtualWalkthrough/xr-face-buttons.js +6 -4
- package/components/VirtualWalkthrough/xr-gaze-dwell-state.js +5 -3
- package/components/VirtualWalkthrough/xr-gaze-dwell.js +9 -7
- package/components/VirtualWalkthrough/xr-interactive-ui.js +10 -8
- package/components/VirtualWalkthrough/xr-pointer-ray.js +5 -3
- package/components/VirtualWalkthrough/xr-progress-pie.js +4 -2
- package/components/VirtualWalkthrough/xr-ray-quad.js +5 -2
- package/components/VirtualWalkthrough/xr-scene-bounds.js +5 -3
- package/components/VirtualWalkthrough/xr-teleport-gesture.js +4 -2
- package/components/svg/BlobbyGrayIconImage.js +13 -11
- package/components/svg/BlobbyGrayIconImport.js +13 -11
- package/components/svg/BlobbyGrayIconUploadToTheCloud.js +13 -11
- package/components/svg/BlobbyIconCloudChecked.js +41 -39
- package/components/svg/BlobbyIconExportOrUploadPhoto.js +41 -39
- package/components/svg/BlobbyIconFolder.js +41 -39
- package/components/svg/BlobbyIconGraphReport.js +41 -39
- package/components/svg/BlobbyIconHappy.js +41 -39
- package/components/svg/BlobbyIconHeartMonitor.js +41 -39
- package/components/svg/BlobbyIconLeaf.js +41 -39
- package/components/svg/BlobbyIconLibrary.js +41 -39
- package/components/svg/BlobbyIconNursery.js +41 -39
- package/components/svg/BlobbyIconOrganization.js +41 -39
- package/components/svg/BlobbyIconParchment.js +41 -39
- package/components/svg/BlobbyIconPeople.js +41 -39
- package/components/svg/BlobbyIconSeedBank.js +41 -39
- package/components/svg/BlobbyIconSeedling.js +41 -39
- package/components/svg/BlobbyIconSeeds.js +41 -39
- package/components/svg/BlobbyIconSite.js +42 -40
- package/components/svg/BlobbyIconSparkles.js +41 -39
- package/components/svg/BlobbyIconWrench.js +41 -39
- package/components/svg/Bug.js +8 -6
- package/components/svg/Calendar.js +8 -6
- package/components/svg/CaretDown.js +8 -6
- package/components/svg/CaretLeft.js +8 -6
- package/components/svg/CaretRight.js +8 -6
- package/components/svg/CaretUp.js +8 -6
- package/components/svg/ChevronDown.js +8 -6
- package/components/svg/ChevronUp.js +8 -6
- package/components/svg/Close.js +8 -6
- package/components/svg/Critical.js +8 -6
- package/components/svg/Edit.js +41 -39
- package/components/svg/Error.js +8 -6
- package/components/svg/Filter.js +8 -6
- package/components/svg/Folder.js +8 -6
- package/components/svg/Help.js +8 -6
- package/components/svg/Home.js +8 -6
- package/components/svg/IconAdd.js +8 -6
- package/components/svg/IconArrowRight.js +8 -6
- package/components/svg/IconBusinessNetwork.js +8 -6
- package/components/svg/IconCalendar.js +8 -6
- package/components/svg/IconCancel.js +8 -6
- package/components/svg/IconChargingBattery.js +8 -6
- package/components/svg/IconChecklist.js +8 -6
- package/components/svg/IconCheckmark.js +8 -6
- package/components/svg/IconCoinInHand.js +8 -6
- package/components/svg/IconColumns.js +8 -6
- package/components/svg/IconComment.js +8 -6
- package/components/svg/IconDashboard.js +8 -6
- package/components/svg/IconDataMigration.js +8 -6
- package/components/svg/IconDocument.js +8 -6
- package/components/svg/IconDownloadFromTheCloud.js +8 -6
- package/components/svg/IconEdit.js +8 -6
- package/components/svg/IconExpand.js +8 -6
- package/components/svg/IconExport.js +8 -6
- package/components/svg/IconExternalLink.js +8 -6
- package/components/svg/IconEye.js +8 -6
- package/components/svg/IconEyeOff.js +8 -6
- package/components/svg/IconFile.js +8 -6
- package/components/svg/IconFolder.js +8 -6
- package/components/svg/IconFullScreen.js +8 -6
- package/components/svg/IconFutures.js +8 -6
- package/components/svg/IconGraphReport.js +8 -6
- package/components/svg/IconHeartMonitor.js +8 -6
- package/components/svg/IconHelp.js +8 -6
- package/components/svg/IconHistory.js +8 -6
- package/components/svg/IconImport.js +8 -6
- package/components/svg/IconIndex.js +8 -6
- package/components/svg/IconLayers.js +8 -6
- package/components/svg/IconLibrary.js +8 -6
- package/components/svg/IconList.js +8 -6
- package/components/svg/IconLivePlant.js +8 -6
- package/components/svg/IconLocations.js +8 -6
- package/components/svg/IconMail.js +8 -6
- package/components/svg/IconManager.js +8 -6
- package/components/svg/IconMarker.js +8 -6
- package/components/svg/IconMenu.js +8 -6
- package/components/svg/IconMenuHorizontal.js +8 -6
- package/components/svg/IconModule.js +8 -6
- package/components/svg/IconMyLocation.js +8 -6
- package/components/svg/IconNote.js +8 -6
- package/components/svg/IconNursery.js +8 -6
- package/components/svg/IconOrg.js +8 -6
- package/components/svg/IconParchment.js +8 -6
- package/components/svg/IconPhoto.js +8 -6
- package/components/svg/IconPlantsFilled.js +8 -6
- package/components/svg/IconRedo.js +8 -6
- package/components/svg/IconRestorationSite.js +8 -6
- package/components/svg/IconSeedBank.js +8 -6
- package/components/svg/IconSeedling.js +8 -6
- package/components/svg/IconSettings.js +8 -6
- package/components/svg/IconSlice.js +8 -6
- package/components/svg/IconSubmit.js +8 -6
- package/components/svg/IconSubtract.js +8 -6
- package/components/svg/IconSynced.js +8 -6
- package/components/svg/IconTrashCan.js +8 -6
- package/components/svg/IconTreasureMap.js +8 -6
- package/components/svg/IconUnavailable.js +8 -6
- package/components/svg/IconUndo.js +8 -6
- package/components/svg/IconVariable.js +8 -6
- package/components/svg/IconVideo.js +9 -7
- package/components/svg/IconWifi.js +8 -6
- package/components/svg/Info.js +8 -6
- package/components/svg/Key.js +8 -6
- package/components/svg/Leaf.js +8 -6
- package/components/svg/Lock.js +8 -6
- package/components/svg/Logo.js +16 -14
- package/components/svg/MenuVertical.js +8 -6
- package/components/svg/Notification.js +8 -6
- package/components/svg/Person.js +8 -6
- package/components/svg/Plus.js +8 -6
- package/components/svg/RestorationSite.js +8 -6
- package/components/svg/Search.js +8 -6
- package/components/svg/Seeds.js +8 -6
- package/components/svg/Site.js +8 -6
- package/components/svg/Sparkles.js +8 -6
- package/components/svg/Species.js +8 -6
- package/components/svg/Species2.js +41 -39
- package/components/svg/Spinner.js +16 -14
- package/components/svg/Star.js +8 -6
- package/components/svg/Success.js +8 -6
- package/components/svg/SuccessFilled.js +8 -6
- package/components/svg/TerrawareLogoDesktop.js +17 -15
- package/components/svg/TerrawareLogoMobile.js +9 -7
- package/components/svg/Touchscreen.js +8 -6
- package/components/svg/UploadCloud.js +41 -39
- package/components/svg/Warning.js +8 -6
- package/components/svg/WelcomeClipboard.js +32 -30
- package/components/svg/index.js +127 -127
- package/components/table/EnhancedTableToolbar.js +18 -15
- package/components/table/EnhancedTableToolbarV2.js +8 -6
- package/components/table/TableCellRenderer.js +37 -32
- package/components/table/TableHeader.js +17 -14
- package/components/table/TableHeaderItem.js +18 -15
- package/components/table/density.js +5 -3
- package/components/table/index.js +40 -37
- package/components/table/sort.js +6 -4
- package/components/table/types.js +1 -1
- package/components/types/index.js +1 -1
- package/hooks/useBoolean.js +4 -2
- package/hooks/useCameraPosition.js +5 -2
- package/hooks/useDevicePerformance.js +6 -3
- package/hooks/useXr.js +6 -4
- package/index.js +55 -58
- package/package.json +6 -2
- package/style-dictionary-dist/TerrawareTheme.js +2 -1
- package/theme.js +5 -2
- package/utils/color.js +5 -2
- package/utils/date.js +7 -6
- package/utils/index.js +4 -5
- package/utils/preventDefaultEvent.js +2 -1
- package/utils/text.js +3 -2
- package/utils/useDeviceInfo.js +2 -1
- package/virtualWalkthrough.js +23 -31
- package/components/Button/button.test.js +0 -23
- package/components/MultiSelect/MultiSelect.test.js +0 -73
- package/components/VirtualWalkthrough/TfXrNavigation.test.js +0 -110
- package/components/VirtualWalkthrough/boundary-ring.test.js +0 -109
- package/components/VirtualWalkthrough/boundary-wall.test.js +0 -203
- package/components/VirtualWalkthrough/groundPlane.test.js +0 -45
- package/components/VirtualWalkthrough/splatFormat.test.js +0 -51
- package/components/VirtualWalkthrough/vr-annotation-panel-layout.test.js +0 -26
- package/components/VirtualWalkthrough/xr-annotation-targeting.test.js +0 -66
- package/components/VirtualWalkthrough/xr-button-arming.test.js +0 -35
- package/components/VirtualWalkthrough/xr-button-hold.test.js +0 -57
- package/components/VirtualWalkthrough/xr-exit-button.test.js +0 -23
- package/components/VirtualWalkthrough/xr-face-buttons.test.js +0 -82
- package/components/VirtualWalkthrough/xr-gaze-dwell-state.test.js +0 -61
- package/components/VirtualWalkthrough/xr-interactive-ui.test.js +0 -165
- package/components/VirtualWalkthrough/xr-progress-pie.test.js +0 -79
- package/components/VirtualWalkthrough/xr-ray-quad.test.js +0 -37
- package/components/VirtualWalkthrough/xr-scene-bounds.test.js +0 -70
- package/components/VirtualWalkthrough/xr-teleport-gesture.test.js +0 -90
- package/components/table/sort.test.js +0 -35
- package/utils/date.test.js +0 -84
- package/utils/text.test.js +0 -21
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ButtonArmingLatch } from './xr-button-arming';
|
|
3
|
-
import { INITIAL_HOLD_STATE, advanceHold } from './xr-button-hold';
|
|
4
|
-
import { FaceButtonPressTracker, secondaryFaceButtonPressed } from './xr-face-buttons';
|
|
5
|
-
import { drawProgressPie } from './xr-progress-pie';
|
|
1
|
+
import { Script, Vec3, Quat, XRTYPE_VR, Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, Mesh, StandardMaterial, Color, BLEND_NORMAL, CULLFACE_NONE, MeshInstance, LAYERID_IMMEDIATE } from 'playcanvas';
|
|
2
|
+
import { ButtonArmingLatch } from './xr-button-arming.js';
|
|
3
|
+
import { INITIAL_HOLD_STATE, advanceHold } from './xr-button-hold.js';
|
|
4
|
+
import { FaceButtonPressTracker, secondaryFaceButtonPressed } from './xr-face-buttons.js';
|
|
5
|
+
import { drawProgressPie } from './xr-progress-pie.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Boolean ray-sphere hit test. Treats the ray as a half-line (t >= 0) and returns true when it
|
|
9
9
|
* intersects the sphere or starts inside it. `direction` is normalized internally.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
const raySphereIntersect = (origin, direction, center, radius) => {
|
|
12
12
|
const dir = direction.clone().normalize();
|
|
13
13
|
const m = new Vec3().sub2(origin, center);
|
|
14
14
|
const b = m.dot(dir);
|
|
@@ -22,7 +22,7 @@ const TEXTURE_SIZE = 256;
|
|
|
22
22
|
|
|
23
23
|
/** Seconds of continuous B/Y hold required to leave the session. Matches the gaze-dwell threshold. */
|
|
24
24
|
const EXIT_HOLD_SECONDS = 1.25;
|
|
25
|
-
|
|
25
|
+
class XrExitButton extends Script {
|
|
26
26
|
static scriptName = 'xrExitButton';
|
|
27
27
|
|
|
28
28
|
/** Offset from the head, in head space: right, up, and forward (-z) into the upper-right of the view. */
|
|
@@ -265,4 +265,6 @@ export class XrExitButton extends Script {
|
|
|
265
265
|
this._canvas = undefined;
|
|
266
266
|
this._context = undefined;
|
|
267
267
|
}
|
|
268
|
-
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export { XrExitButton, raySphereIntersect };
|
|
@@ -9,16 +9,16 @@ const anyButtonPressed = (inputSource, indices) => {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
/** True while either face button is held. False for hand-tracked sources, which have no gamepad. */
|
|
12
|
-
|
|
12
|
+
const faceButtonPressed = inputSource => anyButtonPressed(inputSource, FACE_BUTTON_INDICES);
|
|
13
13
|
|
|
14
14
|
/** True while B or Y is held, regardless of which hand holds the controller. */
|
|
15
|
-
|
|
15
|
+
const secondaryFaceButtonPressed = inputSource => anyButtonPressed(inputSource, SECONDARY_FACE_BUTTON_INDICES);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Edge-detects face-button presses per input source so one press fires once. Callers must poll every
|
|
19
19
|
* frame for every source they care about; a press and release between polls is missed.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
class FaceButtonPressTracker {
|
|
22
22
|
_down = new WeakMap();
|
|
23
23
|
|
|
24
24
|
/** True only on the poll where a face button goes from released to pressed. */
|
|
@@ -28,4 +28,6 @@ export class FaceButtonPressTracker {
|
|
|
28
28
|
this._down.set(inputSource, pressed);
|
|
29
29
|
return pressed && !wasPressed;
|
|
30
30
|
}
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { FaceButtonPressTracker, faceButtonPressed, secondaryFaceButtonPressed };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const INITIAL_DWELL_STATE = {
|
|
2
2
|
targetIndex: null,
|
|
3
3
|
elapsed: 0
|
|
4
4
|
};
|
|
@@ -8,7 +8,7 @@ export const INITIAL_DWELL_STATE = {
|
|
|
8
8
|
* gaze ray, or null. Dwell time accumulates while the same target is held and resets when it
|
|
9
9
|
* changes or is lost. `justOpened` is true only on the frame the dwell first reaches `threshold`.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
const advanceDwell = (prev, target, dt, threshold) => {
|
|
12
12
|
if (target === null) {
|
|
13
13
|
return {
|
|
14
14
|
state: INITIAL_DWELL_STATE,
|
|
@@ -36,4 +36,6 @@ export const advanceDwell = (prev, target, dt, threshold) => {
|
|
|
36
36
|
progress: elapsed / threshold,
|
|
37
37
|
justOpened
|
|
38
38
|
};
|
|
39
|
-
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { INITIAL_DWELL_STATE, advanceDwell };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HOTSPOT_HALF_EXTENT, collectAnnotationHitCandidates } from './xr-annotation-candidates';
|
|
3
|
-
import { nearestAnnotationHit } from './xr-annotation-targeting';
|
|
4
|
-
import { INITIAL_DWELL_STATE, advanceDwell } from './xr-gaze-dwell-state';
|
|
5
|
-
import { drawProgressPie } from './xr-progress-pie';
|
|
1
|
+
import { Vec3, Script, Quat, XRTYPE_VR, Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, StandardMaterial, Color, BLEND_NORMAL, CULLFACE_NONE, MeshInstance, Entity, LAYERID_IMMEDIATE, Mesh } from 'playcanvas';
|
|
2
|
+
import { HOTSPOT_HALF_EXTENT, collectAnnotationHitCandidates } from './xr-annotation-candidates.js';
|
|
3
|
+
import { nearestAnnotationHit } from './xr-annotation-targeting.js';
|
|
4
|
+
import { INITIAL_DWELL_STATE, advanceDwell } from './xr-gaze-dwell-state.js';
|
|
5
|
+
import { drawProgressPie } from './xr-progress-pie.js';
|
|
6
6
|
|
|
7
7
|
/** Multiplier on the hotspot's world radius for gaze targeting. */
|
|
8
8
|
const GAZE_HIT_RADIUS_PAD = 5;
|
|
@@ -16,7 +16,7 @@ const PIE_RADIUS_SCALE = 1.25;
|
|
|
16
16
|
/** Progress-pie texture resolution. */
|
|
17
17
|
const PIE_TEXTURE_SIZE = 128;
|
|
18
18
|
const LOCAL_FORWARD = new Vec3(0, 0, -1);
|
|
19
|
-
|
|
19
|
+
class XrGazeDwell extends Script {
|
|
20
20
|
static scriptName = 'xrGazeDwell';
|
|
21
21
|
|
|
22
22
|
/** Index of the annotation whose panel is currently open, or -1. Excluded from gaze targets so
|
|
@@ -170,4 +170,6 @@ export class XrGazeDwell extends Script {
|
|
|
170
170
|
this._pieMaterial = undefined;
|
|
171
171
|
this._pieTexture = undefined;
|
|
172
172
|
}
|
|
173
|
-
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { XrGazeDwell };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { VrAnnotationPanel } from './vr-annotation-panel';
|
|
2
|
-
import {
|
|
3
|
-
import { nearestAnnotationHit } from './xr-annotation-targeting';
|
|
4
|
-
import { XrExitButton } from './xr-exit-button';
|
|
1
|
+
import { VrAnnotationPanel } from './vr-annotation-panel.js';
|
|
2
|
+
import { collectAnnotationHitCandidates, HIT_RADIUS_PAD } from './xr-annotation-candidates.js';
|
|
3
|
+
import { nearestAnnotationHit } from './xr-annotation-targeting.js';
|
|
4
|
+
import { XrExitButton } from './xr-exit-button.js';
|
|
5
5
|
|
|
6
6
|
/** True when the ray points at an openable annotation hotspot. */
|
|
7
|
-
|
|
7
|
+
const rayHitsAnnotationHotspot = (app, origin, direction) => nearestAnnotationHit(origin, direction, collectAnnotationHitCandidates(app, HIT_RADIUS_PAD)) !== null;
|
|
8
8
|
|
|
9
9
|
/** True when the ray points at the open VR annotation panel. False when no panel is mounted. */
|
|
10
|
-
|
|
10
|
+
const rayHitsAnnotationPanel = (app, origin, direction) => {
|
|
11
11
|
const script = app.root.findByName('vr-annotation-panel')?.script?.get(VrAnnotationPanel.scriptName);
|
|
12
12
|
return typeof script?.rayHitsPanel === 'function' && script.rayHitsPanel(origin, direction) === true;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
/** True when the ray points at the VR exit button. */
|
|
16
|
-
|
|
16
|
+
const rayHitsExitButton = (app, origin, direction) => {
|
|
17
17
|
const script = app.root.findByName('xr-exit-button')?.script?.get(XrExitButton.scriptName);
|
|
18
18
|
return typeof script?.rayHitsButton === 'function' && script.rayHitsButton(origin, direction) === true;
|
|
19
19
|
};
|
|
@@ -22,4 +22,6 @@ export const rayHitsExitButton = (app, origin, direction) => {
|
|
|
22
22
|
* True when the ray points at anything the trigger is meant to operate. Teleport consults this so a
|
|
23
23
|
* select that lands on UI doesn't also move the rig.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
const rayHitsInteractiveUi = (app, origin, direction) => rayHitsAnnotationHotspot(app, origin, direction) || rayHitsAnnotationPanel(app, origin, direction) || rayHitsExitButton(app, origin, direction);
|
|
26
|
+
|
|
27
|
+
export { rayHitsAnnotationHotspot, rayHitsAnnotationPanel, rayHitsExitButton, rayHitsInteractiveUi };
|
|
@@ -4,8 +4,8 @@ import { Color, Script, Vec3 } from 'playcanvas';
|
|
|
4
4
|
const RAY_LENGTH = 5;
|
|
5
5
|
|
|
6
6
|
/** Default ray colour (cyan) — bright enough to read against the scene. */
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const DEFAULT_RAY_COLOR = new Color(0.25, 0.8, 1);
|
|
8
|
+
class XrPointerRay extends Script {
|
|
9
9
|
static scriptName = 'xrPointerRay';
|
|
10
10
|
color = DEFAULT_RAY_COLOR.clone();
|
|
11
11
|
_end = new Vec3();
|
|
@@ -21,4 +21,6 @@ export class XrPointerRay extends Script {
|
|
|
21
21
|
this.app.drawLine(origin, this._end, this.color, false);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { DEFAULT_RAY_COLOR, XrPointerRay };
|
|
@@ -9,7 +9,7 @@ const PIE_START_ANGLE = -Math.PI / 2;
|
|
|
9
9
|
* leaves the path clean on exit, so callers can stroke or fill right after without an explicit
|
|
10
10
|
* `beginPath()` of their own.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
const drawProgressPie = (ctx, size, progress) => {
|
|
13
13
|
const c = size / 2;
|
|
14
14
|
const r = c * 0.92;
|
|
15
15
|
ctx.save();
|
|
@@ -27,4 +27,6 @@ export const drawProgressPie = (ctx, size, progress) => {
|
|
|
27
27
|
}
|
|
28
28
|
ctx.restore();
|
|
29
29
|
ctx.beginPath();
|
|
30
|
-
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { drawProgressPie };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Vec3 } from 'playcanvas';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* Intersects the ray with the rectangle centred at `center` and spanned by unit axes `right`/`up`,
|
|
4
5
|
* returning the hit in normalized quad coordinates (u,v in [-1,1]) or null. `u`/`v` divide the
|
|
5
6
|
* in-plane offset by `halfWidth`/`halfHeight`. Null when the ray is parallel to the plane, the
|
|
6
7
|
* plane is behind the origin, or the hit lands outside the rectangle.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
const rayQuadHit = (origin, direction, center, right, up, halfWidth, halfHeight) => {
|
|
9
10
|
const dir = direction.clone().normalize();
|
|
10
11
|
const normal = new Vec3().cross(right, up);
|
|
11
12
|
const denom = dir.dot(normal);
|
|
@@ -26,4 +27,6 @@ export const rayQuadHit = (origin, direction, center, right, up, halfWidth, half
|
|
|
26
27
|
u,
|
|
27
28
|
v
|
|
28
29
|
};
|
|
29
|
-
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { rayQuadHit };
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* callers use as the "was this clamped?" signal. A non-positive radius means "no bounds" and leaves
|
|
8
8
|
* the point untouched; so does a point at the exact center, which has no direction to project along.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
const clampToCircle = (x, z, centerX, centerZ, radius) => {
|
|
11
11
|
if (radius <= 0) {
|
|
12
12
|
return {
|
|
13
13
|
x,
|
|
@@ -34,8 +34,10 @@ export const clampToCircle = (x, z, centerX, centerZ, radius) => {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
/** Horizontal distance from a world-space XZ point to the circle's edge: negative inside, positive outside. */
|
|
37
|
-
|
|
37
|
+
const distanceToCircleEdge = (x, z, centerX, centerZ, radius) => {
|
|
38
38
|
const dx = x - centerX;
|
|
39
39
|
const dz = z - centerZ;
|
|
40
40
|
return Math.sqrt(dx * dx + dz * dz) - radius;
|
|
41
|
-
};
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { clampToCircle, distanceToCircleEdge };
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Callers must poll every frame for every source they care about; a press and release between polls
|
|
15
15
|
* is missed.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
class TeleportGestureLatch {
|
|
18
18
|
_teleportDisabled = new WeakSet();
|
|
19
19
|
_uiBlocked = new WeakSet();
|
|
20
20
|
|
|
@@ -42,4 +42,6 @@ export class TeleportGestureLatch {
|
|
|
42
42
|
this._uiBlocked.delete(inputSource);
|
|
43
43
|
return blocked;
|
|
44
44
|
}
|
|
45
|
-
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { TeleportGestureLatch };
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
3
4
|
const SvgBlobbyGrayIconImage = ({
|
|
4
5
|
title,
|
|
5
6
|
titleId,
|
|
6
7
|
...props
|
|
7
|
-
}) => /*#__PURE__*/
|
|
8
|
+
}) => /*#__PURE__*/jsxs("svg", {
|
|
8
9
|
xmlns: "http://www.w3.org/2000/svg",
|
|
9
10
|
fill: "none",
|
|
10
11
|
viewBox: "0 0 200 128",
|
|
11
12
|
"aria-labelledby": titleId,
|
|
12
13
|
...props,
|
|
13
|
-
children: [title ? /*#__PURE__*/
|
|
14
|
+
children: [title ? /*#__PURE__*/jsx("title", {
|
|
14
15
|
id: titleId,
|
|
15
16
|
children: title
|
|
16
|
-
}) : null, /*#__PURE__*/
|
|
17
|
+
}) : null, /*#__PURE__*/jsxs("g", {
|
|
17
18
|
clipPath: "url(#blobby-gray-icon-image_svg__a)",
|
|
18
|
-
children: [/*#__PURE__*/
|
|
19
|
+
children: [/*#__PURE__*/jsx("path", {
|
|
19
20
|
fill: "#F1F0EC",
|
|
20
21
|
fillRule: "evenodd",
|
|
21
22
|
d: "M113.962 6.222c26.535 2.074 38.447 30.862 44.693 56.735 4.621 19.146-2.901 38.537-18.932 49.978-15.595 11.131-35.55 10.486-51.986.639C63.732 99.19 34.311 80.943 40.954 53.757c7.619-31.19 41-50.037 73.009-47.535",
|
|
22
23
|
clipRule: "evenodd"
|
|
23
|
-
}), /*#__PURE__*/
|
|
24
|
+
}), /*#__PURE__*/jsx("path", {
|
|
24
25
|
fill: "#7F775B",
|
|
25
26
|
d: "M83.333 40C79.307 40 76 43.307 76 47.333v33.334C76 84.693 79.307 88 83.333 88h33.334c4.026 0 7.333-3.307 7.333-7.333V47.333c0-4.026-3.307-7.333-7.333-7.333zm0 4h33.334A3.304 3.304 0 0 1 120 47.333v27.274l-8.016-7.755-.002-.003a5.4 5.4 0 0 0-3.75-1.516 5.4 5.4 0 0 0-3.75 1.519l-2.732 2.643-8.24-7.972A5.4 5.4 0 0 0 89.758 60a5.4 5.4 0 0 0-3.75 1.52l-.003.003L80 67.333v-20A3.304 3.304 0 0 1 83.333 44m25.334 5.333c-1.834 0-3.462.76-4.495 1.922-1.033 1.163-1.505 2.634-1.505 4.078s.472 2.916 1.505 4.078 2.661 1.922 4.495 1.922c1.833 0 3.461-.76 4.494-1.922 1.034-1.162 1.506-2.633 1.506-4.078 0-1.444-.472-2.915-1.506-4.078-1.033-1.162-2.661-1.922-4.494-1.922m0 4c.833 0 1.205.24 1.505.578s.495.867.495 1.422c0 .556-.195 1.085-.495 1.422-.3.338-.672.578-1.505.578-.834 0-1.205-.24-1.506-.578s-.494-.866-.494-1.422.194-1.084.494-1.422c.301-.337.672-.578 1.506-.578M89.757 64a1.37 1.37 0 0 1 .972.398l8.143 7.878L86.752 84h-3.419A3.304 3.304 0 0 1 80 80.667v-7.769l8.787-8.5c.283-.274.626-.398.97-.398m18.475 5.333c.353 0 .691.123.971.394L120 80.172v.495A3.304 3.304 0 0 1 116.667 84h-24.16l14.756-14.273c.277-.268.618-.394.969-.394"
|
|
26
27
|
})]
|
|
27
|
-
}), /*#__PURE__*/
|
|
28
|
-
children: /*#__PURE__*/
|
|
28
|
+
}), /*#__PURE__*/jsx("defs", {
|
|
29
|
+
children: /*#__PURE__*/jsx("clipPath", {
|
|
29
30
|
id: "blobby-gray-icon-image_svg__a",
|
|
30
|
-
children: /*#__PURE__*/
|
|
31
|
+
children: /*#__PURE__*/jsx("path", {
|
|
31
32
|
fill: "#fff",
|
|
32
33
|
d: "M0 0h200v128H0z"
|
|
33
34
|
})
|
|
34
35
|
})
|
|
35
36
|
})]
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
|
|
39
|
+
export { SvgBlobbyGrayIconImage as default };
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
3
4
|
const SvgBlobbyGrayIconImport = ({
|
|
4
5
|
title,
|
|
5
6
|
titleId,
|
|
6
7
|
...props
|
|
7
|
-
}) => /*#__PURE__*/
|
|
8
|
+
}) => /*#__PURE__*/jsxs("svg", {
|
|
8
9
|
xmlns: "http://www.w3.org/2000/svg",
|
|
9
10
|
fill: "none",
|
|
10
11
|
viewBox: "0 0 200 128",
|
|
11
12
|
"aria-labelledby": titleId,
|
|
12
13
|
...props,
|
|
13
|
-
children: [title ? /*#__PURE__*/
|
|
14
|
+
children: [title ? /*#__PURE__*/jsx("title", {
|
|
14
15
|
id: titleId,
|
|
15
16
|
children: title
|
|
16
|
-
}) : null, /*#__PURE__*/
|
|
17
|
+
}) : null, /*#__PURE__*/jsxs("g", {
|
|
17
18
|
clipPath: "url(#blobby-gray-icon-import_svg__a)",
|
|
18
|
-
children: [/*#__PURE__*/
|
|
19
|
+
children: [/*#__PURE__*/jsx("path", {
|
|
19
20
|
fill: "#F1F0EC",
|
|
20
21
|
fillRule: "evenodd",
|
|
21
22
|
d: "M97.492 4.026c24.033-.76 45.335 14.966 53.284 37.66 8.572 24.47 4.488 52.73-16.101 68.491-22.132 16.943-53.93 19.23-75.615 1.718C39.75 96.3 45.34 68.141 53.67 44.76c7.4-20.77 21.784-40.036 43.822-40.734",
|
|
22
23
|
clipRule: "evenodd"
|
|
23
|
-
}), /*#__PURE__*/
|
|
24
|
+
}), /*#__PURE__*/jsx("path", {
|
|
24
25
|
fill: "#7F775B",
|
|
25
26
|
d: "M84.667 37.333c-3.29 0-6 2.71-6 6v41.334c0 3.29 2.71 6 6 6h30.666c3.29 0 6-2.71 6-6v-28c0-.53-.21-1.04-.586-1.414l-.02-.021-17.313-17.313a2 2 0 0 0-1.414-.586zm0 4H100v11.334c0 3.29 2.71 6 6 6h11.333v26c0 1.128-.871 2-2 2H84.667c-1.129 0-2-.872-2-2V43.333c0-1.128.871-2 2-2M104 44.161l10.505 10.506H106c-1.129 0-2-.872-2-2zM99.971 60a2 2 0 0 0-1.385.586l-5.333 5.333a2 2 0 1 0 2.828 2.828L98 66.828V74A2 2 0 1 0 102 74v-7.172l1.919 1.92a2.002 2.002 0 0 0 3.295-.63 1.99 1.99 0 0 0-.016-1.55 2 2 0 0 0-.451-.649l-5.333-5.333A2 2 0 0 0 99.971 60m-8.638 18.667a2.002 2.002 0 0 0-1.873 2.772 2 2 0 0 0 1.873 1.228h17.334a2 2 0 1 0 0-4z"
|
|
26
27
|
})]
|
|
27
|
-
}), /*#__PURE__*/
|
|
28
|
-
children: /*#__PURE__*/
|
|
28
|
+
}), /*#__PURE__*/jsx("defs", {
|
|
29
|
+
children: /*#__PURE__*/jsx("clipPath", {
|
|
29
30
|
id: "blobby-gray-icon-import_svg__a",
|
|
30
|
-
children: /*#__PURE__*/
|
|
31
|
+
children: /*#__PURE__*/jsx("path", {
|
|
31
32
|
fill: "#fff",
|
|
32
33
|
d: "M0 0h200v128H0z"
|
|
33
34
|
})
|
|
34
35
|
})
|
|
35
36
|
})]
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
|
|
39
|
+
export { SvgBlobbyGrayIconImport as default };
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
3
4
|
const SvgBlobbyGrayIconUploadToTheCloud = ({
|
|
4
5
|
title,
|
|
5
6
|
titleId,
|
|
6
7
|
...props
|
|
7
|
-
}) => /*#__PURE__*/
|
|
8
|
+
}) => /*#__PURE__*/jsxs("svg", {
|
|
8
9
|
xmlns: "http://www.w3.org/2000/svg",
|
|
9
10
|
fill: "none",
|
|
10
11
|
viewBox: "0 0 200 128",
|
|
11
12
|
"aria-labelledby": titleId,
|
|
12
13
|
...props,
|
|
13
|
-
children: [title ? /*#__PURE__*/
|
|
14
|
+
children: [title ? /*#__PURE__*/jsx("title", {
|
|
14
15
|
id: titleId,
|
|
15
16
|
children: title
|
|
16
|
-
}) : null, /*#__PURE__*/
|
|
17
|
+
}) : null, /*#__PURE__*/jsxs("g", {
|
|
17
18
|
clipPath: "url(#blobby-gray-icon-upload-to-the-cloud_svg__a)",
|
|
18
|
-
children: [/*#__PURE__*/
|
|
19
|
+
children: [/*#__PURE__*/jsx("path", {
|
|
19
20
|
fill: "#F1F0EC",
|
|
20
21
|
fillRule: "evenodd",
|
|
21
22
|
d: "M97.492 4.026c24.033-.76 45.335 14.966 53.284 37.66 8.572 24.47 4.488 52.73-16.101 68.491-22.132 16.943-53.93 19.23-75.615 1.718C39.75 96.3 45.34 68.141 53.67 44.76c7.4-20.77 21.784-40.036 43.822-40.734",
|
|
22
23
|
clipRule: "evenodd"
|
|
23
|
-
}), /*#__PURE__*/
|
|
24
|
+
}), /*#__PURE__*/jsx("path", {
|
|
24
25
|
fill: "#7F775B",
|
|
25
26
|
d: "M100 45.333c-8.373 0-15.264 6.467-15.943 14.667h-.724C77.084 60 72 65.084 72 71.333s5.084 11.334 11.333 11.334h12v-4h-12c-4.044 0-7.333-3.29-7.333-7.334S79.29 64 83.333 64H86a2 2 0 0 0 2-2v-.667c0-6.616 5.384-12 12-12s12 5.384 12 12V62a2 2 0 0 0 2 2h2.667c4.044 0 7.333 3.29 7.333 7.333s-3.289 7.334-7.333 7.334h-12v4h12c6.249 0 11.333-5.084 11.333-11.334C128 65.084 122.916 60 116.667 60h-.724c-.679-8.2-7.57-14.667-15.943-14.667m-.031 18.638a2 2 0 0 0-1.565.797l-5.818 5.818a2 2 0 1 0 2.828 2.828L98 70.828V86a2.002 2.002 0 0 0 2.772 1.874A2 2 0 0 0 102 86V70.828l2.586 2.586a1.998 1.998 0 0 0 3.295-.63 2.005 2.005 0 0 0-.467-2.198l-5.828-5.828a2 2 0 0 0-1.617-.787"
|
|
26
27
|
})]
|
|
27
|
-
}), /*#__PURE__*/
|
|
28
|
-
children: /*#__PURE__*/
|
|
28
|
+
}), /*#__PURE__*/jsx("defs", {
|
|
29
|
+
children: /*#__PURE__*/jsx("clipPath", {
|
|
29
30
|
id: "blobby-gray-icon-upload-to-the-cloud_svg__a",
|
|
30
|
-
children: /*#__PURE__*/
|
|
31
|
+
children: /*#__PURE__*/jsx("path", {
|
|
31
32
|
fill: "#fff",
|
|
32
33
|
d: "M0 0h200v128H0z"
|
|
33
34
|
})
|
|
34
35
|
})
|
|
35
36
|
})]
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
|
|
39
|
+
export { SvgBlobbyGrayIconUploadToTheCloud as default };
|
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
3
4
|
const SvgBlobbyIconCloudChecked = ({
|
|
4
5
|
title,
|
|
5
6
|
titleId,
|
|
6
7
|
...props
|
|
7
|
-
}) => /*#__PURE__*/
|
|
8
|
+
}) => /*#__PURE__*/jsxs("svg", {
|
|
8
9
|
xmlns: "http://www.w3.org/2000/svg",
|
|
9
10
|
fill: "none",
|
|
10
11
|
viewBox: "0 0 200 128",
|
|
11
12
|
"aria-labelledby": titleId,
|
|
12
13
|
...props,
|
|
13
|
-
children: [title ? /*#__PURE__*/
|
|
14
|
+
children: [title ? /*#__PURE__*/jsx("title", {
|
|
14
15
|
id: titleId,
|
|
15
16
|
children: title
|
|
16
|
-
}) : null, /*#__PURE__*/
|
|
17
|
+
}) : null, /*#__PURE__*/jsxs("g", {
|
|
17
18
|
clipPath: "url(#blobby-icon-cloud-checked_svg__a)",
|
|
18
|
-
children: [/*#__PURE__*/
|
|
19
|
+
children: [/*#__PURE__*/jsx("path", {
|
|
19
20
|
fill: "#E2F6EC",
|
|
20
21
|
fillRule: "evenodd",
|
|
21
22
|
d: "M113.962 6.222c26.535 2.074 38.447 30.862 44.693 56.735 4.621 19.146-2.901 38.537-18.932 49.978-15.595 11.131-35.55 10.486-51.986.639C63.732 99.19 34.311 80.943 40.954 53.757c7.619-31.19 41-50.037 73.009-47.535",
|
|
22
23
|
clipRule: "evenodd"
|
|
23
|
-
}), /*#__PURE__*/
|
|
24
|
+
}), /*#__PURE__*/jsx("path", {
|
|
24
25
|
fill: "url(#blobby-icon-cloud-checked_svg__b)",
|
|
25
26
|
fillOpacity: 0.2,
|
|
26
27
|
fillRule: "evenodd",
|
|
27
28
|
d: "M113.962 6.222c26.535 2.074 38.447 30.862 44.693 56.735 4.621 19.146-2.901 38.537-18.932 49.978-15.595 11.131-35.55 10.486-51.986.639C63.732 99.19 34.311 80.943 40.954 53.757c7.619-31.19 41-50.037 73.009-47.535",
|
|
28
29
|
clipRule: "evenodd"
|
|
29
|
-
}), /*#__PURE__*/
|
|
30
|
+
}), /*#__PURE__*/jsx("path", {
|
|
30
31
|
fill: "url(#blobby-icon-cloud-checked_svg__c)",
|
|
31
32
|
d: "M144.999 66.449h-.019c-2.75 0-4.982-3.33-5-7.449-.018 4.11-2.239 7.434-4.98 7.449 2.741.015 4.962 3.34 4.98 7.449.018-4.119 2.25-7.449 5-7.449z"
|
|
32
|
-
}), /*#__PURE__*/
|
|
33
|
+
}), /*#__PURE__*/jsx("path", {
|
|
33
34
|
fill: "url(#blobby-icon-cloud-checked_svg__d)",
|
|
34
35
|
d: "M70.999 23.449h-.02c-2.75 0-4.98-3.33-4.999-7.449-.018 4.11-2.239 7.434-4.98 7.449 2.741.015 4.962 3.34 4.98 7.449.018-4.119 2.25-7.449 5-7.449z"
|
|
35
|
-
}), /*#__PURE__*/
|
|
36
|
+
}), /*#__PURE__*/jsx("path", {
|
|
36
37
|
fill: "url(#blobby-icon-cloud-checked_svg__e)",
|
|
37
38
|
d: "M64.999 103.449h-.02c-2.75 0-4.98-3.33-4.999-7.449-.018 4.109-2.239 7.434-4.98 7.449 2.741.015 4.962 3.34 4.98 7.449.018-4.119 2.25-7.449 5-7.449z"
|
|
38
|
-
}), /*#__PURE__*/
|
|
39
|
+
}), /*#__PURE__*/jsxs("mask", {
|
|
39
40
|
id: "blobby-icon-cloud-checked_svg__g",
|
|
40
41
|
width: 200,
|
|
41
42
|
height: 128,
|
|
@@ -45,118 +46,119 @@ const SvgBlobbyIconCloudChecked = ({
|
|
|
45
46
|
style: {
|
|
46
47
|
maskType: 'alpha'
|
|
47
48
|
},
|
|
48
|
-
children: [/*#__PURE__*/
|
|
49
|
+
children: [/*#__PURE__*/jsx("path", {
|
|
49
50
|
fill: "#E2F6EC",
|
|
50
51
|
fillRule: "evenodd",
|
|
51
52
|
d: "M113.962 6.222c26.535 2.074 38.447 30.862 44.693 56.735 4.621 19.146-2.901 38.537-18.932 49.978-15.595 11.131-35.55 10.486-51.986.639C63.732 99.19 34.311 80.943 40.954 53.757c7.619-31.19 41-50.037 73.009-47.535",
|
|
52
53
|
clipRule: "evenodd"
|
|
53
|
-
}), /*#__PURE__*/
|
|
54
|
+
}), /*#__PURE__*/jsx("path", {
|
|
54
55
|
fill: "url(#blobby-icon-cloud-checked_svg__f)",
|
|
55
56
|
fillOpacity: 0.2,
|
|
56
57
|
fillRule: "evenodd",
|
|
57
58
|
d: "M113.962 6.222c26.535 2.074 38.447 30.862 44.693 56.735 4.621 19.146-2.901 38.537-18.932 49.978-15.595 11.131-35.55 10.486-51.986.639C63.732 99.19 34.311 80.943 40.954 53.757c7.619-31.19 41-50.037 73.009-47.535",
|
|
58
59
|
clipRule: "evenodd"
|
|
59
60
|
})]
|
|
60
|
-
}), /*#__PURE__*/
|
|
61
|
+
}), /*#__PURE__*/jsx("g", {
|
|
61
62
|
mask: "url(#blobby-icon-cloud-checked_svg__g)",
|
|
62
|
-
children: /*#__PURE__*/
|
|
63
|
+
children: /*#__PURE__*/jsx("path", {
|
|
63
64
|
fill: "url(#blobby-icon-cloud-checked_svg__h)",
|
|
64
65
|
d: "M162.5 95.795 113.205 46.5 71.431 78.93l49.837 49.838z",
|
|
65
66
|
opacity: 0.25
|
|
66
67
|
})
|
|
67
|
-
}), /*#__PURE__*/
|
|
68
|
+
}), /*#__PURE__*/jsx("path", {
|
|
68
69
|
fill: "#EAF3DC",
|
|
69
70
|
d: "M84.057 60c.679-8.2 7.57-14.667 15.943-14.667S115.264 51.8 115.943 60h.724C122.916 60 128 65.084 128 71.333s-5.084 11.334-11.333 11.334H83.333C77.084 82.667 72 77.583 72 71.333 72 65.084 77.084 60 83.333 60z"
|
|
70
|
-
}), /*#__PURE__*/
|
|
71
|
+
}), /*#__PURE__*/jsx("path", {
|
|
71
72
|
fill: "#2C8658",
|
|
72
73
|
d: "M100 41.333c-9.987 0-18.227 7.614-19.227 17.334H80c-6.613 0-12 5.386-12 12s5.387 12 12 12h10.188l-4-4H80c-4.413 0-8-3.587-8-8s3.587-8 8-8h2.667c1.106 0 2-.894 2-2 0-8.454 6.88-15.334 15.333-15.334s15.333 6.88 15.333 15.334c0 1.106.894 2 2 2H120c4.413 0 8 3.586 8 8s-3.587 8-8 8h-12.214l-4.401 4H120c6.613 0 12-5.387 12-12s-5.387-12-12-12h-.773c-1-9.72-9.24-17.334-19.227-17.334m11.391 23.982a2 2 0 0 0-1.404.54L96.732 77.903l-6.651-6.651a2 2 0 1 0-2.828 2.828l8 8a2 2 0 0 0 2.76.065l14.667-13.333a2 2 0 0 0-1.289-3.498"
|
|
73
74
|
})]
|
|
74
|
-
}), /*#__PURE__*/
|
|
75
|
-
children: [/*#__PURE__*/
|
|
75
|
+
}), /*#__PURE__*/jsxs("defs", {
|
|
76
|
+
children: [/*#__PURE__*/jsxs("linearGradient", {
|
|
76
77
|
id: "blobby-icon-cloud-checked_svg__b",
|
|
77
78
|
x1: 145.5,
|
|
78
79
|
x2: 54.2,
|
|
79
80
|
y1: 111.5,
|
|
80
81
|
y2: 21.651,
|
|
81
82
|
gradientUnits: "userSpaceOnUse",
|
|
82
|
-
children: [/*#__PURE__*/
|
|
83
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
83
84
|
stopColor: "#F1F0EC"
|
|
84
|
-
}), /*#__PURE__*/
|
|
85
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
85
86
|
offset: 1,
|
|
86
87
|
stopColor: "#84D6AC"
|
|
87
88
|
})]
|
|
88
|
-
}), /*#__PURE__*/
|
|
89
|
+
}), /*#__PURE__*/jsxs("linearGradient", {
|
|
89
90
|
id: "blobby-icon-cloud-checked_svg__c",
|
|
90
91
|
x1: 135,
|
|
91
92
|
x2: 145,
|
|
92
93
|
y1: 59,
|
|
93
94
|
y2: 74,
|
|
94
95
|
gradientUnits: "userSpaceOnUse",
|
|
95
|
-
children: [/*#__PURE__*/
|
|
96
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
96
97
|
stopColor: "#2C8658"
|
|
97
|
-
}), /*#__PURE__*/
|
|
98
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
98
99
|
offset: 1,
|
|
99
100
|
stopColor: "#ACD278"
|
|
100
101
|
})]
|
|
101
|
-
}), /*#__PURE__*/
|
|
102
|
+
}), /*#__PURE__*/jsxs("linearGradient", {
|
|
102
103
|
id: "blobby-icon-cloud-checked_svg__d",
|
|
103
104
|
x1: 61,
|
|
104
105
|
x2: 71,
|
|
105
106
|
y1: 16,
|
|
106
107
|
y2: 31,
|
|
107
108
|
gradientUnits: "userSpaceOnUse",
|
|
108
|
-
children: [/*#__PURE__*/
|
|
109
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
109
110
|
stopColor: "#2C8658"
|
|
110
|
-
}), /*#__PURE__*/
|
|
111
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
111
112
|
offset: 1,
|
|
112
113
|
stopColor: "#ACD278"
|
|
113
114
|
})]
|
|
114
|
-
}), /*#__PURE__*/
|
|
115
|
+
}), /*#__PURE__*/jsxs("linearGradient", {
|
|
115
116
|
id: "blobby-icon-cloud-checked_svg__e",
|
|
116
117
|
x1: 55,
|
|
117
118
|
x2: 65,
|
|
118
119
|
y1: 96,
|
|
119
120
|
y2: 111,
|
|
120
121
|
gradientUnits: "userSpaceOnUse",
|
|
121
|
-
children: [/*#__PURE__*/
|
|
122
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
122
123
|
stopColor: "#2C8658"
|
|
123
|
-
}), /*#__PURE__*/
|
|
124
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
124
125
|
offset: 1,
|
|
125
126
|
stopColor: "#ACD278"
|
|
126
127
|
})]
|
|
127
|
-
}), /*#__PURE__*/
|
|
128
|
+
}), /*#__PURE__*/jsxs("linearGradient", {
|
|
128
129
|
id: "blobby-icon-cloud-checked_svg__f",
|
|
129
130
|
x1: 145.5,
|
|
130
131
|
x2: 54.2,
|
|
131
132
|
y1: 111.5,
|
|
132
133
|
y2: 21.651,
|
|
133
134
|
gradientUnits: "userSpaceOnUse",
|
|
134
|
-
children: [/*#__PURE__*/
|
|
135
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
135
136
|
stopColor: "#F1F0EC"
|
|
136
|
-
}), /*#__PURE__*/
|
|
137
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
137
138
|
offset: 1,
|
|
138
139
|
stopColor: "#84D6AC"
|
|
139
140
|
})]
|
|
140
|
-
}), /*#__PURE__*/
|
|
141
|
+
}), /*#__PURE__*/jsxs("linearGradient", {
|
|
141
142
|
id: "blobby-icon-cloud-checked_svg__h",
|
|
142
143
|
x1: 88.4,
|
|
143
144
|
x2: 136.803,
|
|
144
145
|
y1: 65,
|
|
145
146
|
y2: 119.434,
|
|
146
147
|
gradientUnits: "userSpaceOnUse",
|
|
147
|
-
children: [/*#__PURE__*/
|
|
148
|
+
children: [/*#__PURE__*/jsx("stop", {
|
|
148
149
|
stopColor: "#2C8658"
|
|
149
|
-
}), /*#__PURE__*/
|
|
150
|
+
}), /*#__PURE__*/jsx("stop", {
|
|
150
151
|
offset: 1,
|
|
151
152
|
stopColor: "#ACD278"
|
|
152
153
|
})]
|
|
153
|
-
}), /*#__PURE__*/
|
|
154
|
+
}), /*#__PURE__*/jsx("clipPath", {
|
|
154
155
|
id: "blobby-icon-cloud-checked_svg__a",
|
|
155
|
-
children: /*#__PURE__*/
|
|
156
|
+
children: /*#__PURE__*/jsx("path", {
|
|
156
157
|
fill: "#fff",
|
|
157
158
|
d: "M0 0h200v128H0z"
|
|
158
159
|
})
|
|
159
160
|
})]
|
|
160
161
|
})]
|
|
161
162
|
});
|
|
162
|
-
|
|
163
|
+
|
|
164
|
+
export { SvgBlobbyIconCloudChecked as default };
|