diff --git a/docs/hardware/interface-compatibilities.mdx b/docs/hardware/interface-compatibilities.mdx
new file mode 100644
index 00000000..a0d1f28b
--- /dev/null
+++ b/docs/hardware/interface-compatibilities.mdx
@@ -0,0 +1,158 @@
+---
+sidebar_position: 1
+description: Overview of what interfaces can track what in VRCFaceTracking.
+---
+
+import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx'
+import FilterTable from '@site/src/components/FilterTable.tsx';
+
+# Tracking Compatibility
+
+***
+
+:::note How to read this page
+
+This page goes over generalized functions, features, and
+tracking quality of each interface, and what they can do in
+VRCFaceTracking. For more specific information about the listed
+interfaces please refer to their dedicated sections.
+
+Various aspects of the interfaces are given a rank from 1-10, indicating
+their quality or effectiveness. The rankings are given by ranking devices
+relative to each other based on criteria such as expressibility and
+tracking quality.
+
+**Expressibility**: The range of motions/expressions that can be tracked. The higher
+the expressibility, the more face details the interface reports tracked values for.
+
+**Tracking Quality**: How well the interface tracks its reported range of motions.
+The higher the tracking quality, the better control most users will have over the
+range of motions/expressions supported by the interface.
+
+:::
+
+Widen Squeeze Brow(Emulated)>,
+ '~',
+ <>Widen(Emulated) Squeeze(Emulated) >,
+ <>Widen Squint Brow>,
+ <>Widen Squint Brow>,
+ '❌',
+ '❌',
+ <>Widen Squint Brow>,
+ '❌',
+ '❌',
+ <>Widen Squeeze Brow(Emulated)>,
+ `~`,
+ '~'
+ ],
+ [
+ 'Upper Face Expressibility',
+ '5/10',
+ '~',
+ 'N/A',
+ '9/10',
+ '8/10',
+ '❌',
+ '❌',
+ '9/10',
+ '❌',
+ '❌',
+ '5/10',
+ '~',
+ '~'
+ ],
+ [
+ 'Upper Face Tracking Quality',
+ '8/10',
+ '~',
+ 'N/A',
+ '7/10',
+ '4/10',
+ '❌',
+ '❌',
+ '8/10',
+ '❌',
+ '❌',
+ '7/10',
+ '~',
+ '~'
+ ],
+ [
+ 'Lower Face Expression Support',
+ '~',
+ <>Jaw Lip Mouth Cheek>,
+ '~',
+ <>Jaw Lip Mouth Cheek Nose>,
+ <>Jaw Lip Mouth Cheek Nose>,
+ '~',
+ '~',
+ <>Jaw Lip Mouth Cheek Nose>,
+ <>Jaw Lip Mouth Cheek Nose>,
+ '~',
+ '~',
+ <>Jaw Lip Mouth Cheek Nose>,
+ '~'
+ ],
+ [
+ 'Lower Face Expressibility',
+ '~',
+ '7/10',
+ '~',
+ '8/10',
+ '7/10',
+ '~',
+ '~',
+ '8/10',
+ '9/10',
+ '~',
+ '~',
+ '7/10',
+ '~'
+ ],
+ [
+ 'Face Tracking Quality',
+ '~',
+ '8/10',
+ '~',
+ '7/10',
+ '4/10',
+ '~',
+ '~',
+ '8/10',
+ '8/10',
+ '~',
+ '~',
+ '7/10',
+ '~'
+ ],
+ ['Tongue Expression Support', '~', 'Tongue Out & Directions', '~', '❌', 'Tongue Out', '~', '~', 'Tongue Out', 'All Tongue Expressions', '~', '~', 'Tongue Out & Directions', '~'],
+ ]}
+/>
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx
index 485d1b11..86eeed03 100644
--- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx
@@ -1,386 +1,264 @@
import ContextModal from '@site/src/components/ContextModal.tsx'
import '@site/src/css/unified-tables.css'
+import FilterTable from '@site/src/components/FilterTable.tsx'
-
-
-
- Blended Eye Expressions
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- EyeClosed
- Closes both eye lids.
- EyeClosedRight EyeClosedRight
-
-
-
- EyeWide
- Widens both eye lids.
- EyeWidenRight EyeWidenLeft
-
-
-
- EyeSquint
- Squints both eye lids.
- EyeSquintRight EyeSquintLeft
-
- {/*
-
-
-
-
- */}
-
-
- EyeDilation
- Dilates both pupils.
- EyeDilationRight EyeDilationLeft
-
-
-
- EyeConstrict
- Constricts both pupils.
- EyeConstrictRight EyeConstrictLeft
-
-
-
-
-
-
-
- Blended Brows
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- BrowDownRight
- Pulls the right eyebrow down and in.
- BrowLowererRight BrowPinchRight
-
-
-
- BrowDownLeft
- Pulls the left eyebrow down and in.
- BrowLowererLeft BrowPinchLeft
-
-
-
- BrowDown
- Pulls the left eyebrow down and in.
- BrowLowererRight BrowLowererLeft BrowPinchRight BrowPinchLeft
-
-
-
- BrowUpRight
- Right brow appears worried.
- BrowInnerUpRight BrowOuterUpRight
-
-
-
- BrowUpLeft
- Left brow appears worried.
- BrowInnerUpLeft BrowOuterUpLeft
-
-
-
- BrowUp
- Brows appears worried.
- BrowInnerUpRight BrowInnerUpLeft BrowOuterUpRight BrowOuterUpLeft
-
-
-
-
-
-
-
- Blended Nose
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- NoseSneer
- Entire face sneers.
- NoseSneerRight NoseSneerLeft
-
-
-
- NasalDilation
- Both nose canals dilate.
- NasalDilationRight NasalDilationLeft
-
-
-
- NasalConstrict
- Both nose canals constrict.
- NasalConstrictRight NasalConstrictLeft
-
-
-
-
-
-
- Blended Cheeks
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- CheekPuff
- Puffs both cheeks.
- CheekPuffRight CheekPuffLeft
-
-
-
- CheekSuck
- Sucks both cheeks.
- CheekSuckRight CheekSuckLeft
-
-
-
- CheekSquint
- Raises both cheeks.
- CheekSquintRight CheekSquintLeft
-
-
-
-
-
-
- Blended Lips
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- LipSuckUpper
- Tucks in the upper lips.
- LipSuckUpperRight LipSuckUpperLeft
-
-
-
- LipSuckLower
- Tucks in the lower lips.
- LipSuckLowerRight LipSuckLowerLeft
-
-
-
- LipSuck
- Tucks in the upper and lower lips.
- LipSuckUpperRight LipSuckUpperLeft LipSuckLowerRight LipSuckLowerLeft
-
- {/*
-
-
-
-
- */}
-
-
- LipFunnelUpper
- Funnels in the upper lips.
- LipFunnelUpperRight LipFunnelUpperLeft
-
-
-
- LipFunnelLower
- Funnels in the lower lips.
- LipFunnelLowerRight LipFunnelLowerLeft
-
-
-
- LipFunnel
- Funnels in the upper and lower lips.
- LipFunnelUpperRight LipFunnelUpperLeft LipFunnelLowerRight LipFunnelLowerLeft
-
- {/*
-
-
-
-
- */}
-
-
- LipPuckerUpper
- Upper lip part pushes outward.
- LipPuckerUpperRight LipPuckerUpperLeft
-
-
-
- LipPuckerLower
- Lower lip part pushes outward.
- LipPuckerLowerRight LipPuckerLowerLeft
-
-
-
- LipPucker
- Lips push outward.
- LipPuckerUpperRight LipPuckerUpperLeft LipPuckerLowerRight LipPuckerLowerLeft
-
-
-
-
-
-
- Blended Mouth
-
-
- Reference
- Name
- Function
- Basis
-
-
-
-
-
- MouthUpperUp
- Raises the upper lips.
- MouthUpperUpRight MouthUpperUpLeft
-
-
-
- MouthLowerDown
- Lowers the lower lips.
- MouthLowerDownRight MouthLowerDownLeft
-
-
-
- MouthOpen
- Mouth opens, revealing teeth.
- MouthUpperUpRight MouthUpperUpLeft MouthLowerDownRight MouthLowerDownLeft
-
- {/*
-
-
-
-
- */}
-
-
- MouthRight
- Moves mouth right.
- MouthUpperRight MouthLowerRight
-
-
-
- MouthLeft
- Moves mouth left.
- MouthUpperLeft MouthLowerLeft
-
- {/*
-
-
-
-
- */}
-
-
- MouthSmileRight
- Right side mouth expresses a smile.
- MouthCornerPullRight MouthCornerSlantRight
-
-
-
- MouthSmileLeft
- Left side mouth expresses a smile.
- MouthCornerPullLeft MouthCornerSlantLeft
-
-
-
- MouthSmile
- Mouth expresses a smile.
- MouthCornerPullRight MouthCornerPullLeft MouthCornerSlantRight MouthCornerSlantLeft
-
- {/*
-
-
-
-
- */}
-
-
- MouthSadRight
- Left side mouth expresses sadness.
- MouthFrownRight MouthStretchRight
-
-
-
- MouthSadLeft
- Right side mouth expresses sadness.
- MouthFrownLeft MouthStretchLeft
-
-
-
- MouthSad
- Mouth expresses sadness.
- MouthFrownRight MouthFrownLeft MouthStretchRight MouthStretchLeft
-
- {/*
-
-
-
-
- */}
-
-
- MouthStretch
- Mouth stretches.
- MouthStretchRight MouthStretchLeft
-
-
-
- MouthDimple
- Lip corner dimples
- MouthDimpleRight MouthDimpleLeft
-
-
-
- MouthTightener
- Mouth tightens.
- MouthTightenerRight MouthTightenerLeft
-
-
-
- MouthPress
- Mouth presses together.
- MouthPressRight MouthPressLeft
-
-
-
+ ,
+ 'EyeClosed',
+ Closes both eye lids. ,
+ <>EyeClosedRight EyeClosedRight>
+ ],
+ [
+ ,
+ 'EyeWide',
+ Widens both eye lids. ,
+ <>EyeWidenRight EyeWidenLeft>
+ ],
+ [
+ ,
+ 'EyeSquint',
+ Squints both eye lids. ,
+ <>EyeSquintRight EyeSquintLeft>
+ ],
+ [
+ ,
+ 'EyeDilation',
+ Dilates both pupils. ,
+ <>EyeDilationRight EyeDilationLeft>
+ ],
+ [
+ ,
+ 'EyeConstrict',
+ Constricts both pupils. ,
+ <>EyeConstrictRight EyeConstrictLeft>
+ ],
+ [
+ ,
+ 'BrowDownRight',
+ Pulls the right eyebrow down and in. ,
+ <>BrowLowererRight BrowPinchRight>
+ ],
+ [
+ ,
+ 'BrowDownLeft',
+ Pulls the left eyebrow down and in. ,
+ <>BrowLowererLeft BrowPinchLeft>
+ ],
+ [
+ ,
+ 'BrowDown',
+ Pulls the left eyebrow down and in. ,
+ <>BrowLowererRight BrowLowererLeft BrowPinchRight BrowPinchLeft>
+ ],
+ [
+ ,
+ 'BrowUpRight',
+ Right brow appears worried. ,
+ <>BrowInnerUpRight BrowOuterUpRight>
+ ],
+ [
+ ,
+ 'BrowUpLeft',
+ Left brow appears worried. ,
+ <>BrowInnerUpLeft BrowOuterUpLeft>
+ ],
+ [
+ ,
+ 'BrowUp',
+ Brows appear worried. ,
+ <>BrowInnerUpRight BrowInnerUpLeft BrowOuterUpRight BrowOuterUpLeft>
+ ],
+ [
+ ,
+ 'NoseSneer',
+ Entire face sneers. ,
+ <>NoseSneerRight NoseSneerLeft>
+ ],
+ [
+ ,
+ 'NasalDilation',
+ Both nose canals dilate. ,
+ <>NasalDilationRight NasalDilationLeft>
+ ],
+ [
+ ,
+ 'NasalConstrict',
+ Both nose canals constrict. ,
+ <>NasalConstrictRight NasalConstrictLeft>
+ ],
+ [
+ ,
+ 'CheekPuff',
+ Puffs both cheeks. ,
+ <>CheekPuffRight CheekPuffLeft>
+ ],
+ [
+ ,
+ 'CheekSuck',
+ Sucks both cheeks. ,
+ <>CheekSuckRight CheekSuckLeft>
+ ],
+ [
+ ,
+ 'CheekSquint',
+ Raises both cheeks. ,
+ <>CheekSquintRight CheekSquintLeft>
+ ],
+ [
+ ,
+ 'LipSuckUpper',
+ Tucks in the upper lips. ,
+ <>LipSuckUpperRight LipSuckUpperLeft>
+ ],
+ [
+ ,
+ 'LipSuckLower',
+ Tucks in the lower lips. ,
+ <>LipSuckLowerRight LipSuckLowerLeft>
+ ],
+ [
+ ,
+ 'LipSuck',
+ Tucks in the upper and lower lips. ,
+ <>LipSuckUpperRight LipSuckUpperLeft LipSuckLowerRight LipSuckLowerLeft>
+ ],
+ [
+ ,
+ 'LipFunnelUpper',
+ Funnels in the upper lips. ,
+ <>LipFunnelUpperRight LipFunnelUpperLeft>
+ ],
+ [
+ ,
+ 'LipFunnelLower',
+ Funnels in the lower lips. ,
+ <>LipFunnelLowerRight LipFunnelLowerLeft>
+ ],
+ [
+ ,
+ 'LipFunnel',
+ Funnels in the upper and lower lips. ,
+ <>LipFunnelUpperRight LipFunnelUpperLeft LipFunnelLowerRight LipFunnelLowerLeft>
+ ],
+ [
+ ,
+ 'LipPuckerUpper',
+ Upper lip part pushes outward. ,
+ <>LipPuckerUpperRight LipPuckerUpperLeft>
+ ],
+ [
+ ,
+ 'LipPuckerLower',
+ Lower lip part pushes outward. ,
+ <>LipPuckerLowerRight LipPuckerLowerLeft>
+ ],
+ [
+ ,
+ 'LipPucker',
+ Lips push outward. ,
+ <>LipPuckerUpperRight LipPuckerUpperLeft LipPuckerLowerRight LipPuckerLowerLeft>
+ ],
+ [
+ ,
+ 'MouthUpperUp',
+ Raises the upper lips. ,
+ <>MouthUpperUpRight MouthUpperUpLeft>
+ ],
+ [
+ ,
+ 'MouthLowerDown',
+ Lowers the lower lips. ,
+ <>MouthLowerDownRight MouthLowerDownLeft>
+ ],
+ [
+ ,
+ 'MouthOpen',
+ 'Mouth opens, revealing teeth.',
+ <>MouthUpperUpRight MouthUpperUpLeft MouthLowerDownRight MouthLowerDownLeft>
+ ],
+ [
+ ,
+ 'MouthRight',
+ 'Moves mouth right.',
+ <>MouthUpperRight MouthLowerRight>
+ ],
+ [
+ ,
+ 'MouthLeft',
+ Moves mouth left. ,
+ <>MouthUpperLeft MouthLowerLeft>
+ ],
+ [
+ ,
+ 'MouthSmileRight',
+ 'Right side mouth expresses a smile.',
+ <>MouthCornerPullRight MouthCornerSlantRight>
+ ],
+ [
+ ,
+ 'MouthSmileLeft',
+ 'Left side mouth expresses a smile.',
+ <>MouthCornerPullLeft MouthCornerSlantLeft>
+ ],
+ [
+ ,
+ 'MouthSmile',
+ 'Mouth expresses a smile.',
+ <>MouthCornerPullRight MouthCornerPullLeft MouthCornerSlantRight MouthCornerSlantLeft>
+ ],
+ [
+ ,
+ 'MouthSadRight',
+ 'Left side mouth expresses sadness.',
+ <>MouthFrownRight MouthStretchRight>
+ ],
+ [
+ ,
+ 'MouthSadLeft',
+ 'Right side mouth expresses sadness.',
+ <>MouthFrownLeft MouthStretchLeft>
+ ],
+ [
+ ,
+ 'MouthSad',
+ 'Mouth expresses sadness.',
+ <>MouthFrownRight MouthFrownLeft MouthStretchRight MouthStretchLeft>
+ ],
+ [
+ ,
+ 'MouthStretch',
+ Mouth stretches. ,
+ <>MouthStretchRight MouthStretchLeft>
+ ],
+ [
+ ,
+ 'MouthDimple',
+ Lip corner dimples ,
+ <>MouthDimpleRight MouthDimpleLeft>
+ ],
+ [
+ ,
+ 'MouthTightener',
+ Mouth tightens. ,
+ <>MouthTightenerRight MouthTightenerLeft>
+ ],
+ [
+ ,
+ 'MouthPress',
+ Mouth presses together. ,
+ <>MouthPressRight MouthPressLeft>
+ ]
+ ]}
+/>
import OneExplain from './unified-explanations/super-scripts/_1_explain.mdx'
import TwoExplain from './unified-explanations/super-scripts/_2_explain.mdx'
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx
index c4f7605c..58800024 100644
--- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx
@@ -1,5 +1,6 @@
-import ContextModal from '@site/src/components/ContextModal.tsx'
-import '@site/src/css/unified-tables.css'
+import ContextModal from '@site/src/components/ContextModal.tsx';
+import FilterTable from '@site/src/components/FilterTable.tsx';
+import '@site/src/css/unified-tables.css';
@@ -9,7 +10,7 @@ import '@site/src/css/unified-tables.css'
-
+
Basis
@@ -17,720 +18,526 @@ import '@site/src/css/unified-tables.css'
-
-
-
- Eye Gaze
-
-
- Reference
- Name
- Function
-
-
-
-
-
- EyeLookOutRight
- Right eye looks out.
-
-
-
- EyeLookInRight
- Right eye looks in.
-
-
-
- EyeLookUpRight
- Right eye looks up.
-
-
-
- EyeLookDownRight
- Right eye looks down.
-
-
-
- EyeLookOutLeft
- Left eye looks out.
-
-
-
- EyeLookInLeft
- Left eye looks in.
-
-
-
- EyeLookUpLeft
- Left eye looks up.
-
-
-
- EyeLookDownLeft
- Left eye looks down.
-
-
-
-
-
-
-
- Eye Expressions
-
-
- Reference
- Name
- Function
-
-
-
-
-
- EyeClosedRight
- Closes the right eyelid.
-
-
-
- EyeClosedLeft
- Closes the left eyelid.
-
-
-
- EyeSquintRight
- Squeezes the right eye socket muscles.
-
-
-
- EyeSquintLeft
- Squeezes the left eye socket muscles.
-
-
-
- EyeWideRight
- Right eyelid widens beyond relaxed.
-
-
-
- EyeWideLeft
- Left eyelid widens beyond relaxed.
-
-
-
- EyeDilationRight
- Dilates the right eye pupil
-
-
-
- EyeDilationLeft
- Dilates the left eye pupil
-
-
-
- EyeConstrictRight
- Constricts the right eye pupil
-
-
-
- EyeConstrictLeft
- Constricts the left eye pupil
-
-
-
-
-
-
-
- Brows
-
-
- Reference
- Name
- Function
-
-
-
-
-
- BrowPinchRight
- Right eyebrow pinches in.
-
-
-
- BrowPinchLeft
- Left eyebrow pinches in.
-
-
-
- BrowLowererRight
- Outer right eyebrow pulls down.
-
-
-
- BrowLowererLeft
- Outer Left eyebrow pulls down.
-
- {/*
-
-
-
- */}
-
-
- BrowInnerUpRight
- Inner right eyebrow pulls up.
-
-
-
- BrowInnerUpLeft
- Inner left eyebrow pulls up.
-
-
-
- BrowOuterUpRight
- Outer right eyebrow pulls up.
-
-
-
- BrowOuterUpLeft
- Outer left eyebrow pulls up.
-
-
-
-
-
-
-
- Nose
-
-
- Reference
- Name
- Function
-
-
-
-
-
- NoseSneerRight
- Right side face sneers.
-
-
-
- NoseSneerLeft
- Left side face sneers.
-
-
-
- NasalDilationRight1
- Right side nose canal dilates.
-
-
-
- NasalDilationLeft1
- Left side nose canal dilates.
-
-
-
- NasalConstrictRight1
- Right side nose canal constricts.
-
-
-
- NasalConstrictLeft1
- Left side nose canal constricts.
-
-
-
-
-
-
-
- Cheeks
-
-
- Reference
- Name
- Function
-
-
-
-
-
- CheekSquintRight
- Raises the right side cheek.
-
-
-
- CheekSquintLeft
- Raises the left side cheek.
-
-
-
- CheekPuffRight
- Puffs the right side cheek.
-
-
-
- CheekPuffLeft
- Puffs the left side cheek.
-
-
-
- CheekSuckRight
- Sucks in the right side cheek.
-
-
-
- CheekSuckLeft
- Sucks in the left side cheek.
-
-
-
-
-
-
-
- Jaw
-
-
- Reference
- Name
- Function
-
-
-
-
-
- JawOpen
- Opens jawbone.
-
-
-
- MouthClosed
- Closes mouth (in relation to JawOpen).
-
-
-
- JawRight
- Pushes jawbone right.
-
-
-
- JawLeft
- Pushes jawbone left.
-
-
-
- JawForward
- Pushes jawbone forwards.
-
-
-
- JawBackward1
- Pulls jawbone backwards.
-
-
-
- JawClench1
- Flexes jaw muscles.
-
-
-
- JawMandibleRaise1
- Raises jawbone.
-
-
-
-
-
-
-
- Lips
-
-
- Reference
- Name
- Function
-
-
-
-
-
- LipSuckUpperRight
- Upper right lip part tucks in the mouth.
-
-
-
- LipSuckUpperLeft
- Upper left lip part tucks in the mouth.
-
-
-
- LipSuckLowerRight
- Lower right lip part tucks in the mouth.
-
-
-
- LipSuckLowerLeft
- Lower left lip part tucks in the mouth.
-
-
-
- LipSuckCornerRight1
- Right lip corner folds into the mouth.
-
-
-
- LipSuckCornerLeft1
- Left lip corner folds into the mouth.
-
-
-
- LipFunnelUpperRight
- Upper right lip part pushes into a funnel.
-
-
-
- LipFunnelUpperLeft
- Upper left lip part pushes into a funnel.
-
-
-
- LipFunnelLowerRight
- Lower right lip part pushes into a funnel.
-
-
-
- LipFunnelLowerLeft
- Lower left lip part pushes into a funnel.
-
- {/*
-
-
-
- */}
-
-
- LipPuckerUpperRight
- Upper right lip part pushes outward.
-
-
-
- LipPuckerUpperLeft
- Upper left lip part pushes outward.
-
-
-
- LipPuckerLowerRight
- Lower right lip part pushes outward.
-
-
-
- LipPuckerLowerLeft
- Lower left lip part pushes outward.
-
-
-
-
-
-
-
- Mouth
-
-
- Reference
- Name
- Function
-
-
-
-
-
- MouthUpperUpRight
- Upper right part of the lip pulls up.
-
-
-
- MouthUpperUpLeft
- Upper left part of the lip pulls up.
-
-
-
- MouthLowerDownRight
- Lower right part of the lip pulls up.
-
-
-
- MouthLowerDownLeft
- Lower right part of the lip pulls up.
-
- {/*
-
-
-
- */}
-
-
- MouthUpperDeepenRight
- Upper right lip part pushes in the cheek.
-
-
-
- MouthUpperDeepenLeft
- Upper left lip part pushes in the cheek.
-
- {/*
-
-
-
- */}
-
-
- MouthUpperRight
- Moves upper lip right.
-
-
-
- MouthUpperLeft
- Moves upper lip left.
-
-
-
- MouthLowerRight
- Moves lower lip right.
-
-
-
- MouthLowerLeft
- Moves lower lip left.
-
- {/*
-
-
-
- */}
-
-
- MouthCornerPullRight
- Right lip corner pulls diagonally up and out.
-
-
-
- MouthCornerPullLeft
- Left lip corner pulls diagonally up and out.
-
-
-
- MouthCornerSlantRight
- Right corner lip slants up.
-
-
-
- MouthCornerSlantLeft
- Left corner lip slants up.
-
- {/*
-
-
-
- */}
-
-
- MouthFrownRight
- Right corner lip pulls down.
-
-
-
- MouthFrownLeft
- Left corner lip pulls down.
-
-
-
- MouthStretchRight
- Right corner lip pulls out and down.
-
-
-
- MouthStretchLeft
- Left corner lip pulls out and down.
-
- {/*
-
-
-
- */}
-
-
- MouthDimpleRight
- Right lip corner is pushed backwards.
-
-
-
- MouthDimpleLeft
- Left lip corner is pulled backwards.
-
-
-
- MouthRaiserUpper
- Raises and slightly pushes out the upper mouth.
-
-
-
- MouthRaiserLower
- Raises and slightly pushes out the lower mouth.
-
- {/*
-
-
-
- */}
-
-
- MouthPressRight
- Right side lips press and flatten together vertically.
-
-
-
- MouthPressLeft
- Left side lips press and flatten together vertically.
-
-
-
- MouthTightenerRight
- Right side lips squeeze together horizontally.
-
-
-
- MouthTightenerLeft
- Left side lips squeeze together horizontally.
-
-
-
-
-
-
-
- Tongue
-
-
- Reference
- Name
- Function
-
-
-
-
-
- TongueOut
- Tongue visibly sticks out of the mouth.
-
- {/*
-
-
-
- */}
-
-
- TongueUp
- Tongue points up.
-
-
-
- TongueDown
- Tongue points down.
-
-
-
- TongueRight
- Tongue points right.
-
-
-
- TongueLeft
- Tongue points left.
-
- {/*
-
-
-
- */}
-
-
- TongueRoll
- Sides of the tongue funnel, creating a 'hotdog' shape.
-
-
-
- TongueBendDown1
- Tongue arches up then down inside the mouth.
-
-
-
- TongueCurlUp1
- Tongue arches down then up inside the mouth.
-
-
-
- TongueSquish1
- Tongue squishes together and thickens.
-
-
-
- TongueFlat1
- Tongue flattens and thins out.
-
- {/*
-
-
-
- */}
-
-
- TongueTwistRight1
- Tongue tip rotates clockwise, with the rest following gradually.
-
-
-
- TongueTwistLeft1
- Tongue tip rotates counter-clockwise, with the rest following gradually.
-
-
-
-
-
-
-
- Neck
-
-
- Reference
- Name
- Function
-
-
-
-
-
- SoftPalateClose1
- Inner mouth throat closes.
-
-
-
- ThroatSwallow1
- The Adam's apple visibly swallows.
-
-
-
- NeckFlexRight1
- Right side neck visibly flexes.
-
-
-
- NeckFlexLeft1
- Left side neck visibly flexes.
-
-
-
+ ,
+ 'EyeLookOutRight',
+ Right eye looks out.
+ ],
+ [
+ ,
+ 'EyeLookInRight',
+ Right eye looks in.
+ ],
+ [
+ ,
+ 'EyeLookUpRight',
+ Right eye looks up.
+ ],
+ [
+ ,
+ 'EyeLookDownRight',
+ Right eye looks down.
+ ],
+ [
+ ,
+ 'EyeLookOutLeft',
+ Left eye looks out.
+ ],
+ [
+ ,
+ 'EyeLookInLeft',
+ Left eye looks in.
+ ],
+ [
+ ,
+ 'EyeLookUpLeft',
+ Left eye looks up.
+ ],
+ [
+ ,
+ 'EyeLookDownLeft',
+ Left eye looks down.
+ ],
+ [
+ ,
+ 'EyeClosedRight',
+ Closes the right eyelid.
+ ],
+ [
+ ,
+ 'EyeClosedLeft',
+ Closes the left eyelid.
+ ],
+ [
+ ,
+ 'EyeSquintRight',
+ Squeezes the right eye socket muscles.
+ ],
+ [
+ ,
+ 'EyeSquintLeft',
+ Squeezes the left eye socket muscles.
+ ],
+ [
+ ,
+ 'EyeWideRight',
+ Right eyelid widens beyond relaxed.
+ ],
+ [
+ ,
+ 'EyeWideLeft',
+ Left eyelid widens beyond relaxed.
+ ],
+ [
+ ,
+ 'EyeDilationRight',
+ Dilates the right eye pupil
+ ],
+ [
+ ,
+ 'EyeDilationLeft',
+ Dilates the left eye pupil
+ ],
+ [
+ ,
+ 'EyeConstrictRight',
+ Constricts the right eye pupil
+ ],
+ [
+ ,
+ 'EyeConstrictLeft',
+ Constricts the left eye pupil
+ ],
+ [
+ ,
+ 'BrowPinchRight',
+ Right eyebrow pinches in.
+ ],
+ [
+ ,
+ 'BrowPinchLeft',
+ Left eyebrow pinches in.
+ ],
+ [
+ ,
+ 'BrowLowererRight',
+ Outer right eyebrow pulls down.
+ ],
+ [
+ ,
+ 'BrowLowererLeft',
+ Outer Left eyebrow pulls down.
+ ],
+ [
+ ,
+ 'BrowInnerUpRight',
+ Inner right eyebrow pulls up.
+ ],
+ [
+ ,
+ 'BrowInnerUpLeft',
+ Inner left eyebrow pulls up.
+ ],
+ [
+ ,
+ 'BrowOuterUpRight',
+ Outer right eyebrow pulls up.
+ ],
+ [
+ ,
+ 'BrowOuterUpLeft',
+ Outer left eyebrow pulls up.
+ ],
+ [
+ ,
+ 'NoseSneerRight',
+ Right side face sneers.
+ ],
+ [
+ ,
+ 'NoseSneerLeft',
+ Left side face sneers.
+ ],
+ [
+ ,
+ 'NasalDilationRight',
+ Right side nose canal dilates.
+ ],
+ [
+ ,
+ 'NasalDilationLeft',
+ Left side nose canal dilates.
+ ],
+ [
+ ,
+ 'NasalConstrictRight',
+ Right side nose canal constricts.
+ ],
+ [
+ ,
+ 'NasalConstrictLeft',
+ Left side nose canal constricts.
+ ],
+ [
+ ,
+ 'CheekSquintRight',
+ Raises the right side cheek.
+ ],
+ [
+ ,
+ 'CheekSquintLeft',
+ Raises the left side cheek.
+ ],
+ [
+ ,
+ 'CheekPuffRight',
+ Puffs the right side cheek.
+ ],
+ [
+ ,
+ 'CheekPuffLeft',
+ Puffs the left side cheek.
+ ],
+ [
+ ,
+ 'CheekSuckRight',
+ Sucks in the right side cheek.
+ ],
+ [
+ ,
+ 'CheekSuckLeft',
+ Sucks in the left side cheek.
+ ],
+ [
+ ,
+ 'JawOpen',
+ Opens jawbone.
+ ],
+ [
+ ,
+ 'MouthClosed',
+ Closes mouth (in relation to JawOpen).
+ ],
+ [
+ ,
+ 'JawRight',
+ Pushes jawbone right.
+ ],
+ [
+ ,
+ 'JawLeft',
+ Pushes jawbone left.
+ ],
+ [
+ ,
+ 'JawForward',
+ Pushes jawbone forwards.
+ ],
+ [
+ ,
+ 'JawBackward',
+ Pulls jawbone backwards.
+ ],
+ [
+ ,
+ 'JawClench',
+ Flexes jaw muscles.
+ ],
+ [
+ ,
+ 'JawMandibleRaise',
+ Raises jawbone.
+ ],
+ [
+ ,
+ 'LipSuckUpperRight',
+ Upper right lip part tucks in the mouth.
+ ],
+ [
+ ,
+ 'LipSuckUpperLeft',
+ Upper left lip part tucks in the mouth.
+ ],
+ [
+ ,
+ 'LipSuckLowerRight',
+ Lower right lip part tucks in the mouth.
+ ],
+ [
+ ,
+ 'LipSuckLowerLeft',
+ Lower left lip part tucks in the mouth.
+ ],
+ [
+ ,
+ 'LipSuckCornerRight',
+ Right lip corner folds into the mouth.
+ ],
+ [
+ ,
+ 'LipSuckCornerLeft',
+ Left lip corner folds into the mouth.
+ ],
+ [
+ ,
+ 'LipFunnelUpperRight',
+ Upper right lip part pushes into a funnel.
+ ],
+ [
+ ,
+ 'LipFunnelUpperLeft',
+ Upper left lip part pushes into a funnel.
+ ],
+ [
+ ,
+ 'LipFunnelLowerRight',
+ Lower right lip part pushes into a funnel.
+ ],
+ [
+ ,
+ 'LipFunnelLowerLeft',
+ Lower left lip part pushes into a funnel.
+ ],
+ [
+ ,
+ 'LipPuckerUpperRight',
+ Upper right lip part pushes outward.
+ ],
+ [
+ ,
+ 'LipPuckerUpperLeft',
+ Upper left lip part pushes outward.
+ ],
+ [
+ ,
+ 'LipPuckerLowerRight',
+ Lower right lip part pushes outward.
+ ],
+ [
+ ,
+ 'LipPuckerLowerLeft',
+ Lower left lip part pushes outward.
+ ],
+ [
+ ,
+ 'MouthUpperUpRight',
+ Upper right part of the lip pulls up.
+ ],
+ [
+ ,
+ 'MouthUpperUpLeft',
+ Upper left part of the lip pulls up.
+ ],
+ [
+ ,
+ 'MouthLowerDownRight',
+ Lower right part of the lip pulls up.
+ ],
+ [
+ ,
+ 'MouthLowerDownLeft',
+ Lower left part of the lip pulls up.
+ ],
+ [
+ ,
+ 'MouthUpperDeepenRight',
+ Upper right lip part pushes in the cheek.
+ ],
+ [
+ ,
+ 'MouthUpperDeepenLeft',
+ Upper left lip part pushes in the cheek.
+ ],
+ [
+ ,
+ 'MouthUpperRight',
+ Moves upper lip right.
+ ],
+ [
+ ,
+ 'MouthUpperLeft',
+ Moves upper lip left.
+ ],
+ [
+ ,
+ 'MouthLowerRight',
+ Moves lower lip right.
+ ],
+ [
+ ,
+ 'MouthLowerLeft',
+ Moves lower lip left.
+ ],
+ [
+ ,
+ 'MouthCornerPullRight',
+ Right lip corner pulls diagonally up and out.
+ ],
+ [
+ ,
+ 'MouthCornerPullLeft',
+ Left lip corner pulls diagonally up and out.
+ ],
+ [
+ ,
+ 'MouthCornerSlantRight',
+ Right corner lip slants up.
+ ],
+ [
+ ,
+ 'MouthCornerSlantLeft',
+ Left corner lip slants up.
+ ],
+ [
+ ,
+ 'MouthFrownRight',
+ Right corner lip pulls down.
+ ],
+ [
+ ,
+ 'MouthFrownLeft',
+ Left corner lip pulls down.
+ ],
+ [
+ ,
+ 'MouthStretchRight',
+ Right corner lip pulls out and down.
+ ],
+ [
+ ,
+ 'MouthStretchLeft',
+ Left corner lip pulls out and down.
+ ],
+ [
+ ,
+ 'MouthDimpleRight',
+ Right lip corner is pushed backwards.
+ ],
+ [
+ ,
+ 'MouthDimpleLeft',
+ Left lip corner is pulled backwards.
+ ],
+ [
+ ,
+ 'MouthRaiserUpper',
+ Raises and slightly pushes out the upper mouth.
+ ],
+ [
+ ,
+ 'MouthRaiserLower',
+ Raises and slightly pushes out the lower mouth.
+ ],
+ [
+ ,
+ 'MouthPressRight',
+ Right side lips press and flatten together vertically.
+ ],
+ [
+ ,
+ 'MouthPressLeft',
+ Left side lips press and flatten together vertically.
+ ],
+ [
+ ,
+ 'MouthTightenerRight',
+ Right side lips squeeze together horizontally.
+ ],
+ [
+ ,
+ 'MouthTightenerLeft',
+ Left side lips squeeze together horizontally.
+ ],
+ [
+ ,
+ 'TongueOut',
+ Tongue visibly sticks out of the mouth.
+ ],
+ [
+ ,
+ 'TongueUp',
+ Tongue points up.
+ ],
+ [
+ ,
+ 'TongueDown',
+ Tongue points down.
+ ],
+ [
+ ,
+ 'TongueRight',
+ Tongue points right.
+ ],
+ [
+ ,
+ 'TongueLeft',
+ Tongue points left.
+ ],
+ [
+ ,
+ 'TongueRoll',
+ Sides of the tongue funnel, creating a 'hotdog' shape.
+ ],
+ [
+ ,
+ 'TongueBendDown',
+ Tongue arches up then down inside the mouth.
+ ],
+ [
+ ,
+ 'TongueCurlUp',
+ Tongue arches down then up inside the mouth.
+ ],
+ [
+ ,
+ 'TongueSquish',
+ Tongue squishes together and thickens.
+ ],
+ [
+ ,
+ 'TongueFlat',
+ Tongue flattens and thins out.
+ ],
+ [
+ ,
+ 'TongueTwistRight',
+ Tongue tip rotates clockwise, with the rest following gradually.
+ ],
+ [
+ ,
+ 'TongueTwistLeft',
+ Tongue tip rotates counter-clockwise, with the rest following gradually.
+ ],
+ [
+ ,
+ 'SoftPalateClose¹',
+ Inner mouth throat closes.
+ ],
+ [
+ ,
+ 'ThroatSwallow¹',
+ The Adam's apple visibly swallows.
+ ],
+ [
+ ,
+ 'NeckFlexRight¹',
+ Right side neck visibly flexes.
+ ],
+ [
+ ,
+ 'NeckFlexLeft¹',
+ Left side neck visibly flexes.
+ ],
+ ]}
+/>
import OneExplain from './unified-explanations/super-scripts/_1_explain.mdx'
import TwoExplain from './unified-explanations/super-scripts/_2_explain.mdx'
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json
new file mode 100644
index 00000000..fb243e09
--- /dev/null
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Compatibility",
+ "position": 2,
+ "link": {
+ "type": "generated-index",
+ "description": "Information pertaining to Unified Expressions compatibility."
+ }
+}
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx
new file mode 100644
index 00000000..8faf71d4
--- /dev/null
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx
@@ -0,0 +1,106 @@
+---
+sidebar_position: 2
+description: Information about ARKit face tracking works with Unified Expressions.
+---
+
+import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx'
+import FilterTable from '@site/src/components/FilterTable.tsx';
+
+# Apple ARKit
+
+***
+
+Apple provides a face tracking standard for iOS devices within their ARKit SDK and software,
+where the associated blendshapes are often referred to as PerfectSync, AR52, and ARKit respectively.
+
+The following table shows how ARKit face tracking translates to Unified Expressions
+
+### ARKit Comparison
+
+BrowDownRight, 'browDownRight'],
+ [BrowDownLeft , 'browDownLeft'],
+ [BrowInnerUp , 'browInnerUp'],
+ ['BrowOuterUpRight', 'browOuterUpRight'],
+ ['BrowOuterUpLeft', 'browOuterUpLeft'],
+ ['NoseSneerRight', 'noseSneerRight'],
+ ['NoseSneerLeft', 'noseSneerLeft'],
+ ['CheekSquintRight', 'cheekSquintRight'],
+ ['CheekSquintLeft', 'cheekSquintLeft'],
+ [CheekPuff , 'cheekPuff'],
+ ['JawOpen', 'jawOpen'],
+ ['MouthClosed', 'mouthClose'],
+ ['JawRight', 'jawRight'],
+ ['JawLeft', 'jawLeft'],
+ ['JawForward', 'jawForward'],
+ [LipSuckUpper , 'mouthRollUpper'],
+ [LipSuckLower , 'mouthRollLower'],
+ [LipFunnel , 'mouthFunnel'],
+ [LipPucker , 'mouthPucker'],
+ ['MouthUpperUpRight', 'mouthUpperUpRight'],
+ ['MouthUpperUpLeft', 'mouthUpperUpLeft'],
+ ['MouthLowerDownRight', 'mouthLowerUpRight'],
+ ['MouthLowerDownLeft', 'mouthLowerUpLeft'],
+ [MouthSmileRight , 'mouthSmileRight'],
+ [MouthSmileLeft , 'mouthSmileLeft'],
+ ['MouthFrownRight', 'mouthFrownRight'],
+ ['MouthFrownLeft', 'mouthFrownLeft'],
+ ['MouthStretchRight', 'mouthStretchRight'],
+ ['MouthStretchLeft', 'mouthStretchLeft'],
+ ['MouthDimplerRight', 'mouthDimpleRight'],
+ ['MouthDimplerLeft', 'mouthDimpleLeft'],
+ ['MouthRaiserUpper', 'mouthShrugUpper'],
+ ['MouthRaiserLower', 'mouthShrugLower'],
+ ['MouthPressRight', 'mouthPressRight'],
+ ['MouthPressLeft', 'mouthPressLeft'],
+ ['TongueOut', 'tongueOut']
+ ]}
+/>
+
+* Bold Blended Shape.
+
+:::caution Some shapes are not tracked
+
+ARKit does not include expressions to track the following Unified Expressions:
+
+```
+EyeDilationRight
+EyeDilationLeft
+EyeConstrictRight
+EyeConstrictLeft
+
+CheekSuckRight
+CheekSuckLeft
+
+MouthTightenerRight
+MouthTightenerLeft
+
+Tongue Directions
+Misc. Tongue Expressions
+```
+
+However, the absence of these shapes does not affect tracking quality.
+:::
+
+### Standard Documentation
+
+Apple Developer Documentation
+ARKit Shape References (Unofficial)
\ No newline at end of file
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx
new file mode 100644
index 00000000..8e04175c
--- /dev/null
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx
@@ -0,0 +1,112 @@
+---
+sidebar_position: 2
+description: Information about Meta Movement (Quest Pro) face tracking works with Unified Expressions.
+---
+
+import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx'
+import FilterTable from '@site/src/components/FilterTable.tsx';
+
+# Meta Movement (Quest Pro)
+
+***
+
+Meta provides a face tracking standard for Quest Pro within their Movement SDK,
+where the blendshapes are often referred to as FACS, Quest Pro Face Tracking,
+and Movement respectively.
+
+The following table shows how Movement face tracking translates to Unified Expressions.
+
+### Movement Comparison
+
+BrowDownRight, 'BROW_LOWERER_R'],
+ [BrowDownLeft , 'BROW_LOWERER_L'],
+ ['BrowInnerUpRight', 'INNER_BROW_RAISER_R'],
+ ['BrowInnerUpLeft', 'INNER_BROW_RAISER_L'],
+ ['BrowOuterUpRight', 'OUTER_BROW_RAISER_R'],
+ ['BrowOuterUpLeft', 'OUTER_BROW_RAISER_L'],
+ ['NoseSneerRight', 'NOSE_WRINKLER_R'],
+ ['NoseSneerLeft', 'NOSE_WRINKLER_L'],
+ ['CheekSquintRight', 'CHEEK_RAISER_R'],
+ ['CheekSquintLeft', 'CHEEK_RAISER_L'],
+ ['CheekPuffRight', 'CHEEK_PUFF_R'],
+ ['CheekPuffLeft', 'CHEEK_PUFF_L'],
+ ['CheekSuckRight', 'CHEEK_SUCK_R'],
+ ['CheekSuckLeft', 'CHEEK_SUCK_L'],
+ ['JawOpen', 'JAW_DROP'],
+ ['MouthClosed', 'LIPS_TOWARD'],
+ ['JawRight', 'JAW_SIDEWAYS_RIGHT'],
+ ['JawLeft', 'JAW_SIDEWAYS_LEFT'],
+ ['JawForward', 'JAW_THRUST'],
+ ['LipSuckUpperRight', 'LIP_SUCK_RT'],
+ ['LipSuckUpperLeft', 'LIP_SUCK_LT'],
+ ['LipSuckLowerRight', 'LIP_SUCK_RB'],
+ ['LipSuckLowerLeft', 'LIP_SUCK_LB'],
+ ['LipFunnelUpperRight', 'LIP_FUNNELER_RT'],
+ ['LipFunnelUpperLeft', 'LIP_FUNNELER_LT'],
+ ['LipFunnelLowerRight', 'LIP_FUNNELER_RB'],
+ ['LipFunnelLowerLeft', 'LIP_FUNNELER_LB'],
+ [<>LipPuckerUpperRight LipPuckerLowerRight>, 'LIP_PUCKER_R'],
+ [<>LipPuckerUpperLeft LipPuckerLowerLeft>, 'LIP_PUCKER_L'],
+ ['MouthUpperUpRight', 'UPPER_LIP_RAISER_R'],
+ ['MouthUpperUpLeft', 'UPPER_LIP_RAISER_L'],
+ ['MouthLowerDownRight', 'LOWER_LIP_DEPRESSOR_R'],
+ ['MouthLowerDownLeft', 'LOWER_LIP_DEPRESSER_L'],
+ [MouthSmileRight , 'LIP_CORNER_PULLER_R'],
+ [MouthSmileLeft , 'LIP_CORNER_PULLER_L'],
+ ['MouthFrownRight', 'LIP_CORNER_DEPRESSOR_R'],
+ ['MouthFrownLeft', 'LIP_CORNER_DEPRESSOR_L'],
+ ['MouthStretchRight', 'LIP_STRETCHER_R'],
+ ['MouthStretchLeft', 'LIP_STRETCHER_L'],
+ ['MouthDimplerRight', 'DIMPLER_R'],
+ ['MouthDimplerLeft', 'DIMPLER_L'],
+ ['MouthRaiserUpper', 'CHIN_RAISER_T'],
+ ['MouthRaiserUpper', 'CHIN_RAISER_T'],
+ ['MouthPressRight', 'LIP_PRESSOR_R'],
+ ['MouthPressLeft', 'LIP_PRESSOR_L'],
+ ['MouthTightenerRight', 'LIP_TIGHTENER_R'],
+ ['MouthTightenerLeft', 'LIP_TIGHTENER_L'],
+ ]}
+/>
+
+* Bold Blended Shape.
+
+:::caution Some shapes are not tracked
+
+Movement does not include expressions to track the following Unified Expressions:
+
+```
+EyeDilationRight
+EyeDilationLeft
+EyeConstrictRight
+EyeConstrictLeft
+
+TongueOut
+Tongue Directions
+Misc. Tongue Expressions
+```
+
+However, the absence of these shapes does not affect tracking quality.
+:::
+
+### Standard Documentation
+
+Blendshape Visual Reference for Movement
\ No newline at end of file
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx
new file mode 100644
index 00000000..a1519d48
--- /dev/null
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx
@@ -0,0 +1,191 @@
+---
+sidebar_position: 1
+description: Overview of what face tracking standards can express in Unified Expressions.
+---
+
+import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx'
+import FilterTable from '@site/src/components/FilterTable.tsx';
+
+# Tracking Standard Comparison Overview
+
+***
+
+:::note How to read this section
+
+This page goes over specific translations for each standard into
+Unified Expressions. For more concrete examples of each standard listed,
+please refer to the appropriate standards' documentation.
+
+Base and Blended shapes from Unified Expressions will be matched directly with
+other standards' shapes. Some caveats such as unique shapes will be
+given more detailed explanations on how they can translate to Unified Expressions.
+
+:::
+
+:::info Table Explained
+
+This table provides a comprehensive understanding of the
+relationship between various shapes and Unified Expressions:
+
+When multiple shapes are listed in the same row, they
+collaboratively contribute to the formation of a specific
+standard shape.
+
+`~` indicates that the expression in a row is directly connected
+elsewhere.
+
+`❌` indicates that the expression in a row is not tracked.
+
+Some shapes have an extra condition (`While X`, `Negates X`)
+that indicates that specified cell needs the presence or absence
+of specific shapes to convey a specific expression accurately in
+order to correlate it to the other expressions in that row.
+This often necessitates particular adjustments (animation
+or blendshape) for compatibility with Unified Expressions,
+while maintaining anatomical consistency within the given row.
+
+* `While` signifies that a standard requires a shape
+to be active to match the row.
+* `Negates` signifies that a standard requires a shape
+to be inactive to match the row.
+
+Regardless of the conditions, the shape can be converted into
+Unified Expressions without compromising tracking quality or
+expression behavior.
+
+This section only provides a generalized comparison across
+all standards; for more specific information refer to the
+dedicated sections for each standard.
+
+:::
+
+### Standard Comparisons
+
+BrowDownRight CheekSquintRight EyeSquintRightWhile EyeClosedRight
>, '~', 'Eye_Right_squeeze¹', '~'],
+ [<>BrowDownLeft CheekSquintLeft EyeSquintLeftWhile EyeClosedLeft
>, '~', 'Eye_Left_squeeze¹', '~'],
+ ['EyeWideRight', 'eyeWideRight', 'Eye_Right_Wide', 'EYES_WIDEN_R'],
+ ['EyeWideLeft', 'eyeWideLeft', 'Eye_Left_Wide', 'EYES_WIDEN_L'],
+ ['EyeDilationRight', '❌', 'Eye_Right_Dilation', '❌'],
+ ['EyeDilationLeft', '❌', 'Eye_Left_Dilation', '❌'],
+ ['EyeConstrictRight', '❌', 'Eye_Right_Constrict', '❌'],
+ ['EyeConstrictLeft', '❌', 'Eye_Left_Constrict', '❌'],
+ [BrowDownRight , 'browDownRight', '❌', 'BROW_LOWERER_R'],
+ [BrowDownLeft , 'browDownLeft', '❌', 'BROW_LOWERER_L'],
+ ['BrowInnerUpRight', '~', '❌', 'INNER_BROW_RAISER_R'],
+ ['BrowInnerUpLeft', '~', '❌', 'INNER_BROW_RAISER_L'],
+ [BrowInnerUp , 'browInnerUp', '❌', '~'],
+ ['BrowOuterUpRight', 'browOuterUpRight', '❌', 'OUTER_BROW_RAISER_R'],
+ ['BrowOuterUpLeft', 'browOuterUpLeft', '❌', 'OUTER_BROW_RAISER_L'],
+ ['NoseSneerRight', 'noseSneerRight', '❌', 'NOSE_WRINKLER_R'],
+ ['NoseSneerLeft', 'noseSneerLeft', '❌', 'NOSE_WRINKLER_L'],
+ ['CheekSquintRight', 'cheekSquintRight', '~', 'CHEEK_RAISER_R'],
+ ['CheekSquintLeft', 'cheekSquintLeft', '~', 'CHEEK_RAISER_L'],
+ ['CheekPuffRight', '~', 'Cheek_Puff_Right', 'CHEEK_PUFF_R'],
+ ['CheekPuffLeft', '~', 'Cheek_Puff_Left', 'CHEEK_PUFF_L'],
+ [CheekPuff , 'cheekPuff', '~', '~'],
+ ['CheekSuckRight', '❌', '~', 'CHEEK_SUCK_R'],
+ ['CheekSuckLeft', '❌', '~', 'CHEEK_SUCK_L'],
+ [CheekSuck , '❌', 'Cheek_Suck', '~'],
+ ['JawOpen', 'jawOpen', 'Jaw_Open', 'JAW_DROP'],
+ ['MouthClosed', 'mouthClose', <>Mouth_Ape_Shape¹Negates Jaw_Open
>, 'LIPS_TOWARD'],
+ ['JawRight', 'jawRight', 'Jaw_Right', 'JAW_SIDEWAYS_RIGHT'],
+ ['JawLeft', 'jawLeft', 'Jaw_Left', 'JAW_SIDEWAYS_LEFT'],
+ ['JawForward', 'jawForward', 'Jaw_Forward', 'JAW_THRUST'],
+ ['LipSuckUpperRight', '~', '~', 'LIP_SUCK_RT'],
+ ['LipSuckUpperLeft', '~', '~', 'LIP_SUCK_LT'],
+ [LipSuckUpper , 'mouthRollUpper', 'Mouth_Upper_Inside', '~'],
+ ['LipSuckLowerRight', '~', '~', 'LIP_SUCK_RB'],
+ ['LipSuckLowerLeft', '~', '~', 'LIP_SUCK_LB'],
+ [LipSuckLower , 'mouthRollLower', 'Mouth_Lower_Inside', '~'],
+ ['LipFunnelUpperRight', '~', '~', 'LIP_FUNNELER_RT'],
+ ['LipFunnelUpperLeft', '~', '~', 'LIP_FUNNELER_LT'],
+ [LipFunnelUpper , '~', 'Mouth_Upper_Overturn¹', '~'],
+ ['LipFunnelLowerRight', '~', '~', 'LIP_SUCK_RB'],
+ ['LipFunnelLowerLeft', '~', '~', 'LIP_SUCK_LB'],
+ [LipFunnelLower , '~', 'Mouth_Lower_Overturn¹', '~'],
+ [LipFunnel , 'mouthFunnel', '~', '~'],
+ [<>LipPuckerUpperRight LipPuckerLowerRight>, '~', '~', 'LIP_PUCKER_R'],
+ [<>LipPuckerUpperLeft LipPuckerLowerLeft>, '~', '~', 'LIP_PUCKER_L'],
+ [LipPucker , 'mouthPucker', 'Mouth_Pout', ''],
+ ['MouthUpperUpRight', 'mouthUpperUpRight', 'Mouth_Upper_Up_Right', 'UPPER_LIP_RAISER_R'],
+ ['MouthUpperUpLeft', 'mouthUpperUpLeft', 'Mouth_Upper_Up_Left', 'UPPER_LIP_RAISER_L'],
+ ['MouthLowerDownRight', 'mouthLowerUpRight', 'Mouth_Lower_Down_Right', 'LOWER_LIP_DEPRESSOR_R'],
+ ['MouthLowerDownLeft', 'mouthLowerUpLeft', 'Mouth_Lower_Down_Left', 'LOWER_LIP_DEPRESSER_L'],
+ [MouthSmileRight , 'mouthSmileRight', 'Mouth_Smile_Right', 'LIP_CORNER_PULLER_R'],
+ [MouthSmileLeft , 'mouthSmileLeft', 'Mouth_Smile_Left', 'LIP_CORNER_PULLER_L'],
+ ['MouthFrownRight', 'mouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'],
+ ['MouthFrownLeft', 'mouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'],
+ [MouthSadRight , '~', 'Mouth_Sad_Right', '~'],
+ [MouthSadLeft , '~', 'Mouth_Sad_Left', '~'],
+ ['MouthStretchRight', 'mouthStretchRight', '~', 'LIP_STRETCHER_R'],
+ ['MouthStretchLeft', 'mouthStretchLeft', '~', 'LIP_STRETCHER_L'],
+ ['MouthDimplerRight', 'mouthDimpleRight', '~', 'DIMPLER_R'],
+ ['MouthDimplerLeft', 'mouthDimpleLeft', '~', 'DIMPLER_L'],
+ ['MouthRaiserUpper', 'mouthShrugUpper', '❌', 'CHIN_RAISER_T'],
+ ['MouthRaiserLower', 'mouthShrugLower', 'Mouth_Lower_Overlay', 'CHIN_RAISER_B'],
+ ['MouthPressRight', 'mouthPressRight¹', '❌', 'LIP_PRESSOR_R'],
+ ['MouthPressLeft', 'mouthPressLeft¹', '❌', 'LIP_PRESSOR_L'],
+ ['MouthTightenerRight', '❌', '❌', 'LIP_TIGHTENER_R'],
+ ['MouthTightenerLeft', '❌', '❌', 'LIP_TIGHTENER_L'],
+ ['TongueOut', 'tongueOut', <>Tongue_LongStep1 Tongue_LongStep2>, '❌'],
+ ['TongueUp', '❌', 'Tongue_Up', '❌'],
+ ['TongueDown', '❌', 'Tongue_Down', '❌'],
+ ['TongueRight', '❌', 'Tongue_Right', '❌'],
+ ['TongueLeft', '❌', 'Tongue_Left', '❌'],
+ ['TongueRoll', '❌', 'Tongue_Roll', '❌'],
+ ]}
+/>
+
+* ¹ Requires the use of a specialized animation setup to work with VRCFT V2 tracking.
+* Bold Blended Shape.
+
+### Standard Documentation
+
+VRCFT Documentation >
+ ],
+ [
+ 'ARKit',
+ <>
+ Apple Developer Documentation
+ ARKit Shape References (Unofficial)
+ >
+ ],
+ [
+ 'VIVE SRanipal',
+ <>
+ VIVE Developer Resource
+ VRCFT v4.0 Documentation
+ >
+ ],
+ [
+ 'Meta Movement',
+ <>
+ Blendshape Visual Reference for Movement
+ >
+ ],
+ ]}
+/>
diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx
new file mode 100644
index 00000000..8eb61572
--- /dev/null
+++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx
@@ -0,0 +1,277 @@
+---
+sidebar_position: 2
+description: Information about VIVE SRanipal face tracking works with Unified Expressions.
+---
+
+import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx'
+import FilterTable from '@site/src/components/FilterTable.tsx';
+
+# VIVE SRanipal
+
+***
+
+
+VIVE offers a facial tracking standard through the SRanipal SDK and software.
+This standard serves as the foundational tracking framework for devices such as
+the Vive Pro Eye, Vive Facial Tracker, and other VIVE products equipped with
+facial tracking functionalities.
+
+The following table illustrates the mapping of SRanipal facial tracking to Unified Expressions.
+
+:::info Table Explained
+
+This table provides a comprehensive understanding of the
+relationship between various shapes and Unified Expressions:
+
+When multiple shapes are listed in the same row, they
+collaboratively contribute to the formation of a specific
+standard shape.
+
+Some shapes have an extra condition (`While X`, `Negates X`)
+that indicates that specified cell needs the presence or absence
+of specific shapes to convey a specific expression accurately in
+order to correlate it to the other expressions in that row.
+This often necessitates particular adjustments (animation
+or blendshape) for compatibility with Unified Expressions,
+while maintaining anatomical consistency within the given row.
+
+* `While` signifies that a standard requires a shape
+to be active to match the row.
+* `Negates` signifies that a standard requires a shape
+to be inactive to match the row.
+
+Regardless of the conditions, the shape can be converted into
+Unified Expressions without compromising tracking quality or
+expression behavior.
+
+For more concise and readable information for specific tracking
+standards and how they convert to Unified Expressions, please
+refer to [Admonitions](#admonitions).
+
+:::
+
+### SRanipal Comparison
+
+BrowDownRight CheekSquintRight EyeSquintRight >, 'Eye_Right_squeeze¹'],
+ [<>BrowDownLeft CheekSquintLeft EyeSquintLeft >, 'Eye_Left_squeeze¹'],
+ ['EyeWideRight', 'Eye_Right_Wide'],
+ ['EyeWideLeft', 'Eye_Left_Wide'],
+ ['EyeDilationRight', 'Eye_Right_Dilation'],
+ ['EyeDilationLeft', 'Eye_Left_Dilation'],
+ ['EyeConstrictRight', 'Eye_Right_Constrict'],
+ ['EyeConstrictLeft', 'Eye_Left_Constrict'],
+ ['CheekPuffRight', 'Cheek_Puff_Right'],
+ ['CheekPuffLeft', 'Cheek_Puff_Left'],
+ [CheekSuck' , 'Cheek_Suck'],
+ ['JawOpen', 'Jaw_Open'],
+ ['MouthClosed', <>Mouth_Ape_Shape¹Negates Jaw_Open
>],
+ ['JawRight', 'Jaw_Right'],
+ ['JawLeft', 'Jaw_Left'],
+ ['JawForward', 'Jaw_Forward'],
+ [LipSuckUpper , 'Mouth_Upper_Inside'],
+ [LipSuckLower , 'Mouth_Lower_Inside'],
+ [LipFunnelUpper , <>Mouth_Upper_OverturnWhile Mouth_Upper_Up_Left While Mouth_Upper_Up_Right
>],
+ [LipFunnelLower , <>Mouth_Lower_OverturnWhile Mouth_Lower_Down_Left While Mouth_Lower_Down_Right
>],
+ [LipPucker , 'Mouth_Pout'],
+ ['MouthUpperUpRight', 'Mouth_Upper_Up_Right'],
+ ['MouthUpperUpLeft', 'Mouth_Upper_Up_Left'],
+ ['MouthLowerDownRight', 'Mouth_Lower_Down_Right'],
+ ['MouthLowerDownLeft', 'Mouth_Lower_Down_Left'],
+ [MouthSmileRight , 'Mouth_Smile_Right'],
+ [MouthSmileLeft , 'Mouth_Smile_Left'],
+ [MouthSadRight , 'Mouth_Sad_Right'],
+ [MouthSadLeft , 'Mouth_Sad_Left'],
+ ['MouthRaiserLower', 'Mouth_Lower_Overlay'],
+ ['TongueOut', <>Tongue_LongStep1 Tongue_LongStep2>],
+ ['TongueUp', 'Tongue_Up'],
+ ['TongueDown', 'Tongue_Down'],
+ ['TongueRight', 'Tongue_Right'],
+ ['TongueLeft', 'Tongue_Left'],
+ ['TongueRoll', 'Tongue_Roll'],
+ ]}
+/>
+
+* ¹ More detailed reasoning is elaborated in [Admonitions](#admonitions)
+* Bold Blended Shape.
+
+### Admonitions {#admonitions}
+
+Certain expressions in SRanipal may not have direct or intuitive assignments
+to Unified Expressions due to the format of the expressions.
+
+The following section will provide comprehensive explanations on how SRanipal
+controls Unified Expressions, and subsequently how Unified can be used to track
+SRanipal shapes. This can be useful for making SRanipal shapes compatible in Unified
+Expressions driven animation setups (in the case of VRCFT avatars).
+
+Recognizing these differences in your avatar's setup should allow SRanipal
+shapes to track as intended. Certain animation templates have these admonitions
+built in, allowing SRanipal shapes to be used directly with Unified Expressions!
+
+This section provides a thorough description of what each shape should do to
+track as intended with Unifed Expressions.
+
+
+ From the SRanipal avatar reference,
+ this SRanipal expression controls these Unified
+ expressions while the eyelids are closed:
+
+ EyeSquintRight
+ CheekSquintRight
+ BrowPinchRight
+ BrowLowererRight
+
+ To get the intended tracking, these Unified expressions must be all active together
+ to trigger Eye_Right_squeeze in animation. Alternatively the listed UE expressions can be
+ made separately to allow for more robust tracking for non-SRanipal tracking.
+
+ ],
+ [
+ 'Eye_Left_squeeze',
+
+ From the SRanipal avatar reference,
+ this SRanipal expression controls these Unified
+ expressions while the eyelids are closed:
+
+ EyeSquintLeft
+ CheekSquintLeft
+ BrowPinchLeft
+ BrowLowererLeft
+
+ To get the intended tracking, these Unified expressions must be all active together
+ to trigger Eye_Left_squeeze in animation. Alternatively the listed UE expressions can be
+ made separately to allow for more robust tracking for non-SRanipal tracking.
+
+ ],
+ [
+ 'Mouth_Ape_Shape',
+
+ This SRanipal expression controls Unified's MouthClosed expression.
+ To get the intended tracking on this SRanipal shape, MouthClosed must negate JawOpen
+ in the animation proportional to the amount MouthClosed is active.
+
+ Alternatively, this blendshape can be turned into MouthClosed by negating JawOpen
+ in the blendshape itself.
+
+ ],
+ [
+ 'Mouth_Upper_Overturn',
+
+ This SRanipal expression controls Unified's LipFunnelUpperRight and LipFunnelUpperLeft expressions.
+ To get the intended tracking on this SRanipal shape, it should also include Mouth_Upper_Up_Right
+ and Mouth_Upper_Up_Left when this shape is active.
+
+ Alternatively, this shape can be turned into LipFunnelUpper by adding Mouth_Upper_Up_Left and
+ Mouth_Upper_Up_Right to this shape.
+
+ ],
+ [
+ 'Mouth_Lower_Overturn',
+
+ This SRanipal expression controls Unified's LipFunnelLowerRight and LipFunnelLowerLeft expressions.
+ To get the intended tracking on this SRanipal shape, it should also include Mouth_Lower_Down_Right
+ and Mouth_Lower_Down_Left when this shape is active.
+
+ Alternatively, this shape can be turned into LipFunnelUpper by adding Mouth_Upper_Up_Left and
+ Mouth_Upper_Up_Right to this shape.
+
+ ],
+ [
+ 'Mouth_Smile_Right',
+
+ This SRanipal expression directly controls Unified's MouthCornerPullerRight and
+ MouthCornerSlantRight, creating the MouthSmileRight Blended shape. On many avatars and
+ on the SRanipal reference avatar, the right cheek is squinting when smiling. It is perfectly acceptable
+ to have MouthSmileRight to have this behavior, especially when using SRanipal-compatible tracking
+ with this avatar.
+
+ Optionally, if there is a desire for more expressive tracking then moving the cheek raising part
+ of Mouth_Smile_Right to it's own dedicated shape will allow CheekSquintRight to be able to control
+ it directly, allowing for more expressibility. This will require editing the blendshape directly or
+ creating new shapes to fulfill the change.
+
+ ],
+ [
+ 'Mouth_Smile_Left',
+
+ This SRanipal expression directly controls Unified's MouthCornerPullerLeft and
+ MouthCornerSlantLeft, creating the MouthSmileLeft Blended shape. On many avatars and
+ on the SRanipal reference avatar, the right cheek is squinting when smiling. It is perfectly acceptable
+ to have MouthSmileLeft to have this behavior, especially when using SRanipal-compatible tracking
+ with this avatar.
+
+ Optionally, if there is a desire for more expressive tracking then moving the cheek raising part
+ of Mouth_Smile_Left to it's own dedicated shape will allow CheekSquintLeft to be able to control
+ it directly, allowing for more expressibility. This will require editing the blendshape directly or
+ creating new shapes to fulfill the change.
+
+ ],
+ [
+ <>Tongue_LongStep1 Tongue_LongStep2>,
+
+ These SRanipal expressions control TongueOut linearly.
+ To get the intended tracking on this shape, let Tongue_LongStep1 activate
+ from 0-0.5, while LongStep2 activates from 0.5-1 in the animation.
+ These are corrective shapes for TongueOut, allowing for the tongue to
+ stick out of the mouth.
+
+ ],
+ ]}
+/>
+
+:::caution Some shapes are not tracked
+
+SRanipal does not include expressions to track the following Unified Expressions:
+
+```
+BrowPinchRight
+BrowPinchLeft
+BrowLowererRight
+BrowLowererLeft
+BrowInnerUpRight
+BrowInnerUpLeft
+BrowOuterUpRight
+BrowOuterUpLeft
+
+CheekSquintRight (baked into Mouth_Smile_Right)
+CheekSquintLeft (baked into Mouth_Smile_Left)
+
+MouthRaiserUpper
+MouthPressRight
+MouthPressLeft
+MouthTightenerLeft
+MouthTightenerRight
+
+Some misc. Tongue Expressions
+```
+
+However, the absence of these shapes does not affect tracking quality.
+:::
+
+### Standard Documentation
+
+Vive Developer Resource
+VRCFT v4.0 Documentation
+
diff --git a/src/components/FilterTable.tsx b/src/components/FilterTable.tsx
new file mode 100644
index 00000000..eb6aafd6
--- /dev/null
+++ b/src/components/FilterTable.tsx
@@ -0,0 +1,117 @@
+import React, { FC, useState } from 'react';
+import '../css/filtertable.css';
+
+interface FilterData {
+ title: string;
+ omitHeaders: string[];
+ disabledHeaders: string[];
+ headers: string[];
+ rows: any[][];
+}
+
+const FilterTable = ({ title, omitHeaders, disabledHeaders, headers, rows } : FilterData) => {
+ const [hiddenColumns, setHiddenColumns] = useState(
+ disabledHeaders?.map(header => headers.indexOf(header)) || []
+ );
+ const [filterText, setFilterText] = useState('');
+ const [filterRegex, setFilterRegex] = useState(null);
+ const [hasError, setHasError] = useState(false);
+
+ const toggleColumn = (index) => {
+ if (hiddenColumns.includes(index)) {
+ setHiddenColumns(hiddenColumns.filter((i) => i !== index));
+ } else {
+ setHiddenColumns([...hiddenColumns, index]);
+ }
+ };
+
+ const filteredRows = rows.filter(row =>
+ row.some((cell) => {
+ if (filterRegex) {
+ try {
+ return cell?.toString && filterRegex.test(cell.toString());
+ } catch (error) {
+ return false;
+ }
+ } else {
+ return cell?.toString && cell?.toString().includes(filterText);
+ }
+ })
+ );
+
+ const handleFilterChange = (value) => {
+ setFilterText(value);
+ setHasError(false);
+
+ try {
+ if (value.trim() !== '') {
+ setFilterRegex(new RegExp(value, 'i'));
+ } else {
+ setFilterRegex(null);
+ }
+ } catch (error) {
+ setHasError(true);
+ setFilterRegex(null);
+ }
+ };
+
+ return (
+
+
handleFilterChange(e.target.value)}
+ className={`filter-input ${hasError ? 'invalid' : ''}`}
+ />
+ {headers.map((header, index) => (
+ omitHeaders?.includes(header) ? null : (
+
toggleColumn(index)}
+ className={hiddenColumns.includes(index) ? 'disable' : ''}
+ >
+ {header}
+
+ )
+ ))}
+
+
+
+ {headers.map((header, index) => (
+ omitHeaders?.includes(header) ? (
+ // If header is in omitHeaders, render a disabled header without onClick
+ {header}
+ ) : (
+ // If header is not in omitHeaders, apply normal header with onClick and toggleColumn
+ toggleColumn(index)}
+ className={hiddenColumns.includes(index) ? 'hidden' : ''}
+ >
+ {header}
+
+ )
+ ))}
+
+
+
+ {filteredRows.map((row, rowIndex) => (
+
+ {row.map((cell, cellIndex) => (
+
+ {cell}
+
+ ))}
+
+ ))}
+
+
+
+ );
+};
+
+export default FilterTable;
\ No newline at end of file
diff --git a/src/css/custom.css b/src/css/custom.css
index 94d21a75..c65de69f 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -4,11 +4,14 @@
* work well for content-centric websites.
*/
+.hidden {
+ display: none;
+}
+
.header-github-link:hover {
opacity: 0.6;
}
-
.header-github-link::before {
content: '';
width: 24px;
@@ -44,9 +47,9 @@
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #f29fa7;
- --ifm-color-primary-dark: #b17181;
- --ifm-color-primary-darker: #b17181;
- --ifm-color-primary-darkest: #b17181;
+ --ifm-color-primary-dark: #9b9b9b;
+ --ifm-color-primary-darker: #cccccc;
+ --ifm-color-primary-darkest: #ececec;
--ifm-color-primary-light: #b68f92;
--ifm-color-primary-lighter: #b68f92;
--ifm-color-primary-lightest: #b68f92;
@@ -57,9 +60,9 @@
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
--ifm-color-primary: #90f223;
- --ifm-color-primary-dark: #9c9c9c;
- --ifm-color-primary-darker: #9c9c9c;
- --ifm-color-primary-darkest: #808080;
+ --ifm-color-primary-dark: #707070;
+ --ifm-color-primary-darker: #4d4d4d;
+ --ifm-color-primary-darkest: #2e2e2e;
--ifm-color-primary-light: #6db71f;
--ifm-color-primary-lighter: #6db81a;
--ifm-color-primary-lightest: #90f223;
diff --git a/src/css/filtertable.css b/src/css/filtertable.css
new file mode 100644
index 00000000..d2c3a111
--- /dev/null
+++ b/src/css/filtertable.css
@@ -0,0 +1,40 @@
+table {
+ table-layout: auto;
+ width: 100%;
+}
+
+th, td {
+ width: 33.33vh;
+ text-align: center;
+}
+
+button {
+ background: var(--ifm-color-primary-darkest);
+ border: none;
+ cursor: pointer;
+ margin-top: 0rem;
+ margin-bottom: 0.2rem;
+ margin-right: 0.2rem;
+ margin-left: 0rem;
+ padding: 0.5rem;
+ border-collapse: collapse;
+}
+
+button.disable {
+ text-decoration: line-through;
+ color: var(--ifm-color-primary-dark);
+}
+
+.filter-input {
+ background: var(--ifm-color-primary-darkest);
+ padding: 0.5rem;
+ border: none;
+ margin-top: 0rem;
+ margin-bottom: 0.2rem;
+ margin-right: 0.2rem;
+ margin-left: 0rem;
+}
+
+.invalid {
+ color: red;
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index e90e22a6..4f869f40 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -76,7 +76,7 @@
"@algolia/requester-common" "4.17.0"
"@algolia/transporter" "4.17.0"
-"@algolia/client-search@4.17.0":
+"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@4.17.0":
version "4.17.0"
resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.0.tgz"
integrity sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA==
@@ -150,6 +150,27 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz"
integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==
+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.4.0-0":
+ version "7.21.3"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz"
+ integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.21.3"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.21.2"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.3"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.3"
+ "@babel/types" "^7.21.3"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.2"
+ semver "^6.3.0"
+
"@babel/core@7.12.9":
version "7.12.9"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz"
@@ -172,27 +193,6 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7.18.6", "@babel/core@^7.19.6":
- version "7.21.3"
- resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz"
- integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.21.3"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.21.2"
- "@babel/helpers" "^7.21.0"
- "@babel/parser" "^7.21.3"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.3"
- "@babel/types" "^7.21.3"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.2"
- semver "^6.3.0"
-
"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.21.3":
version "7.21.3"
resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz"
@@ -325,16 +325,16 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-plugin-utils@7.10.4":
- version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz"
- integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
-
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.20.2"
resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz"
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
+"@babel/helper-plugin-utils@7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz"
+ integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+
"@babel/helper-remap-async-to-generator@^7.18.9":
version "7.18.9"
resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz"
@@ -517,15 +517,6 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-object-rest-spread@7.12.1":
- version "7.12.1"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz"
- integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
- "@babel/plugin-transform-parameters" "^7.12.1"
-
"@babel/plugin-proposal-object-rest-spread@^7.20.2":
version "7.20.7"
resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz"
@@ -537,6 +528,15 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-transform-parameters" "^7.20.7"
+"@babel/plugin-proposal-object-rest-spread@7.12.1":
+ version "7.12.1"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz"
+ integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.12.1"
+
"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
version "7.18.6"
resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz"
@@ -629,13 +629,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@7.12.1":
- version "7.12.1"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz"
- integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
"@babel/plugin-syntax-jsx@^7.18.6":
version "7.18.6"
resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz"
@@ -643,6 +636,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
+"@babel/plugin-syntax-jsx@7.12.1":
+ version "7.12.1"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz"
+ integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
@@ -664,7 +664,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3", "@babel/plugin-syntax-object-rest-spread@7.8.3":
version "7.8.3"
resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
@@ -1216,7 +1216,7 @@
"@docsearch/css" "3.3.5"
algoliasearch "^4.0.0"
-"@docusaurus/core@2.4.1", "@docusaurus/core@^2.4.1":
+"@docusaurus/core@^2.4.1", "@docusaurus/core@2.4.1":
version "2.4.1"
resolved "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz"
integrity sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==
@@ -1334,7 +1334,7 @@
url-loader "^4.1.1"
webpack "^5.73.0"
-"@docusaurus/module-type-aliases@2.4.1", "@docusaurus/module-type-aliases@^2.4.1":
+"@docusaurus/module-type-aliases@^2.4.1", "@docusaurus/module-type-aliases@2.4.1":
version "2.4.1"
resolved "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz"
integrity sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==
@@ -1482,7 +1482,7 @@
"@docusaurus/theme-search-algolia" "2.4.1"
"@docusaurus/types" "2.4.1"
-"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
+"@docusaurus/react-loadable@5.5.2":
version "5.5.2"
resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz"
integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==
@@ -1587,7 +1587,7 @@
fs-extra "^10.1.0"
tslib "^2.4.0"
-"@docusaurus/types@2.4.1":
+"@docusaurus/types@*", "@docusaurus/types@2.4.1":
version "2.4.1"
resolved "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz"
integrity sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==
@@ -1680,7 +1680,16 @@
"@jridgewell/set-array" "^1.0.0"
"@jridgewell/sourcemap-codec" "^1.4.10"
-"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+"@jridgewell/gen-mapping@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
+ integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
@@ -1707,7 +1716,7 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14":
version "1.4.14"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
@@ -1768,7 +1777,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
-"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
version "2.0.5"
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@@ -1876,7 +1885,7 @@
"@svgr/babel-plugin-transform-react-native-svg" "^6.5.1"
"@svgr/babel-plugin-transform-svg-component" "^6.5.1"
-"@svgr/core@^6.5.1":
+"@svgr/core@*", "@svgr/core@^6.0.0", "@svgr/core@^6.5.1":
version "6.5.1"
resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz"
integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==
@@ -1942,7 +1951,7 @@
"@tsconfig/docusaurus@^2.0.0":
version "2.0.0"
- resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-2.0.0.tgz#cadc77ab84052ffaaa4d6f79e998d719efa50e56"
+ resolved "https://registry.npmjs.org/@tsconfig/docusaurus/-/docusaurus-2.0.0.tgz"
integrity sha512-X5wptT7pXA/46/IRFTW76oR5GNjoy9qjNM/1JGhFV4QAsmLh3YUpJJA+Vpx7Ds6eEBxSxz1QrgoNEBy6rLVs8w==
"@types/body-parser@*":
@@ -2136,7 +2145,7 @@
"@types/history" "^4.7.11"
"@types/react" "*"
-"@types/react@*":
+"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0":
version "18.0.28"
resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz"
integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==
@@ -2357,7 +2366,7 @@ acorn-walk@^8.0.0:
resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
-acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1:
+acorn@^8, acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1:
version "8.8.2"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
@@ -2394,7 +2403,7 @@ ajv-keywords@^5.0.0:
dependencies:
fast-deep-equal "^3.1.3"
-ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
+ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -2404,7 +2413,17 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.0, ajv@^8.8.0:
+ajv@^8.0.0:
+ version "8.12.0"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
+ integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
+ajv@^8.8.0, ajv@^8.8.2:
version "8.12.0"
resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
@@ -2421,7 +2440,7 @@ algoliasearch-helper@^3.10.0:
dependencies:
"@algolia/events" "^4.0.1"
-algoliasearch@^4.0.0, algoliasearch@^4.13.1:
+algoliasearch@^4.0.0, algoliasearch@^4.13.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6":
version "4.17.0"
resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.0.tgz"
integrity sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA==
@@ -2507,16 +2526,16 @@ argparse@^2.0.1:
resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
- integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-
array-flatten@^2.1.2:
version "2.1.2"
resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz"
integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
@@ -2713,7 +2732,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5:
+browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5, "browserslist@>= 4.21.0":
version "4.21.5"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz"
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
@@ -2943,7 +2962,7 @@ clsx@^1.2.1:
clsx@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b"
+ resolved "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz"
integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==
collapse-white-space@^1.0.2:
@@ -2965,16 +2984,16 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
colord@^2.9.1:
version "2.9.3"
resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz"
@@ -2995,11 +3014,6 @@ comma-separated-tokens@^1.0.0:
resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz"
integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==
-commander@7, commander@^7.2.0:
- version "7.2.0"
- resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
- integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
-
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
@@ -3010,11 +3024,21 @@ commander@^5.1.0:
resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+commander@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
+ integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
commander@^8.3.0:
version "8.3.0"
resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+commander@7:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
+ integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
@@ -3363,7 +3387,7 @@ cytoscape-fcose@^2.1.0:
dependencies:
cose-base "^2.2.0"
-cytoscape@^3.23.0:
+cytoscape@^3.2.0, cytoscape@^3.23.0:
version "3.24.0"
resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.24.0.tgz"
integrity sha512-W9fJMrAfr/zKFzDCpRR/wn6uoEQ7gfbJmxPK5DadXj69XyAhZYi1QXLOE+UXJfXVXxqGM1o1eeiIrtxrtB43zA==
@@ -3371,7 +3395,7 @@ cytoscape@^3.23.0:
heap "^0.2.6"
lodash "^4.17.21"
-"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0:
+d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
version "3.2.3"
resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.3.tgz"
integrity sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ==
@@ -3487,7 +3511,7 @@ d3-hierarchy@3:
dependencies:
d3-color "1 - 3"
-"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0:
+d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3:
version "3.1.0"
resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
@@ -3628,20 +3652,27 @@ dayjs@^1.11.7:
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz"
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
-debug@2.6.9, debug@^2.6.0:
+debug@^2.6.0:
version "2.6.9"
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
-debug@4, debug@^4.1.0, debug@^4.1.1:
+debug@^4.1.0, debug@^4.1.1, debug@4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz"
@@ -3705,16 +3736,16 @@ delaunator@5:
dependencies:
robust-predicates "^3.0.0"
-depd@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
- integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
-
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
+depd@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
@@ -3849,16 +3880,16 @@ dot-prop@^5.2.0:
dependencies:
is-obj "^2.0.0"
-duplexer3@^0.1.4:
- version "0.1.5"
- resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz"
- integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
-
duplexer@^0.1.2:
version "0.1.2"
resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+duplexer3@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz"
+ integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
+
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
@@ -4167,7 +4198,7 @@ feed@^4.2.2:
dependencies:
xml-js "^1.6.11"
-file-loader@^6.2.0:
+file-loader@*, file-loader@^6.2.0:
version "6.2.0"
resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz"
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
@@ -4308,11 +4339,6 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
-
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
@@ -4697,6 +4723,16 @@ http-deceiver@^1.2.7:
resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz"
integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
+http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz"
+ integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
@@ -4708,16 +4744,6 @@ http-errors@2.0.0:
statuses "2.0.1"
toidentifier "1.0.1"
-http-errors@~1.6.2:
- version "1.6.3"
- resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz"
- integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
-
http-parser-js@>=0.5.1:
version "0.5.8"
resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz"
@@ -4820,7 +4846,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
+inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -4830,16 +4856,16 @@ inherits@2.0.3:
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
-ini@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
- integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
-
ini@^1.3.5, ini@~1.3.0:
version "1.3.8"
resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
inline-style-parser@0.1.1:
version "0.1.1"
resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz"
@@ -4862,17 +4888,17 @@ invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
-ipaddr.js@1.9.1:
- version "1.9.1"
- resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
- integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
ipaddr.js@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz"
integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
-is-alphabetical@1.0.4, is-alphabetical@^1.0.0:
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-alphabetical@^1.0.0, is-alphabetical@1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz"
integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
@@ -5050,16 +5076,16 @@ is-yarn-global@^0.3.0:
resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz"
integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
-
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
@@ -5314,7 +5340,7 @@ lodash.memoize@^4.1.2:
resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-lodash.uniq@4.5.0, lodash.uniq@^4.5.0:
+lodash.uniq@^4.5.0, lodash.uniq@4.5.0:
version "4.5.0"
resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
@@ -5484,7 +5510,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
braces "^3.0.2"
picomatch "^2.3.1"
-mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
+"mime-db@>= 1.43.0 < 2":
version "1.52.0"
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
@@ -5494,14 +5520,40 @@ mime-db@~1.33.0:
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz"
integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==
-mime-types@2.1.18, mime-types@~2.1.17:
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.27:
+ version "2.1.35"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime-types@^2.1.31:
+ version "2.1.35"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime-types@~2.1.17, mime-types@2.1.18:
version "2.1.18"
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz"
integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==
dependencies:
mime-db "~1.33.0"
-mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@~2.1.24:
+ version "2.1.35"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -5535,7 +5587,7 @@ minimalistic-assert@^1.0.0:
resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1:
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -5911,6 +5963,13 @@ path-parse@^1.0.7:
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+path-to-regexp@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz"
+ integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
+ dependencies:
+ isarray "0.0.1"
+
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
@@ -5921,13 +5980,6 @@ path-to-regexp@2.2.1:
resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz"
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
-path-to-regexp@^1.7.0:
- version "1.8.0"
- resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz"
- integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
- dependencies:
- isarray "0.0.1"
-
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
@@ -6238,7 +6290,7 @@ postcss-zindex@^5.1.0:
resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz"
integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==
-postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.19:
+"postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.19:
version "8.4.21"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
@@ -6375,16 +6427,21 @@ randombytes@^2.1.0:
dependencies:
safe-buffer "^5.1.0"
-range-parser@1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
- integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==
+range-parser@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-range-parser@^1.2.1, range-parser@~1.2.1:
+range-parser@~1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+range-parser@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
+ integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==
+
raw-body@2.5.1:
version "2.5.1"
resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
@@ -6395,7 +6452,7 @@ raw-body@2.5.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
-rc@1.2.8, rc@^1.2.8:
+rc@^1.2.8, rc@1.2.8:
version "1.2.8"
resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -6445,7 +6502,7 @@ react-dev-utils@^12.0.1:
strip-ansi "^6.0.1"
text-table "^0.2.0"
-react-dom@^17.0.2:
+react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.4 || ^17.0.0", "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4", react-dom@^17.0.2, "react-dom@>= 16.8.0 < 19.0.0":
version "17.0.2"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
@@ -6502,6 +6559,14 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1:
dependencies:
"@babel/runtime" "^7.10.3"
+react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
+ version "5.5.2"
+ resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz"
+ integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==
+ dependencies:
+ "@types/react" "*"
+ prop-types "^15.6.2"
+
react-player@^2.12.0:
version "2.12.0"
resolved "https://registry.npmjs.org/react-player/-/react-player-2.12.0.tgz"
@@ -6533,7 +6598,7 @@ react-router-dom@^5.3.3:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
-react-router@5.3.4, react-router@^5.3.3:
+react-router@^5.3.3, react-router@>=5, react-router@5.3.4:
version "5.3.4"
resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz"
integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==
@@ -6557,7 +6622,7 @@ react-textarea-autosize@^8.3.2:
use-composed-ref "^1.3.0"
use-latest "^1.2.1"
-react@^17.0.2:
+react@*, "react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^16.13.1 || ^17.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.4 || ^17.0.0", "react@^17.0.0 || ^16.3.0 || ^15.5.4", react@^17.0.2, "react@>= 16.8.0 < 19.0.0", react@>=0.14.9, react@>=15, react@>=16.6.0, react@17.0.2:
version "17.0.2"
resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
@@ -6845,15 +6910,20 @@ rxjs@^7.5.4:
dependencies:
tslib "^2.1.0"
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
- version "5.2.1"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+safe-buffer@5.1.2:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2"
@@ -6873,15 +6943,6 @@ scheduler@^0.20.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-schema-utils@2.7.0:
- version "2.7.0"
- resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz"
- integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
- dependencies:
- "@types/json-schema" "^7.0.4"
- ajv "^6.12.2"
- ajv-keywords "^3.4.1"
-
schema-utils@^2.6.5:
version "2.7.1"
resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz"
@@ -6891,7 +6952,25 @@ schema-utils@^2.6.5:
ajv "^6.12.4"
ajv-keywords "^3.5.2"
-schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
+schema-utils@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz"
+ integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+ dependencies:
+ "@types/json-schema" "^7.0.8"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz"
+ integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+ dependencies:
+ "@types/json-schema" "^7.0.8"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^3.1.1:
version "3.1.1"
resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
@@ -6910,6 +6989,15 @@ schema-utils@^4.0.0:
ajv-formats "^2.1.1"
ajv-keywords "^5.0.0"
+schema-utils@2.7.0:
+ version "2.7.0"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz"
+ integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
+ dependencies:
+ "@types/json-schema" "^7.0.4"
+ ajv "^6.12.2"
+ ajv-keywords "^3.4.1"
+
section-matter@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz"
@@ -6939,17 +7027,37 @@ semver-diff@^3.1.1:
semver@^5.4.1:
version "5.7.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+semver@^6.0.0:
+ version "6.3.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^6.1.1:
version "6.3.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^6.1.2:
+ version "6.3.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^6.2.0:
+ version "6.3.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^6.3.0:
+ version "6.3.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8:
version "7.5.4"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies:
lru-cache "^6.0.0"
@@ -7198,22 +7306,45 @@ state-toggle@^1.0.0:
resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz"
integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==
-statuses@2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
- integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-
"statuses@>= 1.4.0 < 2":
version "1.5.0"
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
std-env@^3.0.1:
version "3.3.2"
resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz"
integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==
-string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2:
+ version "4.2.3"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^4.2.0:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -7231,20 +7362,6 @@ string-width@^5.0.1:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
-string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.0"
-
stringify-object@^3.3.0:
version "3.3.0"
resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz"
@@ -7288,7 +7405,7 @@ strip-json-comments@~2.0.1:
resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
-style-to-object@0.3.0, style-to-object@^0.3.0:
+style-to-object@^0.3.0, style-to-object@0.3.0:
version "0.3.0"
resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz"
integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==
@@ -7485,9 +7602,9 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typescript@^5.1.6:
+typescript@^5.1.6, "typescript@>= 2.7":
version "5.1.6"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
ua-parser-js@^0.7.30:
@@ -7526,10 +7643,10 @@ unicode-property-aliases-ecmascript@^2.0.0:
resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz"
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
-unified@9.2.0:
- version "9.2.0"
- resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz"
- integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
+unified@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz"
+ integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==
dependencies:
bail "^1.0.0"
extend "^3.0.0"
@@ -7538,10 +7655,10 @@ unified@9.2.0:
trough "^1.0.0"
vfile "^4.0.0"
-unified@^9.2.2:
- version "9.2.2"
- resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz"
- integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==
+unified@9.2.0:
+ version "9.2.0"
+ resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz"
+ integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
dependencies:
bail "^1.0.0"
extend "^3.0.0"
@@ -7557,7 +7674,7 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
-unist-builder@2.0.3, unist-builder@^2.0.0:
+unist-builder@^2.0.0, unist-builder@2.0.3:
version "2.0.3"
resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz"
integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==
@@ -7606,7 +7723,7 @@ unist-util-visit-parents@^3.0.0:
"@types/unist" "^2.0.0"
unist-util-is "^4.0.0"
-unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3:
+unist-util-visit@^2.0.0, unist-util-visit@^2.0.3, unist-util-visit@2.0.3:
version "2.0.3"
resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz"
integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==
@@ -7620,7 +7737,7 @@ universalify@^2.0.0:
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unpipe@1.0.0, unpipe@~1.0.0:
+unpipe@~1.0.0, unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@@ -7878,7 +7995,7 @@ webpack-sources@^3.2.2, webpack-sources@^3.2.3:
resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
-webpack@^5.73.0:
+"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.73.0, "webpack@>= 4", webpack@>=2, "webpack@>=4.41.1 || 5.x", "webpack@3 || 4 || 5":
version "5.76.2"
resolved "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz"
integrity sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==
@@ -7918,7 +8035,7 @@ webpackbar@^5.0.2:
pretty-time "^1.1.0"
std-env "^3.0.1"
-websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
+websocket-driver@^0.7.4, websocket-driver@>=0.5.1:
version "0.7.4"
resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz"
integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==