@iwer/devui 1.0.2 → 1.1.1
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/build/iwer-devui.js +415 -119
- package/build/iwer-devui.min.js +65 -55
- package/build/iwer-devui.module.js +415 -119
- package/build/iwer-devui.module.min.js +56 -46
- package/lib/components/controller.d.ts +18 -0
- package/lib/components/controller.d.ts.map +1 -0
- package/lib/{src/components/controls.js → components/controller.js} +28 -63
- package/lib/components/controller.js.map +1 -0
- package/lib/components/controls.d.ts +5 -9
- package/lib/components/controls.d.ts.map +1 -1
- package/lib/components/controls.js +14 -83
- package/lib/components/controls.js.map +1 -1
- package/lib/components/hand.d.ts +18 -0
- package/lib/components/hand.d.ts.map +1 -0
- package/lib/components/hand.js +51 -0
- package/lib/components/hand.js.map +1 -0
- package/lib/components/header.d.ts +7 -0
- package/lib/components/header.d.ts.map +1 -1
- package/lib/components/header.js +48 -4
- package/lib/components/header.js.map +1 -1
- package/lib/components/icons.d.ts +4 -0
- package/lib/components/icons.d.ts.map +1 -1
- package/lib/components/icons.js +10 -1
- package/lib/components/icons.js.map +1 -1
- package/lib/components/mapper.d.ts +3 -2
- package/lib/components/mapper.d.ts.map +1 -1
- package/lib/components/mapper.js +8 -2
- package/lib/components/mapper.js.map +1 -1
- package/lib/{src/components/analog.d.ts → components/pinch.d.ts} +5 -6
- package/lib/components/pinch.d.ts.map +1 -0
- package/lib/{src/components/analog.js → components/pinch.js} +22 -39
- package/lib/components/pinch.js.map +1 -0
- package/lib/{src/components/binary.d.ts → components/pose.d.ts} +5 -6
- package/lib/components/pose.d.ts.map +1 -0
- package/lib/components/pose.js +62 -0
- package/lib/components/pose.js.map +1 -0
- package/lib/components/styled.d.ts +6 -0
- package/lib/components/styled.d.ts.map +1 -1
- package/lib/components/styled.js +11 -0
- package/lib/components/styled.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/scene.d.ts.map +1 -1
- package/lib/scene.js +5 -3
- package/lib/scene.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -2
- package/lib/components/fov.d.ts +0 -16
- package/lib/components/fov.d.ts.map +0 -1
- package/lib/components/fov.js +0 -30
- package/lib/components/fov.js.map +0 -1
- package/lib/package.json +0 -55
- package/lib/src/components/analog.d.ts.map +0 -1
- package/lib/src/components/analog.js.map +0 -1
- package/lib/src/components/binary.d.ts.map +0 -1
- package/lib/src/components/binary.js +0 -77
- package/lib/src/components/binary.js.map +0 -1
- package/lib/src/components/controls.d.ts +0 -29
- package/lib/src/components/controls.d.ts.map +0 -1
- package/lib/src/components/controls.js.map +0 -1
- package/lib/src/components/fov.d.ts +0 -16
- package/lib/src/components/fov.d.ts.map +0 -1
- package/lib/src/components/fov.js +0 -30
- package/lib/src/components/fov.js.map +0 -1
- package/lib/src/components/header.d.ts +0 -20
- package/lib/src/components/header.d.ts.map +0 -1
- package/lib/src/components/header.js +0 -47
- package/lib/src/components/header.js.map +0 -1
- package/lib/src/components/headset.d.ts +0 -17
- package/lib/src/components/headset.d.ts.map +0 -1
- package/lib/src/components/headset.js +0 -29
- package/lib/src/components/headset.js.map +0 -1
- package/lib/src/components/icons.d.ts +0 -37
- package/lib/src/components/icons.d.ts.map +0 -1
- package/lib/src/components/icons.js +0 -265
- package/lib/src/components/icons.js.map +0 -1
- package/lib/src/components/joystick.d.ts +0 -21
- package/lib/src/components/joystick.d.ts.map +0 -1
- package/lib/src/components/joystick.js +0 -245
- package/lib/src/components/joystick.js.map +0 -1
- package/lib/src/components/keys.d.ts +0 -10
- package/lib/src/components/keys.d.ts.map +0 -1
- package/lib/src/components/keys.js +0 -74
- package/lib/src/components/keys.js.map +0 -1
- package/lib/src/components/mapper.d.ts +0 -22
- package/lib/src/components/mapper.d.ts.map +0 -1
- package/lib/src/components/mapper.js +0 -108
- package/lib/src/components/mapper.js.map +0 -1
- package/lib/src/components/styled.d.ts +0 -70
- package/lib/src/components/styled.d.ts.map +0 -1
- package/lib/src/components/styled.js +0 -272
- package/lib/src/components/styled.js.map +0 -1
- package/lib/src/components/vec3.d.ts +0 -22
- package/lib/src/components/vec3.d.ts.map +0 -1
- package/lib/src/components/vec3.js +0 -123
- package/lib/src/components/vec3.js.map +0 -1
- package/lib/src/index.d.ts +0 -22
- package/lib/src/index.d.ts.map +0 -1
- package/lib/src/index.js +0 -92
- package/lib/src/index.js.map +0 -1
- package/lib/src/scene.d.ts +0 -51
- package/lib/src/scene.d.ts.map +0 -1
- package/lib/src/scene.js +0 -250
- package/lib/src/scene.js.map +0 -1
|
@@ -4906,6 +4906,17 @@ const FAIcon = dt(FontAwesomeIcon) `
|
|
|
4906
4906
|
width: ${({ $size = 14 }) => `${$size}px`};
|
|
4907
4907
|
min-width: ${({ $size = 14 }) => `${$size}px`};
|
|
4908
4908
|
max-width: ${({ $size = 14 }) => `${$size}px`};
|
|
4909
|
+
transform: ${({ $reverse }) => ($reverse ? 'scaleX(-1)' : 'unset')};
|
|
4910
|
+
`;
|
|
4911
|
+
const FAControlIcon = dt(FontAwesomeIcon) `
|
|
4912
|
+
height: 18px;
|
|
4913
|
+
min-height: 18px;
|
|
4914
|
+
max-height: 18px;
|
|
4915
|
+
width: 18px;
|
|
4916
|
+
min-width: 18px;
|
|
4917
|
+
max-width: 18px;
|
|
4918
|
+
margin: 6px;
|
|
4919
|
+
transform: ${({ $reverse }) => ($reverse ? 'scaleX(-1)' : 'unset')};
|
|
4909
4920
|
`;
|
|
4910
4921
|
const ControlPanel = dt.div `
|
|
4911
4922
|
position: fixed;
|
|
@@ -4991,6 +5002,142 @@ const InputSuffix = dt.span `
|
|
|
4991
5002
|
font-size: 10px;
|
|
4992
5003
|
`;
|
|
4993
5004
|
|
|
5005
|
+
const faRightFromBracket = {
|
|
5006
|
+
prefix: 'fas',
|
|
5007
|
+
iconName: 'right-from-bracket',
|
|
5008
|
+
icon: [512, 512, ["sign-out-alt"], "f2f5", "M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]
|
|
5009
|
+
};
|
|
5010
|
+
const faFingerprint = {
|
|
5011
|
+
prefix: 'fas',
|
|
5012
|
+
iconName: 'fingerprint',
|
|
5013
|
+
icon: [512, 512, [], "f577", "M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"]
|
|
5014
|
+
};
|
|
5015
|
+
const faCaretRight = {
|
|
5016
|
+
prefix: 'fas',
|
|
5017
|
+
iconName: 'caret-right',
|
|
5018
|
+
icon: [256, 512, [], "f0da", "M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]
|
|
5019
|
+
};
|
|
5020
|
+
const faCaretLeft = {
|
|
5021
|
+
prefix: 'fas',
|
|
5022
|
+
iconName: 'caret-left',
|
|
5023
|
+
icon: [256, 512, [], "f0d9", "M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]
|
|
5024
|
+
};
|
|
5025
|
+
const faGamepad = {
|
|
5026
|
+
prefix: 'fas',
|
|
5027
|
+
iconName: 'gamepad',
|
|
5028
|
+
icon: [640, 512, [], "f11b", "M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"]
|
|
5029
|
+
};
|
|
5030
|
+
const faHand = {
|
|
5031
|
+
prefix: 'fas',
|
|
5032
|
+
iconName: 'hand',
|
|
5033
|
+
icon: [512, 512, [129306, 9995, "hand-paper"], "f256", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z"]
|
|
5034
|
+
};
|
|
5035
|
+
const faPlug = {
|
|
5036
|
+
prefix: 'fas',
|
|
5037
|
+
iconName: 'plug',
|
|
5038
|
+
icon: [384, 512, [128268], "f1e6", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]
|
|
5039
|
+
};
|
|
5040
|
+
const faBan = {
|
|
5041
|
+
prefix: 'fas',
|
|
5042
|
+
iconName: 'ban',
|
|
5043
|
+
icon: [512, 512, [128683, "cancel"], "f05e", "M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]
|
|
5044
|
+
};
|
|
5045
|
+
const faArrowRightToBracket = {
|
|
5046
|
+
prefix: 'fas',
|
|
5047
|
+
iconName: 'arrow-right-to-bracket',
|
|
5048
|
+
icon: [512, 512, ["sign-in"], "f090", "M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]
|
|
5049
|
+
};
|
|
5050
|
+
const faCaretUp = {
|
|
5051
|
+
prefix: 'fas',
|
|
5052
|
+
iconName: 'caret-up',
|
|
5053
|
+
icon: [320, 512, [], "f0d8", "M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]
|
|
5054
|
+
};
|
|
5055
|
+
const faRotateLeft = {
|
|
5056
|
+
prefix: 'fas',
|
|
5057
|
+
iconName: 'rotate-left',
|
|
5058
|
+
icon: [512, 512, ["rotate-back", "rotate-backward", "undo-alt"], "f2ea", "M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"]
|
|
5059
|
+
};
|
|
5060
|
+
const faCirclePlay = {
|
|
5061
|
+
prefix: 'fas',
|
|
5062
|
+
iconName: 'circle-play',
|
|
5063
|
+
icon: [512, 512, [61469, "play-circle"], "f144", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]
|
|
5064
|
+
};
|
|
5065
|
+
const faPersonShelter = {
|
|
5066
|
+
prefix: 'fas',
|
|
5067
|
+
iconName: 'person-shelter',
|
|
5068
|
+
icon: [512, 512, [], "e54f", "M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z"]
|
|
5069
|
+
};
|
|
5070
|
+
const faHandScissors = {
|
|
5071
|
+
prefix: 'fas',
|
|
5072
|
+
iconName: 'hand-scissors',
|
|
5073
|
+
icon: [512, 512, [], "f257", "M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"]
|
|
5074
|
+
};
|
|
5075
|
+
const faStreetView = {
|
|
5076
|
+
prefix: 'fas',
|
|
5077
|
+
iconName: 'street-view',
|
|
5078
|
+
icon: [512, 512, [], "f21d", "M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]
|
|
5079
|
+
};
|
|
5080
|
+
const faGear = {
|
|
5081
|
+
prefix: 'fas',
|
|
5082
|
+
iconName: 'gear',
|
|
5083
|
+
icon: [512, 512, [9881, "cog"], "f013", "M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]
|
|
5084
|
+
};
|
|
5085
|
+
const faCaretDown = {
|
|
5086
|
+
prefix: 'fas',
|
|
5087
|
+
iconName: 'caret-down',
|
|
5088
|
+
icon: [320, 512, [], "f0d7", "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]
|
|
5089
|
+
};
|
|
5090
|
+
const faDeleteLeft = {
|
|
5091
|
+
prefix: 'fas',
|
|
5092
|
+
iconName: 'delete-left',
|
|
5093
|
+
icon: [576, 512, [9003, "backspace"], "f55a", "M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]
|
|
5094
|
+
};
|
|
5095
|
+
const faBug = {
|
|
5096
|
+
prefix: 'fas',
|
|
5097
|
+
iconName: 'bug',
|
|
5098
|
+
icon: [512, 512, [], "f188", "M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]
|
|
5099
|
+
};
|
|
5100
|
+
const faAngleUp = {
|
|
5101
|
+
prefix: 'fas',
|
|
5102
|
+
iconName: 'angle-up',
|
|
5103
|
+
icon: [448, 512, [8963], "f106", "M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]
|
|
5104
|
+
};
|
|
5105
|
+
const faChevronLeft = {
|
|
5106
|
+
prefix: 'fas',
|
|
5107
|
+
iconName: 'chevron-left',
|
|
5108
|
+
icon: [320, 512, [9001], "f053", "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]
|
|
5109
|
+
};
|
|
5110
|
+
const faHandLizard = {
|
|
5111
|
+
prefix: 'fas',
|
|
5112
|
+
iconName: 'hand-lizard',
|
|
5113
|
+
icon: [512, 512, [], "f258", "M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z"]
|
|
5114
|
+
};
|
|
5115
|
+
const faChevronRight = {
|
|
5116
|
+
prefix: 'fas',
|
|
5117
|
+
iconName: 'chevron-right',
|
|
5118
|
+
icon: [320, 512, [9002], "f054", "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]
|
|
5119
|
+
};
|
|
5120
|
+
const faVrCardboard = {
|
|
5121
|
+
prefix: 'fas',
|
|
5122
|
+
iconName: 'vr-cardboard',
|
|
5123
|
+
icon: [640, 512, [], "f729", "M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]
|
|
5124
|
+
};
|
|
5125
|
+
const faArrowTurnDown = {
|
|
5126
|
+
prefix: 'fas',
|
|
5127
|
+
iconName: 'arrow-turn-down',
|
|
5128
|
+
icon: [384, 512, ["level-down"], "f149", "M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]
|
|
5129
|
+
};
|
|
5130
|
+
const faCircleXmark = {
|
|
5131
|
+
prefix: 'fas',
|
|
5132
|
+
iconName: 'circle-xmark',
|
|
5133
|
+
icon: [512, 512, [61532, "times-circle", "xmark-circle"], "f057", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]
|
|
5134
|
+
};
|
|
5135
|
+
const faVideo = {
|
|
5136
|
+
prefix: 'fas',
|
|
5137
|
+
iconName: 'video',
|
|
5138
|
+
icon: [576, 512, ["video-camera"], "f03d", "M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]
|
|
5139
|
+
};
|
|
5140
|
+
|
|
4994
5141
|
const IconSize = ControlButtonStyles.height;
|
|
4995
5142
|
const ButtonX = ({ scale = 1.2 }) => (jsxRuntimeExports.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: IconSize, height: IconSize, fill: "none", transform: `scale(${scale}, ${scale})`, children: [jsxRuntimeExports.jsx("path", { fill: "#fff", fillRule: "evenodd", d: "M7 13.125a7 7 0 1 0 14 0v1.75a7 7 0 0 1-14 0v-1.75Z", clipRule: "evenodd", style: {
|
|
4996
5143
|
fill: '#fff',
|
|
@@ -5192,6 +5339,10 @@ const ThumbrestR = ({ scale = 1.2 }) => (jsxRuntimeExports.jsxs("svg", { xmlns:
|
|
|
5192
5339
|
fill: '#fff',
|
|
5193
5340
|
fillOpacity: 1,
|
|
5194
5341
|
} })] }));
|
|
5342
|
+
const PoseL = () => (jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandScissors, "$reverse": true }));
|
|
5343
|
+
const PoseR = () => (jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandScissors, "$reverse": false }));
|
|
5344
|
+
const PinchL = () => (jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandLizard, "$reverse": true }));
|
|
5345
|
+
const PinchR = () => (jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandLizard, "$reverse": false }));
|
|
5195
5346
|
// Create a mapping of buttonId to icon component
|
|
5196
5347
|
const buttonIdToIcon = {
|
|
5197
5348
|
'x-button-left': ButtonX,
|
|
@@ -5203,6 +5354,8 @@ const buttonIdToIcon = {
|
|
|
5203
5354
|
'thumbstick-down-left': ThumbstickLDown,
|
|
5204
5355
|
'thumbstick-right-left': ThumbstickLRight,
|
|
5205
5356
|
'thumbstick-left-left': ThumbstickLLeft,
|
|
5357
|
+
'pose-left': PoseL,
|
|
5358
|
+
'pinch-left': PinchL,
|
|
5206
5359
|
'thumbstick-right': ThumbstickR,
|
|
5207
5360
|
'thumbstick-up-right': ThumbstickRUp,
|
|
5208
5361
|
'thumbstick-down-right': ThumbstickRDown,
|
|
@@ -5214,6 +5367,8 @@ const buttonIdToIcon = {
|
|
|
5214
5367
|
'squeeze-right': GripR,
|
|
5215
5368
|
'thumbrest-left': ThumbrestL,
|
|
5216
5369
|
'thumbrest-right': ThumbrestR,
|
|
5370
|
+
'pose-right': PoseR,
|
|
5371
|
+
'pinch-right': PinchR,
|
|
5217
5372
|
};
|
|
5218
5373
|
const GamepadIcon = ({ buttonName, handedness, }) => {
|
|
5219
5374
|
const buttonId = `${buttonName}-${handedness}`;
|
|
@@ -5263,112 +5418,6 @@ const IWERIcon = ({ size = 14, color = Colors.textWhite, }) => (jsxRuntimeExport
|
|
|
5263
5418
|
fillOpacity: 1,
|
|
5264
5419
|
} })] }));
|
|
5265
5420
|
|
|
5266
|
-
const faRightFromBracket = {
|
|
5267
|
-
prefix: 'fas',
|
|
5268
|
-
iconName: 'right-from-bracket',
|
|
5269
|
-
icon: [512, 512, ["sign-out-alt"], "f2f5", "M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]
|
|
5270
|
-
};
|
|
5271
|
-
const faFingerprint = {
|
|
5272
|
-
prefix: 'fas',
|
|
5273
|
-
iconName: 'fingerprint',
|
|
5274
|
-
icon: [512, 512, [], "f577", "M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"]
|
|
5275
|
-
};
|
|
5276
|
-
const faCaretRight = {
|
|
5277
|
-
prefix: 'fas',
|
|
5278
|
-
iconName: 'caret-right',
|
|
5279
|
-
icon: [256, 512, [], "f0da", "M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"]
|
|
5280
|
-
};
|
|
5281
|
-
const faCaretLeft = {
|
|
5282
|
-
prefix: 'fas',
|
|
5283
|
-
iconName: 'caret-left',
|
|
5284
|
-
icon: [256, 512, [], "f0d9", "M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"]
|
|
5285
|
-
};
|
|
5286
|
-
const faGamepad = {
|
|
5287
|
-
prefix: 'fas',
|
|
5288
|
-
iconName: 'gamepad',
|
|
5289
|
-
icon: [640, 512, [], "f11b", "M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"]
|
|
5290
|
-
};
|
|
5291
|
-
const faPlug = {
|
|
5292
|
-
prefix: 'fas',
|
|
5293
|
-
iconName: 'plug',
|
|
5294
|
-
icon: [384, 512, [128268], "f1e6", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"]
|
|
5295
|
-
};
|
|
5296
|
-
const faBan = {
|
|
5297
|
-
prefix: 'fas',
|
|
5298
|
-
iconName: 'ban',
|
|
5299
|
-
icon: [512, 512, [128683, "cancel"], "f05e", "M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"]
|
|
5300
|
-
};
|
|
5301
|
-
const faArrowRightToBracket = {
|
|
5302
|
-
prefix: 'fas',
|
|
5303
|
-
iconName: 'arrow-right-to-bracket',
|
|
5304
|
-
icon: [512, 512, ["sign-in"], "f090", "M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"]
|
|
5305
|
-
};
|
|
5306
|
-
const faCaretUp = {
|
|
5307
|
-
prefix: 'fas',
|
|
5308
|
-
iconName: 'caret-up',
|
|
5309
|
-
icon: [320, 512, [], "f0d8", "M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"]
|
|
5310
|
-
};
|
|
5311
|
-
const faRotateLeft = {
|
|
5312
|
-
prefix: 'fas',
|
|
5313
|
-
iconName: 'rotate-left',
|
|
5314
|
-
icon: [512, 512, ["rotate-back", "rotate-backward", "undo-alt"], "f2ea", "M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"]
|
|
5315
|
-
};
|
|
5316
|
-
const faCirclePlay = {
|
|
5317
|
-
prefix: 'fas',
|
|
5318
|
-
iconName: 'circle-play',
|
|
5319
|
-
icon: [512, 512, [61469, "play-circle"], "f144", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"]
|
|
5320
|
-
};
|
|
5321
|
-
const faStreetView = {
|
|
5322
|
-
prefix: 'fas',
|
|
5323
|
-
iconName: 'street-view',
|
|
5324
|
-
icon: [512, 512, [], "f21d", "M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"]
|
|
5325
|
-
};
|
|
5326
|
-
const faGear = {
|
|
5327
|
-
prefix: 'fas',
|
|
5328
|
-
iconName: 'gear',
|
|
5329
|
-
icon: [512, 512, [9881, "cog"], "f013", "M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"]
|
|
5330
|
-
};
|
|
5331
|
-
const faCaretDown = {
|
|
5332
|
-
prefix: 'fas',
|
|
5333
|
-
iconName: 'caret-down',
|
|
5334
|
-
icon: [320, 512, [], "f0d7", "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]
|
|
5335
|
-
};
|
|
5336
|
-
const faDeleteLeft = {
|
|
5337
|
-
prefix: 'fas',
|
|
5338
|
-
iconName: 'delete-left',
|
|
5339
|
-
icon: [576, 512, [9003, "backspace"], "f55a", "M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]
|
|
5340
|
-
};
|
|
5341
|
-
const faBug = {
|
|
5342
|
-
prefix: 'fas',
|
|
5343
|
-
iconName: 'bug',
|
|
5344
|
-
icon: [512, 512, [], "f188", "M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]
|
|
5345
|
-
};
|
|
5346
|
-
const faAngleUp = {
|
|
5347
|
-
prefix: 'fas',
|
|
5348
|
-
iconName: 'angle-up',
|
|
5349
|
-
icon: [448, 512, [8963], "f106", "M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"]
|
|
5350
|
-
};
|
|
5351
|
-
const faVrCardboard = {
|
|
5352
|
-
prefix: 'fas',
|
|
5353
|
-
iconName: 'vr-cardboard',
|
|
5354
|
-
icon: [640, 512, [], "f729", "M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"]
|
|
5355
|
-
};
|
|
5356
|
-
const faArrowTurnDown = {
|
|
5357
|
-
prefix: 'fas',
|
|
5358
|
-
iconName: 'arrow-turn-down',
|
|
5359
|
-
icon: [384, 512, ["level-down"], "f149", "M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"]
|
|
5360
|
-
};
|
|
5361
|
-
const faCircleXmark = {
|
|
5362
|
-
prefix: 'fas',
|
|
5363
|
-
iconName: 'circle-xmark',
|
|
5364
|
-
icon: [512, 512, [61532, "times-circle", "xmark-circle"], "f057", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]
|
|
5365
|
-
};
|
|
5366
|
-
const faVideo = {
|
|
5367
|
-
prefix: 'fas',
|
|
5368
|
-
iconName: 'video',
|
|
5369
|
-
icon: [576, 512, ["video-camera"], "f03d", "M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"]
|
|
5370
|
-
};
|
|
5371
|
-
|
|
5372
5421
|
const MappedKeyDisplay = {
|
|
5373
5422
|
KeyA: 'A',
|
|
5374
5423
|
KeyB: 'B',
|
|
@@ -5709,6 +5758,8 @@ const DEFAULT_KEYMAP = {
|
|
|
5709
5758
|
'y-button': 'KeyZ',
|
|
5710
5759
|
trigger: 'KeyQ',
|
|
5711
5760
|
squeeze: 'KeyE',
|
|
5761
|
+
pinch: 'MouseLeft',
|
|
5762
|
+
pose: 'KeyF',
|
|
5712
5763
|
},
|
|
5713
5764
|
right: {
|
|
5714
5765
|
'thumbstick-up': 'ArrowUp',
|
|
@@ -5720,6 +5771,8 @@ const DEFAULT_KEYMAP = {
|
|
|
5720
5771
|
'b-button': 'ShiftRight',
|
|
5721
5772
|
trigger: 'MouseLeft',
|
|
5722
5773
|
squeeze: 'MouseRight',
|
|
5774
|
+
pinch: 'MouseRight',
|
|
5775
|
+
pose: 'Backslash',
|
|
5723
5776
|
},
|
|
5724
5777
|
};
|
|
5725
5778
|
const useKeyMapStore = create((set) => ({
|
|
@@ -5745,7 +5798,7 @@ const Row = dt.div `
|
|
|
5745
5798
|
margin-bottom: 0;
|
|
5746
5799
|
}
|
|
5747
5800
|
`;
|
|
5748
|
-
const
|
|
5801
|
+
const ControlsMapper = ({ handedness, actions, }) => {
|
|
5749
5802
|
const { keyMap, bindKey } = useKeyMapStore();
|
|
5750
5803
|
const [currentMapping, setCurrentMapping] = reactExports.useState(null);
|
|
5751
5804
|
const startMapping = (action) => {
|
|
@@ -5783,7 +5836,9 @@ const ControllerMapper = ({ handedness, }) => {
|
|
|
5783
5836
|
window.removeEventListener('contextmenu', preventDefaultContextMenu);
|
|
5784
5837
|
};
|
|
5785
5838
|
}, [currentMapping]);
|
|
5786
|
-
return Object.keys(keyMap[handedness])
|
|
5839
|
+
return Object.keys(keyMap[handedness])
|
|
5840
|
+
.filter((action) => actions.includes(action))
|
|
5841
|
+
.map((action) => (jsxRuntimeExports.jsxs(Row, { children: [jsxRuntimeExports.jsx(GamepadIcon, { buttonName: action === 'up' ? 'thumbstick' : action, handedness: handedness }), jsxRuntimeExports.jsxs(ButtonGroup, { "$reverse": false, children: [jsxRuntimeExports.jsx(Button, { "$reverse": false, style: {
|
|
5787
5842
|
width: '100px',
|
|
5788
5843
|
background: currentMapping && currentMapping.action === action
|
|
5789
5844
|
? Colors.gradientLightGreyTranslucent
|
|
@@ -6286,13 +6341,25 @@ function transformGamepadConfig(gamepadConfig) {
|
|
|
6286
6341
|
});
|
|
6287
6342
|
return transformed;
|
|
6288
6343
|
}
|
|
6289
|
-
const ControlsUI = ({ xrDevice, inputLayer, pointerLocked, }) => {
|
|
6290
|
-
return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: Object.entries(xrDevice.controllers).map(([handedness, controller]) => (jsxRuntimeExports.jsx(ControllerUI, { controller: controller, handle: inputLayer.transformHandles.get(handedness), handedness: handedness, pointerLocked: pointerLocked }, `controller-${handedness}`))) }));
|
|
6291
|
-
};
|
|
6292
6344
|
const ControllerUI = ({ controller, handle, handedness, pointerLocked, }) => {
|
|
6293
6345
|
const { keyMap } = useKeyMapStore();
|
|
6294
6346
|
const [connected, setConnected] = React.useState(controller.connected);
|
|
6295
6347
|
const [settingsOpen, setSettingsOpen] = React.useState(false);
|
|
6348
|
+
const transformedConfig = transformGamepadConfig(controller.gamepadConfig);
|
|
6349
|
+
const actions = transformedConfig.flatMap((config) => {
|
|
6350
|
+
if (config.hasAxes) {
|
|
6351
|
+
return [
|
|
6352
|
+
`${config.id}-left`,
|
|
6353
|
+
`${config.id}-right`,
|
|
6354
|
+
`${config.id}-up`,
|
|
6355
|
+
`${config.id}-down`,
|
|
6356
|
+
config.id,
|
|
6357
|
+
];
|
|
6358
|
+
}
|
|
6359
|
+
else {
|
|
6360
|
+
return config.id;
|
|
6361
|
+
}
|
|
6362
|
+
});
|
|
6296
6363
|
React.useEffect(() => {
|
|
6297
6364
|
if (pointerLocked) {
|
|
6298
6365
|
setSettingsOpen(false);
|
|
@@ -6323,7 +6390,7 @@ const ControllerUI = ({ controller, handle, handedness, pointerLocked, }) => {
|
|
|
6323
6390
|
controller.connected = true;
|
|
6324
6391
|
setConnected(true);
|
|
6325
6392
|
}, style: { marginLeft: '5px' }, children: jsxRuntimeExports.jsx(FAIcon, { icon: faPlug }) })) })] }) })), connected && !pointerLocked && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [!settingsOpen && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(SectionBreak, {}), jsxRuntimeExports.jsx(Vector3Input, { vector: handle.position, label: "Position", marginBottom: ControlButtonStyles.gap }), jsxRuntimeExports.jsx(Vector3Input, { vector: handle.rotation, label: "Rotation" })] })), jsxRuntimeExports.jsx(SectionBreak, {})] })), connected &&
|
|
6326
|
-
(settingsOpen ? (jsxRuntimeExports.jsx(
|
|
6393
|
+
(settingsOpen ? (jsxRuntimeExports.jsx(ControlsMapper, { handedness: handedness, actions: actions })) : (transformedConfig.map((buttonConfig) => {
|
|
6327
6394
|
const mapping = keyMap[handedness];
|
|
6328
6395
|
if (buttonConfig.hasAxes) {
|
|
6329
6396
|
return (jsxRuntimeExports.jsx(Joystick, { xrController: controller, pointerLocked: pointerLocked, buttonId: buttonConfig.id, mappedKeyUp: keyMap[handedness][`${buttonConfig.id}-up`], mappedKeyDown: mapping[`${buttonConfig.id}-down`], mappedKeyLeft: mapping[`${buttonConfig.id}-left`], mappedKeyRight: mapping[`${buttonConfig.id}-right`], mappedKeyPressed: mapping[buttonConfig.id] }, buttonConfig.id));
|
|
@@ -6337,6 +6404,190 @@ const ControllerUI = ({ controller, handle, handedness, pointerLocked, }) => {
|
|
|
6337
6404
|
})))] }, handedness));
|
|
6338
6405
|
};
|
|
6339
6406
|
|
|
6407
|
+
const pinchSliderWidth = `calc(${ControlButtonStyles.widthLong} + ${ControlButtonStyles.widthShort} + ${ControlButtonStyles.gap})`;
|
|
6408
|
+
const PinchControl = ({ hand, pointerLocked, mappedKey, }) => {
|
|
6409
|
+
const [isPressed, setIsPressed] = reactExports.useState(false);
|
|
6410
|
+
const [isKeyPressed, setIsKeyPressed] = reactExports.useState(false);
|
|
6411
|
+
const [analogValue, setAnalogValue] = reactExports.useState(0);
|
|
6412
|
+
const handedness = hand.inputSource.handedness;
|
|
6413
|
+
reactExports.useEffect(() => {
|
|
6414
|
+
const handleKeyDown = (event) => {
|
|
6415
|
+
if (event.code === mappedKey) {
|
|
6416
|
+
hand.updatePinchValue(1);
|
|
6417
|
+
setIsKeyPressed(true);
|
|
6418
|
+
}
|
|
6419
|
+
};
|
|
6420
|
+
const handleKeyUp = (event) => {
|
|
6421
|
+
if (event.code === mappedKey) {
|
|
6422
|
+
hand.updatePinchValue(0);
|
|
6423
|
+
setIsKeyPressed(false);
|
|
6424
|
+
}
|
|
6425
|
+
};
|
|
6426
|
+
const handleMouseDown = (event) => {
|
|
6427
|
+
if ((mappedKey === 'MouseLeft' && event.button === 0) ||
|
|
6428
|
+
(mappedKey === 'MouseRight' && event.button === 2)) {
|
|
6429
|
+
hand.updatePinchValue(1);
|
|
6430
|
+
setIsKeyPressed(true);
|
|
6431
|
+
}
|
|
6432
|
+
};
|
|
6433
|
+
const handleMouseUp = (event) => {
|
|
6434
|
+
if ((mappedKey === 'MouseLeft' && event.button === 0) ||
|
|
6435
|
+
(mappedKey === 'MouseRight' && event.button === 2)) {
|
|
6436
|
+
hand.updatePinchValue(0);
|
|
6437
|
+
setIsKeyPressed(false);
|
|
6438
|
+
}
|
|
6439
|
+
};
|
|
6440
|
+
if (pointerLocked) {
|
|
6441
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
6442
|
+
window.addEventListener('mousedown', handleMouseDown);
|
|
6443
|
+
window.addEventListener('mouseup', handleMouseUp);
|
|
6444
|
+
}
|
|
6445
|
+
else {
|
|
6446
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
6447
|
+
window.addEventListener('keyup', handleKeyUp);
|
|
6448
|
+
}
|
|
6449
|
+
}
|
|
6450
|
+
else {
|
|
6451
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
6452
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
6453
|
+
window.removeEventListener('mouseup', handleMouseUp);
|
|
6454
|
+
}
|
|
6455
|
+
else {
|
|
6456
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
6457
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
6458
|
+
}
|
|
6459
|
+
}
|
|
6460
|
+
return () => {
|
|
6461
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
6462
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
6463
|
+
window.removeEventListener('mouseup', handleMouseUp);
|
|
6464
|
+
}
|
|
6465
|
+
else {
|
|
6466
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
6467
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
6468
|
+
}
|
|
6469
|
+
};
|
|
6470
|
+
}, [mappedKey, pointerLocked, hand]);
|
|
6471
|
+
return (jsxRuntimeExports.jsxs(ButtonContainer, { "$reverse": handedness === 'right', children: [jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandLizard, "$reverse": handedness === 'left' }), jsxRuntimeExports.jsx(ButtonGroup, { "$reverse": handedness === 'right', children: pointerLocked ? (jsxRuntimeExports.jsx(MappedKeyBlock, { "$pressed": isKeyPressed, children: MappedKeyDisplay[mappedKey] })) : (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Button, { "$reverse": handedness === 'right', style: {
|
|
6472
|
+
background: isPressed
|
|
6473
|
+
? Colors.gradientLightGreyTranslucent
|
|
6474
|
+
: Colors.gradientGreyTranslucent,
|
|
6475
|
+
width: ControlButtonStyles.widthLong,
|
|
6476
|
+
}, onClick: () => {
|
|
6477
|
+
setIsPressed(true);
|
|
6478
|
+
hand.updatePinchValue(1);
|
|
6479
|
+
setTimeout(() => {
|
|
6480
|
+
setIsPressed(false);
|
|
6481
|
+
hand.updatePinchValue(0);
|
|
6482
|
+
}, 250);
|
|
6483
|
+
}, children: "Pinch" }), jsxRuntimeExports.jsx(RangeSelector$1, { "$reverse": handedness === 'right', value: analogValue, onChange: (e) => {
|
|
6484
|
+
const value = Number(e.target.value);
|
|
6485
|
+
setAnalogValue(value);
|
|
6486
|
+
hand.updatePinchValue(value / 100);
|
|
6487
|
+
}, style: { width: pinchSliderWidth }, min: "0", max: "100" })] })) })] }));
|
|
6488
|
+
};
|
|
6489
|
+
|
|
6490
|
+
const poses = ['default', 'point'];
|
|
6491
|
+
const poseButtonWidth = `calc(2 * ${ControlButtonStyles.widthLong} - ${ControlButtonStyles.widthShort})`;
|
|
6492
|
+
const PoseSelector = ({ hand, pointerLocked, mappedKey, }) => {
|
|
6493
|
+
const [poseId, setPoseId] = reactExports.useState(hand.poseId);
|
|
6494
|
+
const [isKeyPressed, setIsKeyPressed] = reactExports.useState(false);
|
|
6495
|
+
const handedness = hand.inputSource.handedness;
|
|
6496
|
+
const cyclePose = (delta) => {
|
|
6497
|
+
const poseIdx = poses.indexOf(hand.poseId);
|
|
6498
|
+
const newPoseIdx = (poseIdx + poses.length + delta) % poses.length;
|
|
6499
|
+
setPoseId(poses[newPoseIdx]);
|
|
6500
|
+
hand.poseId = poses[newPoseIdx];
|
|
6501
|
+
};
|
|
6502
|
+
const layoutReverse = handedness === 'right';
|
|
6503
|
+
reactExports.useEffect(() => {
|
|
6504
|
+
const handleKeyDown = (event) => {
|
|
6505
|
+
if (event.code === mappedKey) {
|
|
6506
|
+
cyclePose(1);
|
|
6507
|
+
setIsKeyPressed(true);
|
|
6508
|
+
}
|
|
6509
|
+
};
|
|
6510
|
+
const handleKeyUp = (event) => {
|
|
6511
|
+
if (event.code === mappedKey) {
|
|
6512
|
+
setIsKeyPressed(false);
|
|
6513
|
+
}
|
|
6514
|
+
};
|
|
6515
|
+
if (pointerLocked) {
|
|
6516
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
6517
|
+
window.addEventListener('keyup', handleKeyUp);
|
|
6518
|
+
}
|
|
6519
|
+
else {
|
|
6520
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
6521
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
6522
|
+
}
|
|
6523
|
+
return () => {
|
|
6524
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
6525
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
6526
|
+
};
|
|
6527
|
+
}, [mappedKey, pointerLocked, hand]);
|
|
6528
|
+
return (jsxRuntimeExports.jsxs(ButtonContainer, { "$reverse": layoutReverse, children: [jsxRuntimeExports.jsx(FAControlIcon, { icon: faHandScissors, "$reverse": handedness === 'left' }), jsxRuntimeExports.jsx(ButtonGroup, { "$reverse": layoutReverse, children: pointerLocked ? (jsxRuntimeExports.jsx(MappedKeyBlock, { "$pressed": isKeyPressed, children: MappedKeyDisplay[mappedKey] })) : (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Button, { "$reverse": layoutReverse, style: {
|
|
6529
|
+
width: ControlButtonStyles.widthShort,
|
|
6530
|
+
}, onClick: () => {
|
|
6531
|
+
cyclePose(layoutReverse ? 1 : -1);
|
|
6532
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: layoutReverse ? faChevronRight : faChevronLeft }) }), jsxRuntimeExports.jsxs(Button, { "$reverse": layoutReverse, style: {
|
|
6533
|
+
width: poseButtonWidth,
|
|
6534
|
+
}, disabled: true, children: ["Pose: ", poseId] }), jsxRuntimeExports.jsx(Button, { "$reverse": layoutReverse, style: {
|
|
6535
|
+
width: ControlButtonStyles.widthShort,
|
|
6536
|
+
}, onClick: () => {
|
|
6537
|
+
cyclePose(layoutReverse ? -1 : 1);
|
|
6538
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: layoutReverse ? faChevronLeft : faChevronRight }) })] })) })] }));
|
|
6539
|
+
};
|
|
6540
|
+
|
|
6541
|
+
const HandUI = ({ hand, handle, handedness, pointerLocked, }) => {
|
|
6542
|
+
const { keyMap } = useKeyMapStore();
|
|
6543
|
+
const [connected, setConnected] = React.useState(hand.connected);
|
|
6544
|
+
const [settingsOpen, setSettingsOpen] = React.useState(false);
|
|
6545
|
+
React.useEffect(() => {
|
|
6546
|
+
if (pointerLocked) {
|
|
6547
|
+
setSettingsOpen(false);
|
|
6548
|
+
}
|
|
6549
|
+
}, [pointerLocked]);
|
|
6550
|
+
return (jsxRuntimeExports.jsxs(ControlPanel, { style: handedness === 'left'
|
|
6551
|
+
? { left: '8px', bottom: '8px' }
|
|
6552
|
+
: { right: '8px', bottom: '8px' }, children: [!pointerLocked && (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: jsxRuntimeExports.jsxs("div", { style: {
|
|
6553
|
+
display: 'flex',
|
|
6554
|
+
flexDirection: 'row',
|
|
6555
|
+
justifyContent: 'space-between',
|
|
6556
|
+
alignItems: 'center',
|
|
6557
|
+
}, children: [jsxRuntimeExports.jsxs("div", { style: {
|
|
6558
|
+
fontSize: '13px',
|
|
6559
|
+
display: 'flex',
|
|
6560
|
+
flexDirection: 'row',
|
|
6561
|
+
alignItems: 'center',
|
|
6562
|
+
}, children: [jsxRuntimeExports.jsx(FAIcon, { icon: faHand, "$reverse": handedness === 'left', style: { marginRight: '5px' } }), "Hand\u00A0", jsxRuntimeExports.jsxs("span", { style: { fontWeight: 'bold' }, children: ["[", handedness === 'left' ? 'L' : 'R', "]"] })] }), jsxRuntimeExports.jsx("div", { style: {
|
|
6563
|
+
display: 'flex',
|
|
6564
|
+
flexDirection: 'row',
|
|
6565
|
+
gap: '1px',
|
|
6566
|
+
}, children: connected ? (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(PanelHeaderButton, { title: `Click to ${settingsOpen ? 'close' : 'change'} key bindings`, onClick: () => {
|
|
6567
|
+
setSettingsOpen(!settingsOpen);
|
|
6568
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: faGear }) }), jsxRuntimeExports.jsx(PanelHeaderButton, { title: `Click to disconnect ${handedness} controller`, "$isRed": true, onClick: () => {
|
|
6569
|
+
hand.connected = false;
|
|
6570
|
+
setConnected(false);
|
|
6571
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: faCircleXmark }) })] })) : (jsxRuntimeExports.jsx(PanelHeaderButton, { title: `Click to reconnect ${handedness} controller`, onClick: () => {
|
|
6572
|
+
hand.connected = true;
|
|
6573
|
+
setConnected(true);
|
|
6574
|
+
}, style: { marginLeft: '5px' }, children: jsxRuntimeExports.jsx(FAIcon, { icon: faPlug }) })) })] }) })), connected && !pointerLocked && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [!settingsOpen && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(SectionBreak, {}), jsxRuntimeExports.jsx(Vector3Input, { vector: handle.position, label: "Position", marginBottom: ControlButtonStyles.gap }), jsxRuntimeExports.jsx(Vector3Input, { vector: handle.rotation, label: "Rotation" })] })), jsxRuntimeExports.jsx(SectionBreak, {})] })), connected &&
|
|
6575
|
+
(settingsOpen ? (jsxRuntimeExports.jsx(ControlsMapper, { handedness: handedness, actions: ['pose', 'pinch'] })) : (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(PoseSelector, { hand: hand, pointerLocked: pointerLocked, mappedKey: keyMap[handedness].pose }), jsxRuntimeExports.jsx(PinchControl, { hand: hand, pointerLocked: pointerLocked, mappedKey: keyMap[handedness].pinch })] })))] }, handedness));
|
|
6576
|
+
};
|
|
6577
|
+
|
|
6578
|
+
const useInputModeStore = create((set) => ({
|
|
6579
|
+
inputMode: 'controller',
|
|
6580
|
+
setInputMode: (mode) => set(() => ({
|
|
6581
|
+
inputMode: mode,
|
|
6582
|
+
})),
|
|
6583
|
+
}));
|
|
6584
|
+
const ControlsUI = ({ xrDevice, inputLayer, pointerLocked, }) => {
|
|
6585
|
+
const { inputMode } = useInputModeStore();
|
|
6586
|
+
return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: inputMode === 'controller'
|
|
6587
|
+
? Object.entries(xrDevice.controllers).map(([handedness, controller]) => (jsxRuntimeExports.jsx(ControllerUI, { controller: controller, handle: inputLayer.transformHandles.get(handedness), handedness: handedness, pointerLocked: pointerLocked }, `controller-${handedness}`)))
|
|
6588
|
+
: Object.entries(xrDevice.hands).map(([handedness, hand]) => (jsxRuntimeExports.jsx(HandUI, { hand: hand, handle: inputLayer.transformHandles.get(handedness), handedness: handedness, pointerLocked: pointerLocked }, `hand-${handedness}`))) }));
|
|
6589
|
+
};
|
|
6590
|
+
|
|
6340
6591
|
const VersionTableCol1 = dt.td `
|
|
6341
6592
|
text-align: right;
|
|
6342
6593
|
color: ${Colors.textWhite};
|
|
@@ -6348,12 +6599,32 @@ const VersionTableCol2 = dt.td `
|
|
|
6348
6599
|
color: ${Colors.textGrey};
|
|
6349
6600
|
padding: 0;
|
|
6350
6601
|
`;
|
|
6602
|
+
const envNames = [
|
|
6603
|
+
'meeting_room',
|
|
6604
|
+
'living_room',
|
|
6605
|
+
'music_room',
|
|
6606
|
+
'office_large',
|
|
6607
|
+
'office_small',
|
|
6608
|
+
];
|
|
6609
|
+
const useHeaderStateStore = create((set) => ({
|
|
6610
|
+
infoPanelOpen: false,
|
|
6611
|
+
envDropDownOpen: false,
|
|
6612
|
+
setInfoPanelOpen: (open) => set(() => ({ infoPanelOpen: open })),
|
|
6613
|
+
setEnvDropDownOpen: (open) => set(() => ({ envDropDownOpen: open })),
|
|
6614
|
+
}));
|
|
6615
|
+
function underscoreToTitleCase(str) {
|
|
6616
|
+
return str
|
|
6617
|
+
.split('_')
|
|
6618
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
6619
|
+
.join(' ');
|
|
6620
|
+
}
|
|
6351
6621
|
const HeaderUI = ({ xrDevice, inputLayer }) => {
|
|
6352
6622
|
var _a, _b, _c;
|
|
6353
6623
|
const [planesVisible, setPlanesVisible] = React.useState(Boolean((_a = xrDevice.sem) === null || _a === void 0 ? void 0 : _a.planesVisible));
|
|
6354
6624
|
const [boxesVisible, setBoxesVisible] = React.useState(Boolean((_b = xrDevice.sem) === null || _b === void 0 ? void 0 : _b.boundingBoxesVisible));
|
|
6355
6625
|
const [meshesVisible, setMeshesVisible] = React.useState(Boolean((_c = xrDevice.sem) === null || _c === void 0 ? void 0 : _c.meshesVisible));
|
|
6356
|
-
const
|
|
6626
|
+
const { inputMode, setInputMode } = useInputModeStore();
|
|
6627
|
+
const { infoPanelOpen, setInfoPanelOpen, envDropDownOpen, setEnvDropDownOpen, } = useHeaderStateStore();
|
|
6357
6628
|
return (jsxRuntimeExports.jsxs("div", { style: {
|
|
6358
6629
|
display: 'flex',
|
|
6359
6630
|
justifyContent: 'center',
|
|
@@ -6369,7 +6640,18 @@ const HeaderUI = ({ xrDevice, inputLayer }) => {
|
|
|
6369
6640
|
inputLayer.resetDeviceTransforms();
|
|
6370
6641
|
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: faRotateLeft, "$size": 16 }) }), jsxRuntimeExports.jsx(HeaderButton, { title: "Click to activate play mode", onClick: () => {
|
|
6371
6642
|
inputLayer.lockPointer();
|
|
6372
|
-
|
|
6643
|
+
setEnvDropDownOpen(false);
|
|
6644
|
+
setInfoPanelOpen(false);
|
|
6645
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: faCirclePlay, "$size": 16 }) }), jsxRuntimeExports.jsx(HeaderButton, { title: "Click to toggle input mode", onClick: () => {
|
|
6646
|
+
if (inputMode === 'controller') {
|
|
6647
|
+
setInputMode('hand');
|
|
6648
|
+
xrDevice.primaryInputMode = 'hand';
|
|
6649
|
+
}
|
|
6650
|
+
else {
|
|
6651
|
+
setInputMode('controller');
|
|
6652
|
+
xrDevice.primaryInputMode = 'controller';
|
|
6653
|
+
}
|
|
6654
|
+
}, children: jsxRuntimeExports.jsx(FAIcon, { icon: inputMode === 'controller' ? faGamepad : faHand, "$size": 16 }) }), xrDevice.sem && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(SectionBreak, { "$horizontal": false }), jsxRuntimeExports.jsx(HeaderButton, { title: "Click to select/change emulated environment", onClick: () => setEnvDropDownOpen(!envDropDownOpen), children: jsxRuntimeExports.jsx(FAIcon, { icon: faPersonShelter, "$size": 16 }) }), jsxRuntimeExports.jsx(HeaderButton, { title: "Click to toggle visibility of planes", onClick: () => {
|
|
6373
6655
|
xrDevice.sem.planesVisible = !planesVisible;
|
|
6374
6656
|
setPlanesVisible(!planesVisible);
|
|
6375
6657
|
}, children: jsxRuntimeExports.jsx(PlaneIcon, { size: 16, color: planesVisible ? Colors.textWhite : Colors.textGrey }) }), jsxRuntimeExports.jsx(HeaderButton, { title: "Click to toggle visibility of bounding boxes", onClick: () => {
|
|
@@ -6412,7 +6694,18 @@ const HeaderUI = ({ xrDevice, inputLayer }) => {
|
|
|
6412
6694
|
borderRadius: ControlButtonStyles.radiusSolo,
|
|
6413
6695
|
}, onClick: () => {
|
|
6414
6696
|
window.open('https://github.com/meta-quest/immersive-web-emulation-runtime', '_blank');
|
|
6415
|
-
}, children: "View Source on GitHub" })] }))
|
|
6697
|
+
}, children: "View Source on GitHub" })] })), envDropDownOpen && (jsxRuntimeExports.jsx(ControlPanel, { style: {
|
|
6698
|
+
position: 'absolute',
|
|
6699
|
+
top: '40px',
|
|
6700
|
+
}, children: envNames.map((name) => (jsxRuntimeExports.jsx("div", { children: jsxRuntimeExports.jsx(HeaderButton, { style: {
|
|
6701
|
+
fontSize: '12px',
|
|
6702
|
+
width: '100%',
|
|
6703
|
+
justifyContent: 'start',
|
|
6704
|
+
borderRadius: '8px',
|
|
6705
|
+
}, onClick: () => {
|
|
6706
|
+
// @ts-ignore
|
|
6707
|
+
xrDevice.sem.loadDefaultEnvironment(name);
|
|
6708
|
+
}, children: underscoreToTitleCase(name) }) }, name))) }))] }));
|
|
6416
6709
|
};
|
|
6417
6710
|
|
|
6418
6711
|
const HeadsetOptionContainer = dt.div `
|
|
@@ -42184,7 +42477,6 @@ class InputLayer {
|
|
|
42184
42477
|
transformHandle.space = 'local';
|
|
42185
42478
|
this.transformHandles.set(handedness, transformHandle);
|
|
42186
42479
|
transformHandle.addEventListener('click', () => {
|
|
42187
|
-
console.log('click');
|
|
42188
42480
|
if (transformHandle.userData.mode === 'translate') {
|
|
42189
42481
|
transformHandle.userData.setMode('rotate');
|
|
42190
42482
|
}
|
|
@@ -42292,8 +42584,11 @@ class InputLayer {
|
|
|
42292
42584
|
xrDevice.position.copy(cameraRig.getWorldPosition(this.vec3));
|
|
42293
42585
|
xrDevice.quaternion.copy(cameraRig.getWorldQuaternion(this.quat));
|
|
42294
42586
|
transformHandles.forEach((transformHandle, handedness) => {
|
|
42295
|
-
xrDevice.
|
|
42296
|
-
|
|
42587
|
+
const emulatedInput = xrDevice.primaryInputMode === 'controller'
|
|
42588
|
+
? xrDevice.controllers[handedness]
|
|
42589
|
+
: xrDevice.hands[handedness];
|
|
42590
|
+
emulatedInput.position.copy(transformHandle.getWorldPosition(this.vec3));
|
|
42591
|
+
emulatedInput.quaternion.copy(transformHandle.getWorldQuaternion(this.quat));
|
|
42297
42592
|
});
|
|
42298
42593
|
}
|
|
42299
42594
|
renderScene(time) {
|
|
@@ -42355,7 +42650,7 @@ class InputLayer {
|
|
|
42355
42650
|
}
|
|
42356
42651
|
}
|
|
42357
42652
|
|
|
42358
|
-
const VERSION = "1.
|
|
42653
|
+
const VERSION = "1.1.1";
|
|
42359
42654
|
|
|
42360
42655
|
var client = {};
|
|
42361
42656
|
|
|
@@ -42789,6 +43084,7 @@ class DevUI {
|
|
|
42789
43084
|
constructor(xrDevice) {
|
|
42790
43085
|
this.version = VERSION;
|
|
42791
43086
|
xrDevice.ipd = 0;
|
|
43087
|
+
useInputModeStore.getState().setInputMode(xrDevice.primaryInputMode);
|
|
42792
43088
|
this.devUIContainer = document.createElement('div');
|
|
42793
43089
|
this.devUIContainer.style.position = 'fixed';
|
|
42794
43090
|
this.devUIContainer.style.width = '100vw';
|