{"version":3,"file":"UserCountText.Gy4yGJSV.mjs","names":["React.forwardRef","React.useState","React.useState","React.useRef","__esmMin","window","init_ssg_sandbox_shims","init_npm_react_18_3_1","_e","de","p","c","J","init_jsx_runtime","ce","motion","useSVGTemplate","addPropertyControls","withCSS","cx","init_framer_DymZktPS","ControlType","mask","Base","MotionSVG","SVG","svg","getProps","Icon","init_rXHCePIVl","props","rest","animated","color","width1","alpha","restProps","href","className","qxTvv_EBh","ezTt3ayMo","lschgej4H","style","UserCountButton","users","setUsers","defaultUsers","minUsers","priceId","urlQty","initialUsers","parsed","maxUsers","handler","custom","event","evtUsers","updateUsers","clamped","next","handleClick","delta","mode","step","symbol","size","bgColor","textColor","showBorder","borderColor","init_UserCountButton","UserCountText","effectivePriceId","setEffectivePriceId","maxSeenRef","maxSeen","setMaxSeen","bumpMaxSeen","n","params","urlPriceId","useSliderQuantity","count","eventPriceId","pluralTpl","template","singularTpl","templateSingular","text","reserveStr","reserveForUsers","ghostPlural","ghostSingular","sharedTypography","weight","fontFamily","letterSpacing","wordSpacing","init_UserCountText"],"sources":["https:/framerusercontent.com/modules/RvM91VtLIONQCDM2DB6b/hKeTkWbMIpJUeTHgnOG9/rXHCePIVl.js","https:/framerusercontent.com/modules/71sclIrl6qtaBxicOupU/7EIIJswIpErYD4NCFcWP/UserCountButton.js","https:/framerusercontent.com/modules/I1AYkzlsPcCxdKSOE1Y9/9qBM0JQPdVfakZecKxCU/UserCountText.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 18 0 L 1.5 0 C 0.672 0 0 0.672 0 1.5 L 0 15 C 0 15.828 0.672 16.5 1.5 16.5 L 18 16.5 C 18.828 16.5 19.5 15.828 19.5 15 L 19.5 1.5 C 19.5 0.672 18.828 0 18 0 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"16.5px\" id=\"CcIDqS4bW\" transform=\"translate(2.25 3.75)\" width=\"19.5px\"/><path d=\"M 0 5.25 L 3.75 9 L 12.75 0\" fill=\"transparent\" height=\"9px\" id=\"txP0X4MiU\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6 7.5)\" width=\"12.75px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"4119102008\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-uMwCf\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-uMwCf { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Check\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-uMwCf\");Icon.displayName=\"Check\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Check\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function UserCountButton(props){const{priceId,mode,minUsers,maxUsers,defaultUsers,step,size,bgColor,textColor,borderRadius,showBorder,borderColor}=props;const[users,setUsers]=React.useState(defaultUsers||minUsers||1);// Broadcast initial value (respecting URL) and subscribe to changes\nReact.useEffect(()=>{if(typeof window===\"undefined\"||!priceId)return;// Read URL quantity first — override defaultUsers if present\nconst params=new URLSearchParams(window.location.search);const urlQty=params.get(\"quantity\");let initialUsers=defaultUsers||minUsers||1;if(urlQty){const parsed=parseInt(urlQty,10);if(!isNaN(parsed)&&parsed>0){initialUsers=Math.max(minUsers,Math.min(maxUsers,parsed));}}// A promo link may carry its own ?quantity=, so nothing is pinned\n// here any more — whether the code is honoured at that seat count is\n// decided by the checkout (single seat, or the volume tier and up).\nsetUsers(initialUsers);// Broadcast resolved initial value\nwindow.dispatchEvent(new CustomEvent(\"userCountChanged\",{detail:{users:initialUsers,priceId}}));const handler=event=>{const custom=event;const evtUsers=custom.detail?.users;const evtPriceId=custom.detail?.priceId;if(evtPriceId===priceId&&typeof evtUsers===\"number\"){setUsers(evtUsers);}};window.addEventListener(\"userCountChanged\",handler);return()=>window.removeEventListener(\"userCountChanged\",handler);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[priceId]);const updateUsers=next=>{if(!priceId||typeof window===\"undefined\")return;const clamped=Math.max(minUsers,Math.min(maxUsers,next));setUsers(clamped);window.dispatchEvent(new CustomEvent(\"userCountChanged\",{detail:{users:clamped,priceId}}));};const handleClick=()=>{const delta=mode===\"plus\"?step:-step;updateUsers(users+delta);};const symbol=mode===\"plus\"?\"+\":\"−\";const style={width:size,height:size,borderRadius,background:bgColor,color:textColor,border:showBorder?`1px solid ${borderColor}`:\"none\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:size*.6,lineHeight:1,padding:0,userSelect:\"none\"};return /*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleClick,\"aria-label\":mode===\"plus\"?\"Increase seats\":\"Decrease seats\",style:style,children:symbol});}addPropertyControls(UserCountButton,{priceId:{type:ControlType.String,title:\"priceId\",defaultValue:\"pri_XXXXXXXX\"},mode:{type:ControlType.SegmentedEnum,title:\"Type\",options:[\"minus\",\"plus\"],optionTitles:[\"−\",\"+\"],defaultValue:\"minus\"},minUsers:{type:ControlType.Number,title:\"Min\",defaultValue:5,min:1,max:1e3,step:1},maxUsers:{type:ControlType.Number,title:\"Max\",defaultValue:100,min:1,max:1e3,step:1},defaultUsers:{type:ControlType.Number,title:\"Default\",defaultValue:5,min:1,max:1e3,step:1},step:{type:ControlType.Number,title:\"Step\",defaultValue:1,min:1,max:100,step:1},size:{type:ControlType.Number,title:\"Size\",defaultValue:32,min:20,max:80,step:1},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:6,min:0,max:24,step:1},bgColor:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#222222\"},textColor:{type:ControlType.Color,title:\"Icon\",defaultValue:\"#FFFFFF\"},showBorder:{type:ControlType.Boolean,title:\"Border\",defaultValue:false},borderColor:{type:ControlType.Color,title:\"Border color\",defaultValue:\"#333333\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"UserCountButton\":{\"type\":\"reactComponent\",\"name\":\"UserCountButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UserCountButton.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function UserCountText(props){const{priceId,defaultUsers,useSliderQuantity,template,templateSingular,reserveForUsers,fontFamily,fontSize,weight,color,textAlign,letterSpacing,lineHeight,fontStyle,textTransform,textDecoration,wordSpacing}=props;const[effectivePriceId,setEffectivePriceId]=React.useState(priceId);const[users,setUsers]=React.useState(defaultUsers||1);// High-water mark for the largest count shown this session. The reserved\n// width is based on this, so the box only ever grows to fit a new record\n// high — it never shrinks back when the count goes down, which is what\n// would otherwise cause a jump on the way back up.\nconst maxSeenRef=React.useRef(defaultUsers||1);const[maxSeen,setMaxSeen]=React.useState(defaultUsers||1);const bumpMaxSeen=n=>{if(n>maxSeenRef.current){maxSeenRef.current=n;setMaxSeen(n);}};// Read priceId + quantity from URL on mount\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const params=new URLSearchParams(window.location.search);const urlPriceId=params.get(\"priceId\");const urlQty=params.get(\"quantity\");if(urlPriceId)setEffectivePriceId(urlPriceId);if(urlQty){const parsed=parseInt(urlQty,10);if(!isNaN(parsed)&&parsed>0){setUsers(parsed);bumpMaxSeen(parsed);}}},[]);// Sync from userCountChanged events\nReact.useEffect(()=>{if(!useSliderQuantity)return;if(typeof window===\"undefined\")return;const handler=event=>{const custom=event;const count=custom.detail?.users;const eventPriceId=custom.detail?.priceId;// Accept events matching either the URL priceId or the prop priceId\nif((eventPriceId===effectivePriceId||eventPriceId===priceId)&&typeof count===\"number\"&&count>0){setUsers(count);bumpMaxSeen(count);}};window.addEventListener(\"userCountChanged\",handler);return()=>window.removeEventListener(\"userCountChanged\",handler);},[useSliderQuantity,effectivePriceId,priceId]);// Pick the singular template only for exactly 1; everything else (2+,\n// and 0 if it ever occurs) uses the plural. Fall back to the plural\n// template if the singular one is left blank, so a half-configured\n// component still renders something sensible.\nconst pluralTpl=template||\"{users} Seats\";const singularTpl=templateSingular||pluralTpl;const activeTemplate=users===1?singularTpl:pluralTpl;const text=activeTemplate.replace(/\\{users\\}/g,String(users));// The width the box reserves is driven by the widest content it could\n// show at the reserve count: whichever template string is physically\n// longer. We render BOTH as invisible ghosts stacked in the same grid\n// cell, so the cell is as wide as the wider one regardless of which is\n// actually showing right now. Combined with tabular-nums below (every\n// digit equal width), the count can change freely without the box\n// resizing — as long as it stays within the reserved digit count.\nconst reserveN=Math.max(reserveForUsers||1,maxSeen,users);const reserveStr=String(reserveN);const ghostPlural=pluralTpl.replace(/\\{users\\}/g,reserveStr);const ghostSingular=singularTpl.replace(/\\{users\\}/g,reserveStr);const sharedTypography={fontSize,fontWeight:weight||400,fontFamily:fontFamily||\"inherit\",fontStyle,letterSpacing:`${letterSpacing}em`,wordSpacing:`${wordSpacing}em`,lineHeight,textTransform,// Tabular (monospaced) figures: \"1\" and \"9\" and \"0\" all take the\n// same horizontal space, so e.g. 9 → 10 doesn't nudge the layout.\nfontVariantNumeric:\"tabular-nums\",whiteSpace:\"nowrap\"};return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",textAlign},children:/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-grid\",// Everything shares one grid cell, so the cell (and thus\n// the box) is sized to the widest child — the ghosts.\ngridTemplateAreas:'\"stack\"'},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{...sharedTypography,gridArea:\"stack\",visibility:\"hidden\"},children:ghostPlural}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{...sharedTypography,gridArea:\"stack\",visibility:\"hidden\"},children:ghostSingular}),/*#__PURE__*/_jsx(\"span\",{style:{...sharedTypography,gridArea:\"stack\",color,textAlign,textDecoration},children:text})]})});}addPropertyControls(UserCountText,{priceId:{type:ControlType.String,title:\"Fallback priceId\",defaultValue:\"pri_XXXXXXXX\"},defaultUsers:{type:ControlType.Number,title:\"Default users\",defaultValue:5,min:1,max:1e3,step:1},useSliderQuantity:{type:ControlType.Boolean,title:\"Sync with controls\",defaultValue:true},template:{type:ControlType.String,title:\"Template (plural)\",defaultValue:\"{users} Seats\"},templateSingular:{type:ControlType.String,title:\"Template (singular)\",defaultValue:\"{users} Seat\"},reserveForUsers:{type:ControlType.Number,title:\"Reserve width for\",defaultValue:10,min:1,max:1e5,step:1},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#111111\"},fontSize:{type:ControlType.Number,title:\"Font size\",defaultValue:16,min:8,max:72,step:1},weight:{type:ControlType.Number,title:\"Font weight\",defaultValue:600,min:100,max:900,step:100},fontFamily:{type:ControlType.String,title:\"Font family\",defaultValue:\"\"},fontStyle:{type:ControlType.SegmentedEnum,title:\"Style\",options:[\"normal\",\"italic\"],optionTitles:[\"Normal\",\"Italic\"],defaultValue:\"normal\"},textTransform:{type:ControlType.Enum,title:\"Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"UPPER\",\"lower\",\"Capitalize\"],defaultValue:\"none\"},textDecoration:{type:ControlType.SegmentedEnum,title:\"Decoration\",options:[\"none\",\"underline\",\"line-through\"],optionTitles:[\"None\",\"Underline\",\"Strike\"],defaultValue:\"none\"},textAlign:{type:ControlType.SegmentedEnum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\"},letterSpacing:{type:ControlType.Number,title:\"Letter spacing (em)\",defaultValue:0,min:-.1,max:.5,step:.01},wordSpacing:{type:ControlType.Number,title:\"Word spacing (em)\",defaultValue:0,min:-.5,max:1,step:.01},lineHeight:{type:ControlType.Number,title:\"Line height\",defaultValue:1.2,min:.8,max:3,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"UserCountText\":{\"type\":\"reactComponent\",\"name\":\"UserCountText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UserCountText.map"],"mappings":"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"}