{"version":3,"file":"LoopVideo_AR_edit.BA1V1yxR.mjs","names":["useRef","useState","__esmMin","init_npm_react_18_3_1","window","ce","init_jsx_runtime","c","p","_e","de","init_ssg_sandbox_shims","addPropertyControls","init_framer_DcxuU94H","ControlType","LoopVideo","props","ref","playing","setPlaying","element","video","visible","play","follow","event","observer","entry","reduce","visitorPaused","pauseEvent","toggle","posterSrc","poster","statusParts","status","statusShort","captionShort","caption","target","newTab","showTalk","overlay","showAction","link","below","barPosition","width","bubbleWidth","bubbleStyle","bubbleFill","bubbleText","bubbleRadius","height","barHeight","control","barStyle","barFill","barRadius","statusStyle","statusFill","statusText","gap","barInset","barWrapStyle","iconStyle","barText","actionRadius","captionStyle","actionStyle","bar","MicIcon","CameraOffIcon","action","style","radius","inset","size","css","label","fit","PauseIcon","PlayIcon","speaker","greeting","sans","medium","mono","init_LoopVideo_AR_edit"],"sources":["https:/framerusercontent.com/modules/gDHH90tzzBEl3Tkjmkq6/Wq1tAzcyQbNOS04pSRPC/LoopVideo_AR_edit.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const sans=`\"SuisseIntl-Regular \\xb6\", \"Suisse Intl\", system-ui, sans-serif`;const medium=`\"SuisseIntl-Medium \\xb6\", \"Suisse Intl\", system-ui, sans-serif`;const mono=`\"SuisseIntlMono-Regular-WebS \\xb6\", \"Suisse Intl Mono\", ui-monospace, monospace`;const css=`\n.emma-call {\n    container: emma-call / inline-size;\n    display: flex;\n    flex-direction: column;\n}\n/* The video area: everything except a bar placed below it. */\n.emma-call-stage {\n    position: relative;\n    flex: 1 1 auto;\n    min-height: 0;\n}\n/* The card link sits over the whole card, under the overlay. The pause button\n   is a sibling above it, not inside it, so pausing never follows the link.\n   pointer-events is set here because a parent layer in Framer can turn it off,\n   and the link would otherwise inherit that and ignore clicks. */\n.emma-call-link {\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    border-radius: inherit;\n    cursor: pointer;\n    pointer-events: auto;\n    -webkit-tap-highlight-color: transparent;\n}\n.emma-call-link:focus-visible {\n    outline: 2px solid #57739e;\n    outline-offset: -2px;\n}\n.emma-call-top,\n.emma-call-bottom {\n    --inset: var(--inset-max);\n    position: absolute;\n    z-index: 2;\n    left: var(--inset);\n    right: var(--inset);\n    pointer-events: none;\n}\n.emma-call-top {\n    /* The visible size of the pause button; its tap area stays 44px. */\n    --toggle: var(--toggle-max);\n    top: calc(var(--inset) - 7px);\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n}\n.emma-call-status {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    height: 30px;\n    padding: 0 12px;\n    border-radius: 999px;\n    background: rgba(17, 17, 20, 0.88);\n    color: #fff;\n    font: 11px/1 ${mono};\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    white-space: nowrap;\n}\n.emma-call-dot {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: #b4c4ba;\n}\n.emma-call-toggle,\n.emma-call-action {\n    scroll-margin-top: 96px;\n}\n/* The negative margin lines the visible button up with the inset. */\n.emma-call-toggle {\n    margin: 0 calc((var(--toggle) - 44px) / 2) 0 auto;\n    width: 44px;\n    height: 44px;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    pointer-events: auto;\n    -webkit-tap-highlight-color: transparent;\n}\n.emma-call-toggle span {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: var(--toggle);\n    height: var(--toggle);\n    border-radius: 50%;\n    color: #fff;\n    background: rgba(17, 17, 20, 0.55);\n    transition: background 0.15s ease;\n}\n@media (hover: hover) {\n    .emma-call-toggle:hover span {\n        background: rgba(17, 17, 20, 0.75);\n    }\n}\n.emma-call-toggle:focus-visible {\n    outline: none;\n}\n.emma-call-toggle:focus-visible span {\n    outline: 2px solid #fff;\n    outline-offset: 2px;\n}\n.emma-call-bottom {\n    left: 0;\n    right: 0;\n    bottom: 0;\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 12px;\n}\n.emma-call-bubble {\n    margin: 0 var(--inset);\n    max-width: min(380px, 72%);\n    padding: 12px 16px 14px;\n    border-radius: 16px;\n    background: #fff;\n    box-shadow: 0 8px 24px rgba(17, 17, 20, 0.12);\n    color: #181818;\n    font: 17px/1.35 ${sans};\n    letter-spacing: -0.01em;\n}\n.emma-call-speaker {\n    display: block;\n    margin-bottom: 6px;\n    color: #57739e;\n    font: 11px/1 ${mono};\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n}\n/* The bar lets clicks through to the card link; only the talk button catches them. */\n.emma-call-bar {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    width: 100%;\n    padding: 7px;\n    border-radius: 999px;\n    background: #fff;\n    box-shadow: 0 8px 24px rgba(17, 17, 20, 0.14);\n    pointer-events: none;\n}\n/* --control is set only when Bar Height is set; otherwise each size step\n   below picks the size. */\n.emma-call-icon {\n    box-sizing: border-box;\n    flex: none;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: var(--control, 44px);\n    height: var(--control, 44px);\n    border: 1px solid #e1e1e1;\n    border-radius: 50%;\n    color: #181818;\n}\n.emma-call-caption {\n    flex: 1;\n    min-width: 0;\n    margin-left: 4px;\n    overflow: hidden;\n    color: #767676;\n    font: 11px/1 ${mono};\n    letter-spacing: 0.08em;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n    white-space: nowrap;\n}\n.emma-call-action {\n    flex: none;\n    margin-left: auto;\n    display: inline-flex;\n    align-items: center;\n    height: var(--control, 44px);\n    padding: 0 22px;\n    border-radius: 999px;\n    background: #57739e;\n    color: #fff;\n    font: 15px/1 ${medium};\n    letter-spacing: -0.01em;\n    text-decoration: none;\n    white-space: nowrap;\n    pointer-events: auto;\n    transition: background 0.15s ease;\n}\n/* The link covers the whole bar, so a tap on the icons or caption starts too. */\n.emma-call-action::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    border-radius: inherit;\n}\n@media (hover: hover) {\n    .emma-call-action:hover {\n        background: #4b6690;\n    }\n}\n.emma-call-action:focus-visible {\n    outline: 2px solid #57739e;\n    outline-offset: 2px;\n}\n/* With the bar below the video, the bubble keeps the inset from the video's bottom edge. */\n.emma-call-bar-below .emma-call-bubble {\n    margin-bottom: var(--inset);\n}\n/* Compact cards: a shorter bubble without the speaker row keeps her lips clear. */\n@container emma-call (max-width: 519px) {\n    .emma-call-top,\n    .emma-call-bottom {\n        --inset: min(var(--inset-max), 12px);\n    }\n    .emma-call-bottom {\n        gap: 8px;\n    }\n    .emma-call-bubble {\n        padding: 10px 14px 12px;\n        font-size: 15px;\n    }\n    .emma-call-speaker {\n        display: none;\n    }\n    .emma-call-bar {\n        padding: 6px;\n    }\n    .emma-call-icon {\n        width: var(--control, 36px);\n        height: var(--control, 36px);\n    }\n    .emma-call-action {\n        height: var(--control, 40px);\n        padding: 0 18px;\n        font-size: 14px;\n    }\n}\n.emma-call-short {\n    display: none;\n}\n/* The caption and status each have a short form: the part before \" \\xb7 \" for\n   the caption, the part after it for the status, so \"AI avatar\" stays. */\n@container emma-call (max-width: 479px) {\n    .emma-call-caption .emma-call-full {\n        display: none;\n    }\n    .emma-call-caption .emma-call-short {\n        display: inline;\n    }\n}\n@container emma-call (max-width: 339px) {\n    .emma-call-caption {\n        display: none;\n    }\n}\n/* Small cards: no bubble, and a shorter status pill that stays off her hair. */\n@container emma-call (max-width: 399px) {\n    .emma-call-bubble,\n    .emma-call-dot,\n    .emma-call-status .emma-call-full {\n        display: none;\n    }\n    .emma-call-status .emma-call-short {\n        display: inline;\n    }\n    .emma-call-status {\n        height: 26px;\n        padding: 0 10px;\n        font-size: 10px;\n    }\n}\n/* Phone-sized cards: everything scales down so the controls don't crowd her\n   face. Tap areas stay at least 30px, and the pause button's stays 44px. */\n@container emma-call (max-width: 299px) {\n    .emma-call-top,\n    .emma-call-bottom {\n        --inset: min(var(--inset-max), 8px);\n    }\n    .emma-call-top {\n        --toggle: min(var(--toggle-max), 28px);\n        top: calc(var(--inset) - 8px);\n    }\n    .emma-call-toggle svg {\n        width: 12px;\n        height: 12px;\n    }\n    .emma-call-status {\n        height: 22px;\n        padding: 0 8px;\n        font-size: 9px;\n        letter-spacing: 0.06em;\n    }\n    .emma-call-bar {\n        gap: 6px;\n        padding: 5px;\n    }\n    .emma-call-icon {\n        width: min(var(--control, 30px), 30px);\n        height: min(var(--control, 30px), 30px);\n    }\n    .emma-call-icon svg {\n        width: 15px;\n        height: 15px;\n    }\n    .emma-call-action {\n        height: min(var(--control, 30px), 30px);\n        padding: 0 12px;\n        font-size: 13px;\n    }\n}\n`;// The page has one instance per breakpoint; a visitor's pause applies to all\n// of them, so resizing, zooming or rotating doesn't restart the loop.\nconst pauseEvent=\"emma-loop-pause\";let visitorPaused=false;/**\n * Emma's call card: a muted, looping video with a call screen drawn over it\n * (status pill, Emma's opening line, and a control bar placed below the video\n * or over it). With a Link set, the whole card follows it, with or without the\n * Call UI; the pause/play button sits above the link and never follows it. The\n * talk button shows when there is a link and Talk Button is set to Show. The\n * pause/play button meets WCAG 2.2.2. The loop plays only while the card is on\n * screen, and never on its own when the visitor prefers reduced motion, so the\n * poster stands in until then. Narrower cards shrink the bubble, shorten the\n * bar's caption, then drop the bubble and shorten the status pill to its last\n * part (\"AI avatar\"), and below 300px scale the pill, buttons and bar down, so\n * the overlay stays clear of her eyes, mouth and hair while the AI disclosure\n * stays on the card. The bubble is illustration, hidden from screen readers.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 480\n * @framerIntrinsicHeight 480\n */export default function LoopVideo(props){const{video,poster,label,fit,radius,size,inset,overlay,status,speaker,greeting,caption,action,showAction=true,link,newTab=false,bubbleFill=\"#ffffff\",bubbleText=\"#181818\",bubbleRadius=16,barFill=\"#ffffff\",barText=\"#181818\",barRadius=0,barHeight=0,actionRadius=0,barPosition=\"below\",barInset=0,background=\"rgba(0, 0, 0, 0)\",bubbleWidth=0,statusFill=\"rgba(17, 17, 20, 0.88)\",statusText=\"#ffffff\",style}=props;const ref=useRef(null);const[playing,setPlaying]=useState(false);useEffect(()=>{const element=ref.current;if(!element||!video)return;let visible=false;const play=()=>{element.muted=true;element.play().catch(()=>{});};const follow=event=>{if(event.detail)element.pause();else if(visible)play();};const observer=new IntersectionObserver(([entry])=>{visible=entry.isIntersecting;const reduce=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(!visible)element.pause();else if(!visitorPaused&&!reduce)play();});observer.observe(element);window.addEventListener(pauseEvent,follow);return()=>{observer.disconnect();window.removeEventListener(pauseEvent,follow);};},[video]);const toggle=()=>{const element=ref.current;if(!element)return;visitorPaused=!element.paused;window.dispatchEvent(new CustomEvent(pauseEvent,{detail:visitorPaused}));};const posterSrc=typeof poster===\"string\"?poster:poster?.src;const statusParts=String(status).split(\" \\xb7 \");const statusShort=statusParts[statusParts.length-1];const captionShort=String(caption).split(\" \\xb7 \")[0];// Both links share the destination and the New Tab setting.\nconst target=newTab?{target:\"_blank\",rel:\"noopener noreferrer\"}:{};const showTalk=Boolean(overlay&&showAction&&link);// Bubble and bar styling goes straight onto each element as inline style,\n// which wins over the stylesheet above. The icons and talk button share\n// Button Radius.\nconst below=barPosition!==\"over\";const width=Number(bubbleWidth);const bubbleStyle={background:bubbleFill,color:bubbleText,borderRadius:Number(bubbleRadius),// 0 keeps the automatic width, which fits the text.\n...width>0?{width,maxWidth:\"calc(100% - 2 * var(--inset))\"}:{}};// Bar Height 0 keeps the automatic height (58px, 48px on compact cards,\n// 40px on phone-sized ones). A set height centres the icons and button; on\n// a short bar they shrink to leave 7px above and below. The size goes in\n// --control, so the stylesheet can still cap it on phone-sized cards.\nconst height=Number(barHeight);const control=height>0?Math.max(24,Math.min(44,height-14)):null;const barStyle={background:barFill,borderRadius:Number(barRadius),...height>0?{height,paddingTop:0,paddingBottom:0}:{},...control?{[\"--control\"]:`${control}px`}:{}};const statusStyle={background:statusFill,color:statusText};// Over the video the inset is a margin inside the overlay; below it, padding\n// around the bar. Below the video, the wrapper sits above the card link but\n// lets clicks through to it.\nconst gap=Number(barInset);const barWrapStyle=below?{flex:\"none\",padding:gap,position:\"relative\",zIndex:2,pointerEvents:\"none\"}:{alignSelf:\"stretch\",margin:`0 ${gap}px ${gap}px`};const iconStyle={color:barText,borderColor:`color-mix(in srgb, ${barText} 14%, transparent)`,borderRadius:`min(50%, ${Number(actionRadius)}px)`};const captionStyle={color:`color-mix(in srgb, ${barText} 62%, transparent)`};const actionStyle={borderRadius:Number(actionRadius)};const bar=/*#__PURE__*/_jsxs(\"div\",{className:\"emma-call-bar\",style:barStyle,children:[/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-icon\",\"aria-hidden\":\"true\",style:iconStyle,children:/*#__PURE__*/_jsx(MicIcon,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-icon\",\"aria-hidden\":\"true\",style:iconStyle,children:/*#__PURE__*/_jsx(CameraOffIcon,{})}),/*#__PURE__*/_jsxs(\"span\",{className:\"emma-call-caption\",style:captionStyle,children:[/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-full\",children:caption}),/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-short\",children:captionShort})]}),showTalk&&/*#__PURE__*/_jsx(\"a\",{className:\"emma-call-action\",href:link,style:actionStyle,...target,children:action})]});return /*#__PURE__*/_jsxs(\"div\",{className:below?\"emma-call emma-call-bar-below\":\"emma-call\",style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,background,[\"--inset-max\"]:`${inset}px`,[\"--toggle-max\"]:`${size}px`},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),link&&// When the talk button is showing it is the link keyboard and\n// screen reader users reach, so this one stays out of their way.\n/*#__PURE__*/_jsx(\"a\",{className:\"emma-call-link\",href:link,\"aria-label\":showTalk?undefined:action||label,\"aria-hidden\":showTalk?true:undefined,tabIndex:showTalk?-1:undefined,...target}),/*#__PURE__*/_jsxs(\"div\",{className:\"emma-call-stage\",children:[/*#__PURE__*/_jsx(\"video\",{ref:ref,src:video,poster:posterSrc,\"aria-label\":label,muted:true,loop:true,playsInline:true,disableRemotePlayback:true,preload:\"auto\",onPlay:()=>setPlaying(true),onPause:()=>setPlaying(false),style:{position:\"absolute\",inset:0,display:\"block\",width:\"100%\",height:\"100%\",objectFit:fit,// Round only the corners that touch the card's edge.\nborderRadius:overlay&&below?`${radius}px ${radius}px 0 0`:radius}}),/*#__PURE__*/_jsxs(\"div\",{className:\"emma-call-top\",children:[overlay&&/*#__PURE__*/_jsxs(\"span\",{className:\"emma-call-status\",style:statusStyle,children:[/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-dot\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-full\",children:status}),/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-short\",children:statusShort})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"emma-call-toggle\",\"aria-label\":playing?\"Pause video\":\"Play video\",onClick:toggle,children:/*#__PURE__*/_jsx(\"span\",{children:playing?/*#__PURE__*/_jsx(PauseIcon,{}):/*#__PURE__*/_jsx(PlayIcon,{})})})]}),overlay&&/*#__PURE__*/_jsxs(\"div\",{className:\"emma-call-bottom\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"emma-call-bubble\",\"aria-hidden\":\"true\",style:bubbleStyle,children:[/*#__PURE__*/_jsx(\"span\",{className:\"emma-call-speaker\",children:speaker}),greeting]}),!below&&/*#__PURE__*/_jsx(\"div\",{style:barWrapStyle,children:bar})]})]}),overlay&&below&&/*#__PURE__*/_jsx(\"div\",{style:barWrapStyle,children:bar})]});}function PauseIcon(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"2.5\",width:\"3\",height:\"9\",rx:\"1\",fill:\"currentColor\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"8\",y:\"2.5\",width:\"3\",height:\"9\",rx:\"1\",fill:\"currentColor\"})]});}function PlayIcon(){return /*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M4.5 3v8l6.5-4z\",fill:\"currentColor\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinejoin:\"round\"})});}function MicIcon(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"9\",y:\"3\",width:\"6\",height:\"11\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5.5 11a6.5 6.5 0 0 0 13 0\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 17.5V21\"})]});}function CameraOffIcon(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M15.5 10.2 21 7v10l-5.5-3.2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 6h5a1.5 1.5 0 0 1 1.5 1.5V12m0 4.5A1.5 1.5 0 0 1 14 18H4.5A1.5 1.5 0 0 1 3 16.5v-9A1.5 1.5 0 0 1 4.5 6\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3 3l18 18\"})]});}addPropertyControls(LoopVideo,{link:{title:\"Link\",type:ControlType.Link,description:\"The whole card links here, and so does the talk button.\"},newTab:{title:\"New Tab\",type:ControlType.Boolean,defaultValue:false,hidden:props=>!props.link},video:{title:\"Video\",type:ControlType.File,allowedFileTypes:[\"mp4\",\"webm\"]},poster:{title:\"Poster\",type:ControlType.ResponsiveImage},label:{title:\"Label\",type:ControlType.String,defaultValue:\"Emma, Nuance's AI avatar\"},fit:{title:\"Fit\",type:ControlType.Enum,options:[\"cover\",\"contain\"],optionTitles:[\"Fill\",\"Fit\"],defaultValue:\"cover\"},radius:{title:\"Radius\",type:ControlType.Number,defaultValue:24,min:0,max:48,step:1,unit:\"px\"},size:{title:\"Button\",type:ControlType.Number,description:\"Capped at 28px on cards narrower than 300px.\",defaultValue:36,min:24,max:44,step:1,unit:\"px\"},inset:{title:\"Inset\",type:ControlType.Number,description:\"Capped at 12px under 520px wide, 8px under 300px.\",defaultValue:16,min:0,max:48,step:1,unit:\"px\"},overlay:{title:\"Call UI\",type:ControlType.Boolean,defaultValue:true},status:{title:\"Status\",type:ControlType.String,defaultValue:\"Emma \\xb7 AI avatar\",hidden:props=>!props.overlay},statusFill:{title:\"Status Fill\",type:ControlType.Color,defaultValue:\"rgba(17, 17, 20, 0.88)\",hidden:props=>!props.overlay},statusText:{title:\"Status Text\",type:ControlType.Color,defaultValue:\"#ffffff\",hidden:props=>!props.overlay},speaker:{title:\"Speaker\",type:ControlType.String,defaultValue:\"Emma\",hidden:props=>!props.overlay},greeting:{title:\"Greeting\",type:ControlType.String,defaultValue:\"Hi! I'm Emma. What should I call you?\",displayTextArea:true,hidden:props=>!props.overlay},bubbleFill:{title:\"Bubble Fill\",type:ControlType.Color,defaultValue:\"#ffffff\",hidden:props=>!props.overlay},bubbleText:{title:\"Bubble Text\",type:ControlType.Color,defaultValue:\"#181818\",hidden:props=>!props.overlay},bubbleWidth:{title:\"Bubble Width\",type:ControlType.Number,description:\"0 fits the text.\",defaultValue:0,min:0,max:600,step:10,unit:\"px\",hidden:props=>!props.overlay},bubbleRadius:{title:\"Bubble Radius\",type:ControlType.Number,defaultValue:16,min:0,max:32,step:1,unit:\"px\",hidden:props=>!props.overlay},barPosition:{title:\"Bar\",type:ControlType.Enum,options:[\"below\",\"over\"],optionTitles:[\"Below video\",\"Over video\"],displaySegmentedControl:true,defaultValue:\"below\",hidden:props=>!props.overlay},barInset:{title:\"Bar Inset\",type:ControlType.Number,description:\"Space around the bar. 0 runs it edge to edge.\",defaultValue:0,min:0,max:48,step:1,unit:\"px\",hidden:props=>!props.overlay},background:{title:\"Card Fill\",type:ControlType.Color,description:\"Shows around an inset bar, and behind a video set to Fit.\",defaultValue:\"rgba(0, 0, 0, 0)\"},barFill:{title:\"Bar Fill\",type:ControlType.Color,defaultValue:\"#ffffff\",hidden:props=>!props.overlay},barText:{title:\"Bar Text\",type:ControlType.Color,description:\"Caption and icons. The icon rings use a lighter shade.\",defaultValue:\"#181818\",hidden:props=>!props.overlay},barRadius:{title:\"Bar Radius\",type:ControlType.Number,description:\"29 or more makes a full pill.\",defaultValue:0,min:0,max:40,step:1,unit:\"px\",hidden:props=>!props.overlay},barHeight:{title:\"Bar Height\",type:ControlType.Number,description:\"0 sets it automatically. Under 300px wide, the icons and button stay 30px or smaller.\",defaultValue:0,min:0,max:120,step:1,unit:\"px\",hidden:props=>!props.overlay},caption:{title:\"Caption\",type:ControlType.String,defaultValue:\"Mic needed \\xb7 Camera optional\",hidden:props=>!props.overlay},showAction:{title:\"Talk Button\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:true,hidden:props=>!props.overlay},action:{title:\"Action\",type:ControlType.String,description:\"Also the card link's name for screen readers.\",defaultValue:\"Start talking\",hidden:props=>!props.overlay||props.showAction===false},actionRadius:{title:\"Button Radius\",type:ControlType.Number,description:\"The talk button and the mic and camera icons. 22 or more makes them fully round.\",defaultValue:0,min:0,max:30,step:1,unit:\"px\",hidden:props=>!props.overlay}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoopVideo\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"480\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"480\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoopVideo_AR_edit.map"],"mappings":"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"}