1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7697],{2942:function(e,i,t){"use strict";t.d(i,{Z:function(){return H}});var a=t(85893),r=t(67294),n=t(42070),o=t(91382),l=t(74438),s=t(16247),c=t.n(s);let f=new Set(["jump_analysis","air_time_jump"]);function d(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}function p(e,i,t){let a={};for(let o of new Set([...Object.keys(e),...Object.keys(i)])){var r,n;let l=e[o]||i[o],s=i[o]||e[o];a[o]={x:(r=l.x)+(s.x-r)*t,y:(n=l.y)+(s.y-n)*t}}return a}function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:4.8,[i,t]=(0,r.useState)(0),a=(0,r.useRef)(0);return(0,r.useEffect)(()=>{let i;let r=performance.now(),n=o=>{let l=(o-r)/1e3;r=o,a.current=(a.current+l/e)%1,t(a.current),i=requestAnimationFrame(n)};return i=requestAnimationFrame(n),()=>cancelAnimationFrame(i)},[e]),i}let u=new Set(["nose","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"]),g=new Set(["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder"]);function k(){let{hipY:e=.5,lean:i=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=.5+.04*i;return{nose:{x:t,y:e-.28},left_eye:{x:t-.04,y:e-.3},right_eye:{x:t+.04,y:e-.3},left_ear:{x:t-.05,y:e-.28},right_ear:{x:t+.05,y:e-.28},left_shoulder:{x:t-.14,y:e-.18},right_shoulder:{x:t+.14,y:e-.18},left_elbow:{x:t-.18,y:e-.06},right_elbow:{x:t+.18,y:e-.06},left_wrist:{x:t-.2,y:e+.04},right_wrist:{x:t+.2,y:e+.04},left_hip:{x:t-.08,y:e},right_hip:{x:t+.08,y:e}}}function h(){let e={...k({hipY:.46,lean:-.6}),nose:{x:.22,y:.34},left_shoulder:{x:.32,y:.38},right_shoulder:{x:.3,y:.4},left_elbow:{x:.3,y:.48},right_elbow:{x:.28,y:.5},left_wrist:{x:.26,y:.6},right_wrist:{x:.24,y:.62},left_hip:{x:.52,y:.42},right_hip:{x:.5,y:.44},left_knee:{x:.7,y:.48},right_knee:{x:.68,y:.5},left_ankle:{x:.88,y:.52},right_ankle:{x:.86,y:.54}},i={...e,nose:{x:.24,y:.46},left_shoulder:{x:.34,y:.5},right_shoulder:{x:.32,y:.52},left_elbow:{x:.22,y:.54},right_elbow:{x:.2,y:.56},left_hip:{x:.54,y:.5},right_hip:{x:.52,y:.52}};return{high:e,low:i}}function _(){return{stand:{...k({hipY:.5}),left_knee:{x:.46,y:.68},right_knee:{x:.54,y:.68},left_ankle:{x:.46,y:.86},right_ankle:{x:.54,y:.86}},squat:{...k({hipY:.62}),nose:{x:.52,y:.28},left_knee:{x:.38,y:.74},right_knee:{x:.62,y:.74},left_ankle:{x:.4,y:.88},right_ankle:{x:.6,y:.88},left_wrist:{x:.38,y:.72},right_wrist:{x:.62,y:.72}},plank:{...k({hipY:.44,lean:-.5}),nose:{x:.2,y:.36},left_shoulder:{x:.3,y:.4},right_shoulder:{x:.28,y:.42},left_wrist:{x:.22,y:.58},right_wrist:{x:.2,y:.6},left_hip:{x:.52,y:.42},right_hip:{x:.5,y:.44},left_knee:{x:.7,y:.46},right_knee:{x:.68,y:.48},left_ankle:{x:.88,y:.5},right_ankle:{x:.86,y:.52}}}}function x(e){let{pose:i,overlays:t=[],chair:r=!1,compact:n,used:o=u}=e;return(0,a.jsx)(l.Z,{compact:n,points:new Map(Object.entries(i)),usedKeypoints:o,overlays:t,chair:r,roundFace:r,label:"Movement preview"})}function y(e){let{compact:i}=e,t=m(2.8),{high:n,low:o}=(0,r.useMemo)(h,[]);return(0,a.jsx)(x,{pose:p(n,o,d(.5-.5*Math.cos(t*Math.PI*2))),compact:i})}function w(e){let{compact:i}=e,t=m(4.2);return(0,a.jsx)(x,{pose:function(e){let i={...k({hipY:.58}),left_knee:{x:.42,y:.74},right_knee:{x:.58,y:.74},left_ankle:{x:.4,y:.88},right_ankle:{x:.6,y:.88}};if(!e)return i;let t=i.left_shoulder,a=i.right_shoulder,r={x:(t.x+a.x)/2,y:(t.y+a.y)/2-.02},n=e<0,o=n?i.left_ear:i.right_ear,l=n?t:a,s={x:l.x+(n?.02:-.02),y:l.y-.02},c=Math.atan2(o.y-r.y,o.x-r.x),f=Math.atan2(s.y-r.y,s.x-r.x)-c;for(;f>Math.PI;)f-=2*Math.PI;for(;f<-Math.PI;)f+=2*Math.PI;return function(e,i,t){let a=Math.cos(t),r=Math.sin(t),n={...e};for(let t of["nose","left_eye","right_eye","left_ear","right_ear"]){let o=e[t];if(!o)continue;let l=o.x-i.x,s=o.y-i.y;n[t]={x:i.x+l*a-s*r,y:i.y+l*r+s*a}}return n}(i,r,f*Math.abs(e))}(Math.sin(t*Math.PI*2)),used:g,chair:!0,compact:i})}function v(){return{stand:{...k({hipY:.52}),left_knee:{x:.46,y:.7},right_knee:{x:.54,y:.7},left_ankle:{x:.46,y:.88},right_ankle:{x:.54,y:.88}},air:{...k({hipY:.36}),nose:{x:.52,y:.08},left_knee:{x:.44,y:.5},right_knee:{x:.56,y:.5},left_ankle:{x:.44,y:.64},right_ankle:{x:.56,y:.64},left_wrist:{x:.38,y:.22},right_wrist:{x:.62,y:.22}}}}
1function b(e){let{compact:i,onCycle:t}=e,n=m(1.8),{stand:o,air:l}=(0,r.useMemo)(v,[]),s=(0,r.useRef)(!1),c=n<.45?d(n/.45):n<.7?1:1-d((n-.7)/.3);return(0,r.useEffect)(()=>{n>.85&&(s.current=!0),n<.2&&s.current&&(s.current=!1,null==t||t())},[n,t]),(0,a.jsx)(x,{pose:p(o,l,c),compact:i})}function P(e){let{compact:i}=e,t=(0,r.useMemo)(()=>({...k({hipY:.5}),left_knee:{x:.46,y:.68},right_knee:{x:.54,y:.68},left_ankle:{x:.46,y:.86},right_ankle:{x:.54,y:.86}}),[]);return(0,a.jsx)(x,{pose:t,compact:i})}function I(e){let{compact:i,onCycle:t}=e,n=m(3.6),{stand:o,squat:l,plank:s}=(0,r.useMemo)(_,[]),c=(0,r.useRef)(!1);(0,r.useEffect)(()=>{n>.85&&(c.current=!0),n<.2&&c.current&&(c.current=!1,null==t||t())},[n,t]);let f=o;return f=n<.22?p(o,l,d(n/.22)):n<.45?p(l,s,d((n-.22)/.23)):n<.68?p(s,l,d((n-.45)/.23)):p(l,o,d((n-.68)/.32)),(0,a.jsx)(x,{pose:f,compact:i})}function H(e){let{media:i,fill:t=!1,compact:l=!0,onCycle:s}=e,d=(0,r.useMemo)(()=>f.has(i)?null:"splits"===i?(0,n.ZU)("split")||null:(0,n.ZU)(i)||null,[i]),p=null;return p=d?(0,a.jsx)(o.Z,{movement:d,view:"squat"===i?"profile":"face",compact:l,fill:t,dual:!1,onCycle:s}):"push_up"===i?(0,a.jsx)(y,{compact:l}):"neck"===i?(0,a.jsx)(w,{compact:l}):"burpee"===i?(0,a.jsx)(I,{compact:l,onCycle:s}):f.has(i)?(0,a.jsx)(b,{compact:l,onCycle:s}):(0,a.jsx)(P,{compact:l}),(0,a.jsx)("div",{className:"".concat(c().media," ").concat(t?c().mediaFill:""),children:p})}},65142:function(e,i,t){"use strict";t.d(i,{AS:function(){return o},Au:function(){return r},Wb:function(){return l},Xh:function(){return c},Z5:function(){return s},Ze:function(){return a}});let a=["fitness","wellness","stretching","official","flexibility"],r="fitness",n=[{id:"wellness-shoulder-rolls",section:"wellness",title:"Shoulder rolls",prompt:"How do I integrate PoseTracker in my wellness app so a user can do guided shoulder rolls and we count each repetition?",kind:"integration",media:"shoulder_roll",spec:{stack:"iframe",exercise:"shoulder_roll",engine:"v4",params:{skeleton:"true"}}},{id:"wellness-breathing",section:"wellness",title:"Guided breathing",prompt:"How do I integrate PoseTracker in my wellness app to guide a seated shoulder breathing exercise and track each breath cycle?",kind:"integration",media:"shoulder_deep_breath",spec:{stack:"iframe",exercise:"shoulder_deep_breath",engine:"v4",params:{skeleton:"true"}}},{id:"wellness-neck",section:"wellness",title:"Neck mobility",prompt:"How do I integrate PoseTracker in my wellness app so a user can do a seated neck mobility routine at their desk?",kind:"redirect",media:"neck"},{id:"fitness-squat-60",section:"fitness",title:"60-second squat test",prompt:"How do I integrate PoseTracker in my app so I can count how many squats a user can do in 60 seconds?",kind:"integration",media:"squat",spec:{stack:"iframe",exercise:"squat",engine:"v4",params:{skeleton:"true",timer:"true",timerSeconds:"60"}}},{id:"fitness-pushup-60",section:"fitness",title:"60-second push-up test",prompt:"How do I integrate PoseTracker in my fitness app to run a 60-second push-up test and count every valid rep?",kind:"integration",media:"push_up",spec:{stack:"iframe",exercise:"push_up",engine:"v4",params:{skeleton:"true",timer:"true",timerSeconds:"60"}}},{id:"fitness-burpee-60",section:"fitness",title:"Burpee test",prompt:"How do I integrate PoseTracker in my app to count burpees during a 60-second fitness test?",kind:"redirect",media:"burpee"},{id:"stretching-side",section:"stretching",title:"Seated side stretch",prompt:"How do I integrate PoseTracker in my stretching app so a user can do a seated side stretch and we track each side?",kind:"integration",media:"chair_side_stretch",spec:{stack:"iframe",exercise:"chair_side_stretch",engine:"v4",params:{skeleton:"true"}}},{id:"stretching-fold",section:"stretching",title:"Seated forward fold",prompt:"How do I integrate PoseTracker in my flexibility app to track a seated forward fold and hold time?",kind:"integration",media:"chair_forward_fold",spec:{stack:"iframe",exercise:"chair_forward_fold",engine:"v4",params:{skeleton:"true"}}},{id:"stretching-splits",section:"stretching",title:"Front splits",prompt:"How do I integrate PoseTracker in my stretching app so I can measure a user's front split and show the hip angle as they go deeper?",kind:"redirect",media:"splits"},{id:"official-squat",section:"official",title:"Squat",prompt:"How do I integrate the official PoseTracker squat catalog movement?",kind:"integration",media:"squat",spec:{stack:"iframe",exercise:"squat",engine:"v4",params:{skeleton:"true"}}},{id:"official-push-up",section:"official",title:"Push-up",prompt:"How do I integrate the official PoseTracker push-up catalog movement?",kind:"integration",media:"push_up",spec:{stack:"iframe",exercise:"push_up",engine:"v4",params:{skeleton:"true"}}},{id:"official-lunge",section:"official",title:"Lunge",prompt:"How do I integrate the official PoseTracker lunge catalog movement?",kind:"integration",media:"lunge",spec:{stack:"iframe",exercise:"lunge",engine:"v4",params:{skeleton:"true"}}},{id:"official-side-lunge",section:"official",title:"Side lunge",prompt:"How do I integrate the official PoseTracker side-lunge catalog movement?",kind:"integration",media:"side_lunge",spec:{stack:"iframe",exercise:"side_lunge",engine:"v4",params:{skeleton:"true"}}},{id:"official-deadlift",section:"official",title:"Deadlift",prompt:"How do I integrate the official PoseTracker deadlift catalog movement?",kind:"integration",media:"deadlift",spec:{stack:"iframe",exercise:"deadlift",engine:"v4",params:{skeleton:"true"}}},{id:"official-bicep-curl",section:"official",title:"Bicep curl",prompt:"How do I integrate the official PoseTracker bicep-curl catalog movement?",kind:"integration",media:"bicep_curl",spec:{stack:"iframe",exercise:"bicep_curl",engine:"v4",params:{skeleton:"true"}}},{id:"official-hammer-curl",section:"official",title:"Hammer curl",prompt:"How do I integrate the official PoseTracker hammer-curl catalog movement?",kind:"integration",media:"hammer_curl",spec:{stack:"iframe",exercise:"hammer_curl",engine:"v4",params:{skeleton:"true"}}},{id:"official-tricep-dip",section:"official",title:"Tricep dip",prompt:"How do I integrate the official PoseTracker tricep-dip catalog movement?",kind:"integration",media:"tricep_dip",spec:{stack:"iframe",exercise:"tricep_dip",engine:"v4",params:{skeleton:"true"}}},{id:"official-shoulder-press",section:"official",title:"Shoulder press",prompt:"How do I integrate the official PoseTracker shoulder-press catalog movement?",kind:"integration",media:"shoulder_press",spec:{stack:"iframe",exercise:"shoulder_press",engine:"v4",params:{skeleton:"true"}}},{id:"official-lateral-raise",section:"official",title:"Lateral raise",prompt:"How do I integrate the official PoseTracker lateral-raise catalog movement?",kind:"integration",media:"lateral_raise",spec:{stack:"iframe",exercise:"lateral_raise",engine:"v4",params:{skeleton:"true"}}},{id:"official-glute-bridge",section:"official",title:"Glute bridge",prompt:"How do I integrate the official PoseTracker glute-bridge catalog movement?",kind:"integration",media:"glute_bridge",spec:{stack:"iframe",exercise:"glute_bridge",engine:"v4",params:{skeleton:"true"}}},{id:"official-calf-raise",section:"official",title:"Calf raise",prompt:"How do I integrate the official PoseTracker calf-raise catalog movement?",kind:"integration",media:"calf_raise",spec:{stack:"iframe",exercise:"calf_raise",engine:"v4",params:{skeleton:"true"}}},{id:"official-mountain-climber",section:"official",title:"Mountain climber",prompt:"How do I integrate the official PoseTracker mountain-climber catalog movement?",kind:"integration",media:"mountain_climber",spec:{stack:"iframe",exercise:"mountain_climber",engine:"v4",params:{skeleton:"true"}}},{id:"official-high-knees",section:"official",title:"High knees",prompt:"How do I integrate the official PoseTracker high-knees catalog movement?",kind:"integration",media:"high_knees",spec:{stack:"iframe",exercise:"high_knees",engine:"v4",params:{skeleton:"true"}}},{id:"official-jumping-jack",section:"official",title:"Jumping jack",prompt:"How do I integrate the official PoseTracker jumping-jack catalog movement?",kind:"integration",media:"jumping_jack",spec:{stack:"iframe",exercise:"jumping_jack",engine:"v4",params:{skeleton:"true"}}},{id:"official-leg-raise",section:"official",title:"Leg raise",prompt:"How do I integrate the official PoseTracker leg-raise catalog movement?",kind:"integration",media:"leg_raise",spec:{stack:"iframe",exercise:"leg_raise",engine:"v4",params:{skeleton:"true"}}},{id:"official-low-impact-jack",section:"official",title:"Low-impact jack",prompt:"How do I integrate the official PoseTracker low-impact-jack catalog movement?",kind:"integration",media:"low_impact_jack",spec:{stack:"iframe",exercise:"low_impact_jack",engine:"v4",params:{skeleton:"true"}}},{id:"official-plank",section:"official",title:"Plank",prompt:"How do I integrate the official PoseTracker plank hold catalog movement?",kind:"integration",media:"plank",
1spec:{stack:"iframe",exercise:"plank",engine:"v4",params:{skeleton:"true"}}},{id:"official-wall-sit",section:"official",title:"Wall sit",prompt:"How do I integrate the official PoseTracker wall-sit catalog movement?",kind:"integration",media:"wall_sit",spec:{stack:"iframe",exercise:"wall_sit",engine:"v4",params:{skeleton:"true"}}},{id:"official-balance-leg",section:"official",title:"Single-leg balance",prompt:"How do I integrate the official PoseTracker single-leg balance catalog movement?",kind:"integration",media:"balance_leg",spec:{stack:"iframe",exercise:"balance_leg",engine:"v4",params:{skeleton:"true"}}},{id:"official-balance-leg-left",section:"official",title:"Left-leg balance",prompt:"How do I integrate the official PoseTracker left-leg balance catalog movement?",kind:"integration",media:"balance_leg_left",spec:{stack:"iframe",exercise:"balance_leg_left",engine:"v4",params:{skeleton:"true"}}},{id:"official-balance-leg-right",section:"official",title:"Right-leg balance",prompt:"How do I integrate the official PoseTracker right-leg balance catalog movement?",kind:"integration",media:"balance_leg_right",spec:{stack:"iframe",exercise:"balance_leg_right",engine:"v4",params:{skeleton:"true"}}},{id:"official-jump-analysis",section:"official",title:"Jump analysis",prompt:"How do I integrate PoseTracker jump analysis with the user's height?",kind:"integration",media:"jump_analysis",spec:{stack:"iframe",exercise:"jump_analysis",engine:"v4",params:{skeleton:"true",userHeightCm:"170"}}},{id:"official-air-time-jump",section:"official",title:"Air-time jump",prompt:"How do I integrate PoseTracker to measure air time on a jump?",kind:"integration",media:"air_time_jump",spec:{stack:"iframe",exercise:"air_time_jump",engine:"v4",params:{skeleton:"true"}}},{id:"flex-split",section:"flexibility",title:"Front split",prompt:"How do I integrate the official PoseTracker front-split hold?",kind:"integration",media:"split",spec:{stack:"iframe",exercise:"split",engine:"v4",params:{skeleton:"true"}}},{id:"flex-facial-split",section:"flexibility",title:"Facial split",prompt:"How do I integrate the official PoseTracker facial-split hold?",kind:"integration",media:"facial_split",spec:{stack:"iframe",exercise:"facial_split",engine:"v4",params:{skeleton:"true"}}},{id:"flex-pancake",section:"flexibility",title:"Pancake",prompt:"How do I integrate the official PoseTracker pancake hold?",kind:"integration",media:"pancake",spec:{stack:"iframe",exercise:"pancake",engine:"v4",params:{skeleton:"true"}}},{id:"flex-closing",section:"flexibility",title:"Pike / closing",prompt:"How do I integrate the official PoseTracker pike closing hold?",kind:"integration",media:"closing",spec:{stack:"iframe",exercise:"closing",engine:"v4",params:{skeleton:"true"}}},{id:"flex-bridge",section:"flexibility",title:"Bridge",prompt:"How do I integrate the official PoseTracker bridge hold?",kind:"integration",media:"bridge",spec:{stack:"iframe",exercise:"bridge",engine:"v4",params:{skeleton:"true"}}},{id:"flex-cobra",section:"flexibility",title:"Cobra",prompt:"How do I integrate the official PoseTracker cobra hold?",kind:"integration",media:"cobra",spec:{stack:"iframe",exercise:"cobra",engine:"v4",params:{skeleton:"true"}}},{id:"flex-bow",section:"flexibility",title:"Bow",prompt:"How do I integrate the official PoseTracker bow hold?",kind:"integration",media:"bow",spec:{stack:"iframe",exercise:"bow",engine:"v4",params:{skeleton:"true"}}},{id:"flex-tiger",section:"flexibility",title:"Tiger pose",prompt:"How do I integrate the official PoseTracker tiger-pose hold?",kind:"integration",media:"tiger",spec:{stack:"iframe",exercise:"tiger",engine:"v4",params:{skeleton:"true"}}},{id:"flex-camel",section:"flexibility",title:"Camel",prompt:"How do I integrate the official PoseTracker camel hold?",kind:"integration",media:"camel",spec:{stack:"iframe",exercise:"camel",engine:"v4",params:{skeleton:"true"}}},{id:"flex-king-pigeon",section:"flexibility",title:"King pigeon",prompt:"How do I integrate the official PoseTracker king-pigeon hold?",kind:"integration",media:"king_pigeon",spec:{stack:"iframe",exercise:"king_pigeon",engine:"v4",params:{skeleton:"true"}}},{id:"flex-foot-to-hand",section:"flexibility",title:"Foot to hand",prompt:"How do I integrate the official PoseTracker foot-to-hand hold?",kind:"integration",media:"foot_to_hand",spec:{stack:"iframe",exercise:"foot_to_hand",engine:"v4",params:{skeleton:"true"}}},{id:"flex-i",section:"flexibility",title:"Standing I",prompt:"How do I integrate the official PoseTracker standing-I hold?",kind:"integration",media:"i",spec:{stack:"iframe",exercise:"i",engine:"v4",params:{skeleton:"true"}}},{id:"flex-needle",section:"flexibility",title:"Needle",prompt:"How do I integrate the official PoseTracker needle hold?",kind:"integration",media:"needle",spec:{stack:"iframe",exercise:"needle",engine:"v4",params:{skeleton:"true"}}}];function o(e){let i=String(e||"").replace(/\s+/g," ").trim();return i&&n.find(e=>e.prompt===i)||null}function l(e){return n.filter(i=>i.section===e)}function s(e){var i;let t=(null==e?void 0:null===(i=e.spec)||void 0===i?void 0:i.exercise)||((null==e?void 0:e.kind)==="integration"?e.media:"");return t?"/movements/official/".concat(t):"/movements/new"}function c(e){var i;return e?"redirect"===e.kind?{artifact:{type:"gallery_preview",galleryId:e.id,previewKind:e.media,title:e.title},livePreview:!1}:{artifact:{type:"integration",spec:e.spec,galleryId:e.id,previewKind:e.media,experimental:(null===(i=e.spec)||void 0===i?void 0:i.engine)==="v4"},livePreview:!1}:{artifact:null,livePreview:!1}}},91382:function(e,i,t){"use strict";t.d(i,{Z:function(){return f}});var a=t(85893),r=t(67294),n=t(22778),o=t(74438),l=t(94054),s=t.n(l);function c(e){var i,t;let{movement:l,view:c,t:f,compact:d,fill:p}=e,m=null==l?void 0:null===(i=l.views)||void 0===i?void 0:i[c],u=null==l?void 0:null===(t=l.cycle)||void 0===t?void 0:t.kind,g="orbit"===u,k="breath"===u,h="side_reach"===u,_=(0,n.bv)(l),x=(null==l?void 0:l.type)==="duration"&&!(0,n.pS)(l),y=(0,r.useMemo)(()=>{let e=m?(0,n.LJ)(m,l):new Set;return _&&e.add("middle_hip"),e},[m,l,_]),w=(0,r.useMemo)(()=>
1{if(!l||!m)return new Map;if(x)return(0,n.P$)(l,f,c);if(_)return(0,n.xw)(l,.5);if(g)return(0,n.vX)(l,f,"A","internal");if(k)return(0,n.Sg)(l,f,"A");if(h)return(0,n.Zk)(l,f);let e=(0,n.ry)(l,c,f,"A");return(0,n.$n)(l,c,e,f)},[l,m,c,f,x,_,g,k,h]),v=(0,r.useMemo)(()=>m?_?(0,n.vL)(w):(0,n.Ox)(m,w,c):[],[m,w,c,_]),b=(0,r.useMemo)(()=>{if(!h||"face"!==c)return[];let e=(Number(f)||0)%1<.5?"right":"left";return(0,n.Ec)(l,w,e)},[h,c,f,l,w]);if(!m)return null;let P="chair_forward_fold"===l.id||"chair_side_stretch"===l.id||"shoulder_roll"===l.id||"shoulder_deep_breath"===l.id;return(0,a.jsx)("div",{className:"".concat(s().previewPane," ").concat(p?s().previewPaneFill:""),children:(0,a.jsx)(o.Z,{compact:d,points:w,usedKeypoints:y,rings:b,overlays:v,chair:P,roundFace:P,label:"".concat(l.display_name||l.id," ").concat(c)})})}function f(e){let{movement:i,view:t="face",compact:o=!0,fill:l=!1,dual:f,stacked:d=!1,onCycle:p}=e,[m,u]=(0,r.useState)(.08),g=(0,r.useRef)(m);g.current=m;let k=(0,r.useRef)(p);k.current=p;let h=(0,r.useRef)(!1),_=(0,n.bv)(i),x=!((null==i?void 0:i.type)==="duration"&&!(0,n.pS)(i)),y=(0,n.BR)(i),w=(0,n.$_)(i,t),v=void 0!==f?f:(0,n.oc)(i);return((0,r.useEffect)(()=>{let e;if(!x)return;let i=performance.now(),t=_?5.4:y?8.8:5.2,a=r=>{var n,o;let l=(r-i)/1e3;i=r;let s=g.current,c=(s+l/t)%1;y?s<.5!=c<.5&&(null===(n=k.current)||void 0===n||n.call(k)):s>.85&&c<.2&&!h.current&&(h.current=!0,null===(o=k.current)||void 0===o||o.call(k)),c>.3&&(h.current=!1),g.current=c,u(c),e=requestAnimationFrame(a)};return e=requestAnimationFrame(a),()=>cancelAnimationFrame(e)},[x,_,y,null==i?void 0:i.id]),i)?v?(0,a.jsxs)("div",{className:"".concat(s().previewPair," ").concat(l?s().previewPairFill:""," ").concat(d?s().previewPairStacked:""),children:[(0,a.jsx)(c,{movement:i,view:"face",t:m,compact:o,fill:l}),(0,a.jsx)(c,{movement:i,view:"profile",t:m,compact:o,fill:l})]}):(0,a.jsx)(c,{movement:i,view:w,t:m,compact:o,fill:l}):null}},16247:function(e){e.exports={gallery:"gallery_gallery__WSZUS",tabs:"gallery_tabs__cKKPI",tab:"gallery_tab__QQVpr",grid:"gallery_grid__6BHqg",card:"gallery_card__HItdL",media:"gallery_media__SURuu",mediaFill:"gallery_mediaFill__GZ84w",cardMeta:"gallery_cardMeta__rkh4s",cardTitle:"gallery_cardTitle__MVanb",cardBadge:"gallery_cardBadge__DOeeX",cardActions:"gallery_cardActions__mMSXM",btnPrompt:"gallery_btnPrompt___Uhdh",btnPreview:"gallery_btnPreview__tw_AP",more:"gallery_more__KGo1Q"}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.