{"version":3,"file":"StackMapR2.eEV7MkI9.mjs","names":["useRef","useState","c"],"sources":["https:/framerusercontent.com/modules/7ysiE80xg908Gr1DIAs2/S7oRRhIkEJegKqNvzqGB/StackMapR2.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{useInView,useReducedMotion}from\"framer-motion\";import{useEffect,useRef,useState}from\"react\";// ---- the project's own logo assets (the page's old Works with tiles and the home deal line use the same files) ----\nconst LOGO={teams:\"https://framerusercontent.com/images/BhKRUzWkOiZt94hHXZGRyizN8PE.webp\",zoom:\"https://framerusercontent.com/images/fRItvsChKcmTs7n5ks0Z54govM.webp\",hubspot:\"https://framerusercontent.com/images/Z5JjprfIdcpAvaOrv4NY8c5bg8.webp\",salesforce:\"https://framerusercontent.com/images/ldH1V9Sx9Hc6VivhdgZmQQfJM.png\",dynamics:\"https://framerusercontent.com/images/BsYMoMUvYvSjGSuucnRlABA36c8.png\",gcal:\"https://framerusercontent.com/images/DhSGKogdDNnWg4yBUGPX2Xfmdy4.webp\",outlook:\"https://framerusercontent.com/images/KrzPKTAe9iKDw7niRs9WyC08OQ.webp\",gdrive:\"https://framerusercontent.com/images/HfFGneJYM8YoN7x9e36R7Xc4EFs.webp\",onedrive:\"https://framerusercontent.com/images/VeMZBG7tnX3l2VUS5hkJ41DoW0.png\"};// R5-1: the site nav's Ricavi logo (Navigation GyGWFeHEW, layer \"logo\"; also the landing header and the site footer's\n// dark card): the mark and the wordmark, burnt peach (#ff584a), viewBox 2587.94 x 493.92. The mark is the square at the\n// left, x 8 to 492 of the file's units: as wide as the logo is tall.\nconst RICAVI_LOGO=\"https://framerusercontent.com/images/e1vlzFtabwMMX4nkmQvqafV82Sc.svg\";const RICAVI_LOGO_RATIO=2587.94/493.92;/** Narrower than this (the brand row's own width), the logo shows its mark alone. */const MARK_ONLY_BELOW=220;// ---- the drafted CRM update: the Brightwell Actions render (product-shots/v3/actions.png, 2880x1800), the \"Up next\"\n// row \"Move Pathloom to Discovery in the pipeline\" with its \"Update CRM\" button. Two pieces of the one row, in percent\n// of the render: the icon and the title, then the button; the grey deal meta between them is left out so the row\n// fits a card. Measured 15 Oct 2026 (row y 1296 to 1375; icon x 968; title to x 1647; button x 2154 to 2359). ----\nconst DRAFT_SOURCE=\"https://framerusercontent.com/images/9ng29iCMWajDIZ0dfh9NxBBXk.png\";const DRAFT_W=2880;const DRAFT_H=1800;const DRAFT_BG=\"#F8F8F7\";/** Render px between the two pieces. */const DRAFT_GAP=24;// ---- the phone re-set of the draft row (C7, M5). The phone-native Actions render (product-shots/phone/actions-phone.png,\n// 1140x2160 at 3x; product-shots/phone/urls.json \"actions-phone\", the file CrmApprovalSteps uses): its \"Up next\" row, the\n// icon (x 77 to 166, y 1901 to 1991) and the title over two lines (ink y 1916 to 2022, to x 706), measured 15 Oct 2026.\n// The deal meta under it (y 2052 to 2090, with an em dash) stays out. ----\nconst DRAFT_PHONE_SOURCE=\"https://framerusercontent.com/images/FIkal2BLveH1WzvAKACceX9YHAg.png\";const PHONE_W=1140;const PHONE_H=2160;const PHONE_BOX=\"5.614,87.5,57.719,6.667\"// x 64, y 1890, w 658, h 144\n;const PHONE_TEXT_X=206// where the phone row's words start (render px)\n;const DESK_TEXT_X=1058// where a desktop row's words start, after the icon (render px)\n;const DEFAULT_SPLIT=45.625// x 1314: where \"Discovery\" starts in the default row (the ink gap after \"to\" is 1306 to 1314)\n;const PHONE_CAP=1.15;const PHONE_BELOW=900;const D={callsLabel:\"On the call\",meetName:\"Google Meet\",teamsName:\"Microsoft Teams\",zoomName:\"Zoom\",liveLabel:\"Live\",moments:\"18m 22s|Price objection\\n22m 10s|Decision process still open\\n40m 10s|Scorecard, 62/100\",brandName:\"Ricavi\",brandLine:\"Ricavi sits above your CRM and guides the work at every stage.\",trayLabel:\"From the call\",draftLabel:\"Drafted for the rep\",draftTitleBox:\"33.194,72,24.514,4.444\",draftButtonBox:\"74.375,72,7.951,4.444\",draftAlt:\"A drafted action in Ricavi: Move Pathloom to Discovery in the pipeline, with an Update CRM button for the rep.\",statusWaiting:\"Waiting for the rep\",statusApproved:\"Approved by the rep\",statusSynced:\"Synced to CRM\",upLabel:\"Account, deal, and contacts\",downLabel:\"Drafted updates\",gateLabel:\"The rep approves\",crmLabel:\"Your CRM\",crm1Name:\"HubSpot\",crm2Name:\"Salesforce\",crm3Name:\"Microsoft Dynamics\",asideLabel:\"Alongside\",calendarLabel:\"Calendar\",calendarLine:\"So the pre-call brief lands 30 minutes before each call.\",calendar1Name:\"Google Calendar\",calendar2Name:\"Outlook\",filesLabel:\"Files\",filesLine:\"Connected at onboarding, with your calendar.\",files1Name:\"Google Drive\",files2Name:\"OneDrive\",caption:\"Nothing is written to your CRM until the rep approves it.\",signinLine:\"Sign in with Google SSO, Microsoft SSO, or SAML (Okta, Azure AD).\",summary:\"The stack: calls on Google Meet, Microsoft Teams, and Zoom feed Ricavi. Ricavi sits above your CRM (HubSpot, Salesforce, Microsoft Dynamics): account, deal, and contacts come up, drafted updates go down once the rep approves them. Google Calendar, Outlook, Google Drive, and OneDrive sit alongside.\",pauseLabel:\"Pause\",playLabel:\"Play\"};// ---- the cycle, in ms from its start. Three moments travel down the live app's line and land in the tray; the call\n// ends while the scorecard is in flight; the draft arrives; the pointer presses Update CRM (the rep approving); the\n// gate opens; the token drops into the CRM; the status reads synced; hold; the next app takes its turn. ----\nconst CYCLE=12e3;/** The calendar's pulse opens each cycle: the pre-call brief lands in Ricavi, then the call goes live. */const BRIEF=0;const BRIEF_LANDS=950;const BRIEF_OFF=1900;const LIVE=1e3;const RUN=[1400,2600,3800];const LAND=[2300,3500,4700];const CALL_ENDS=4200;/** The quieter files pulse feeds the draft: it leaves as the call ends and lands as the draft arrives. */const FILES=4300;const FILES_LANDS=5250;const FILES_OFF=6100;const DRAFT_AT=5300;const POINTER_IN=6600;const PRESS=7400;const RELEASE=7600;const APPROVE=7750;const TOKEN=8100;const POINTER_OFF=8200;const ARRIVE=9100;const SYNCED=9250;const HIT_OFF=9900;/** How much of the figure has to be on screen for the cycle to run. */const SEEN=.3;/** The pause before the first cycle starts, so the settled picture is seen before it winds back (a fade, not a cut). */const FIRST=700;const SETTLED={app:0,live:false,landed:3,runner:-1,runKey:0,draft:\"synced\",draftKey:0,pointer:\"off\",gate:true,token:false,tokenKey:0,hit:-1,cal:\"off\",calKey:0,files:\"off\",filesKey:0};const DRAFTS=[\"waiting\",\"approved\",\"synced\"];const sameBox=(a,b)=>Math.abs(a.x-b.x)<.01&&Math.abs(a.y-b.y)<.01&&Math.abs(a.w-b.w)<.01&&Math.abs(a.h-b.h)<.01;const str=v=>typeof v===\"string\"?v.trim():\"\";const parseBox=s=>{const n=s.split(\",\").map(t=>Number(t.trim()));if(n.length!==4||n.some(v=>!Number.isFinite(v))||n[2]<=0||n[3]<=0)return null;return{x:n[0],y:n[1],w:n[2],h:n[3]};};/** \"18m 22s|Price objection\" per line; a line without the bar is all text. */const parseMoments=s=>s.split(/\\r?\\n/).map(l=>l.trim()).filter(Boolean).slice(0,3).map(l=>{const i=l.indexOf(\"|\");return i<0?{time:\"\",text:l}:{time:l.slice(0,i).trim(),text:l.slice(i+1).trim()};});// House type with real fallbacks: an untouched Framer Font control resolves to Framer's own family, which is not a\n// pick, so it falls back to the house face too.\nconst SANS='\"Instrument Sans\", \"Instrument Sans Placeholder\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Helvetica, Arial, sans-serif';const MONO='\"Geist Mono\", \"Geist Mono Placeholder\", ui-monospace, \"SF Mono\", Menlo, monospace';const GENERIC=/^(sans-serif|serif|monospace|system-ui|ui-[a-z-]+|inherit|initial|unset)$/i;const FRAMER_DEFAULT=/^\\s*[\"']?(Inter|Fragment Mono)( Placeholder| Variable| Display)?[\"']?\\s*(,|$)/i;const pickFamily=(f,house)=>{const v=typeof f?.fontFamily===\"string\"?f.fontFamily.trim():\"\";if(!v||GENERIC.test(v)||FRAMER_DEFAULT.test(v))return house;if(v.replace(/[\"']/g,\"\").trim().toLowerCase()===house.split(\",\")[0].replace(/[\"']/g,\"\").trim().toLowerCase())return house;return v.includes(\",\")?v:`${/^[\"']/.test(v)?v:`\"${v}\"`}, ${house}`;};// Framer hands colour controls over as \"rgb(r, g, b)\" / \"rgba(...)\" strings (a typed hex is normalised) and as\n// { value } when bound to a token. Everything here goes through color-mix(), which takes any CSS colour.\nconst colour=(value,fallback)=>{const v=value&&typeof value===\"object\"&&\"value\"in value?value.value:value;const s=typeof v===\"string\"?v.trim():\"\";return s||fallback;};const parseColor=value=>{const v=String(value??\"\").trim();const rgb=/^rgba?\\(\\s*(\\d{1,3}(?:\\.\\d+)?)[\\s,]+(\\d{1,3}(?:\\.\\d+)?)[\\s,]+(\\d{1,3}(?:\\.\\d+)?)/i.exec(v);if(rgb)return[Number(rgb[1]),Number(rgb[2]),Number(rgb[3])];const hex=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(v);if(!hex)return null;const h=hex[1].length===3?hex[1].replace(/./g,\"$&$&\"):hex[1];const n=parseInt(h,16);return[n>>16&255,n>>8&255,n&255];};const luminance=([r,g,b])=>{const lin=c=>{const s=c/255;return s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4);};return .2126*lin(r)+.7152*lin(g)+.0722*lin(b);};const EASE=\"cubic-bezier(.2,.75,.2,1)\";const GLIDE=\"cubic-bezier(.5,0,.2,1)\";const CSS=`\n.sm{position:relative;width:100%;margin:0;container:sm / inline-size;color:var(--sm-ink);font-family:var(--sm-sans);-webkit-font-smoothing:antialiased}\n.sm-in{--sm-gap1:72px;--sm-gap2:116px;--sm-inset:28px;--sm-split:84px;--sm-tile:40px;--sm-mark:24px;--sm-name:17px;--sm-brand:34px;--sm-logo:24px;--sm-line:17px}\n.sm *{box-sizing:border-box}\n.sm :where(p,h3,ul,li){margin:0;padding:0}\n.sm :where(ul){list-style:none}\n.sm-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n.sm-mono{font-family:var(--sm-mono);font-size:12px;font-weight:var(--sm-mono-weight);line-height:1.4;letter-spacing:.08em;text-transform:uppercase}\n.sm-map{position:relative;display:grid;grid-template-columns:minmax(200px,1.15fr) minmax(0,3.5fr) minmax(200px,1.15fr);grid-template-rows:auto var(--sm-gap1) auto var(--sm-gap2) auto auto}\n\n/* tiles: a white well for the mark (the marks are drawn for light backgrounds), the name beside it */\n.sm-tile{position:relative;display:flex;align-items:center;gap:12px;min-height:58px;padding:10px 14px;border-radius:12px;background:var(--sm-card);box-shadow:inset 0 0 0 1px var(--sm-edge);transition:box-shadow .35s ${EASE},background-color .35s ${EASE}}\n.sm-well{flex:none;display:grid;place-items:center;width:var(--sm-tile);height:var(--sm-tile);border-radius:9px;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}\n.sm-well img{display:block;width:var(--sm-mark);height:var(--sm-mark);object-fit:contain}\n.sm-well.is-text{display:none}\n.sm-name{min-width:0;font-size:var(--sm-name);font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--sm-strong)}\n/* the live state has its own slot: a tab on the call tile's top edge, half above the tile and half inside a band the\n   tile reserves for it (padding-top 18px against the tab's 9px), so it never meets the mark or the name however the\n   name wraps; the call label above keeps 20px clear for its upper half */\n.sm-tile.is-call{padding-top:18px;padding-bottom:12px}\n.sm-live{position:absolute;right:10px;top:0;z-index:1;display:inline-flex;align-items:center;gap:6px;height:18px;padding:0 8px 0 7px;border-radius:999px;background:var(--sm-paper);box-shadow:inset 0 0 0 1px var(--sm-accent-edge);font-size:10px;line-height:18px;white-space:nowrap;color:var(--sm-accent);opacity:0;transform:translateY(-50%);transition:opacity .3s ease;pointer-events:none}\n.sm-live i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--sm-accent)}\n.sm-tile.is-live{box-shadow:inset 0 0 0 1px var(--sm-accent-edge)}\n.sm-tile.is-live .sm-live{opacity:1}\n.sm-tile.is-live .sm-live i{animation:sm-pulse 1.4s ease-out infinite}\n.sm-tile.is-hit{box-shadow:inset 0 0 0 1.5px var(--sm-accent);background:var(--sm-card-hit)}\n\n/* row 1: the call apps, over the slab */\n.sm-calls{grid-column:2;grid-row:1;margin:0 calc(var(--sm-inset) * 2)}\n.sm-tier{display:block;margin:0 0 12px;color:var(--sm-mute)}\n.sm-calls .sm-tier{margin-bottom:20px}\n.sm-apps,.sm-lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}\n\n/* row 2: three lines down into Ricavi; the live app's line carries the moments */\n.sm-lines{grid-column:2;grid-row:2;position:relative;z-index:2;margin:0 calc(var(--sm-inset) * 2)}\n.sm-line{position:relative;--sm-rx:-50%}\n.sm-line::before{content:\"\";position:absolute;left:50%;top:0;bottom:0;width:1px;margin-left:-.5px;background:var(--sm-rule)}\n.sm-line::after{content:\"\";position:absolute;left:50%;bottom:7px;width:6px;height:6px;margin-left:-3.5px;border-right:1px solid var(--sm-rule);border-bottom:1px solid var(--sm-rule);transform:rotate(45deg)}\n.sm-line.is-live::before,.sm-line.is-live::after{border-color:var(--sm-accent-line);background:var(--sm-accent-line)}\n.sm-line.is-live::after{background:none}\n.sm-runner{position:absolute;left:50%;top:0;display:inline-flex;align-items:center;gap:8px;height:26px;padding:0 10px;border-radius:999px;background:var(--sm-runfill);box-shadow:inset 0 0 0 1px var(--sm-runedge),0 10px 24px -12px rgba(0,0,0,.8);font-size:12px;font-weight:500;white-space:nowrap;color:var(--sm-strong);transform:translate(var(--sm-rx),-4px);animation:sm-run .9s ${GLIDE} both;pointer-events:none}\n.sm-runner time,.sm-chip time{font-family:var(--sm-mono);font-size:12px;font-weight:var(--sm-mono-weight);letter-spacing:.08em;color:var(--sm-mute);white-space:nowrap;flex-shrink:0}\n\n/* row 3: calendar beside, Ricavi, files beside */\n.sm-side{grid-row:3;display:grid;align-items:center}\n.sm-side.is-left{grid-column:1;grid-template-columns:minmax(0,1fr) calc(36px + var(--sm-inset))}\n.sm-side.is-right{grid-column:3;grid-template-columns:calc(36px + var(--sm-inset)) minmax(0,1fr)}\n/* the ties run into the slab's edge (across the slab's inset), at the slab's centre line: one layer */\n.sm-tie{position:relative;height:0;border-top:1px dashed var(--sm-rule)}\n.sm-side.is-left .sm-tie{margin-right:calc(-1 * var(--sm-inset))}\n.sm-side.is-right .sm-tie{margin-left:calc(-1 * var(--sm-inset))}\n/* a pulse: a full-width carrier slid by its own width, so the dot crosses the tie whatever its length */\n.sm-feed{position:absolute;left:0;right:0;top:0;height:0;pointer-events:none;animation:sm-feed-in 1s ${GLIDE} both}\n.sm-feed::before{content:\"\";position:absolute;left:0;top:-3px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--sm-accent);box-shadow:0 0 0 3px var(--sm-halo)}\n.sm-side.is-right .sm-feed{animation-name:sm-feed-out}\n.sm-side.is-right .sm-feed::before{top:-2.5px;width:5px;height:5px;margin-left:-2.5px;background:var(--sm-strong);box-shadow:none;opacity:.7}\n.sm-aside{position:relative;padding:14px 16px 15px;border-radius:12px;background:var(--sm-card);box-shadow:inset 0 0 0 1px var(--sm-edge)}\n.sm-aside::after{content:\"\";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--sm-accent-edge);opacity:0;transition:opacity .45s ease;pointer-events:none}\n.sm-side.is-right .sm-aside::after{box-shadow:inset 0 0 0 1px var(--sm-runedge)}\n.sm-side[data-feed=\"run\"] .sm-aside::after{opacity:1}\n/* where a pulse lands: a short mark on the slab's edge, at the centre line */\n.sm-port{position:absolute;top:50%;width:2px;height:28px;margin-top:-14px;border-radius:2px;background:var(--sm-accent);opacity:0;transition:opacity .5s ease;pointer-events:none}\n.sm-port.is-left{left:-1px}\n.sm-port.is-right{right:-1px;background:var(--sm-strong)}\n.sm-port.is-on{opacity:1}\n.sm-port.is-right.is-on{opacity:.55}\n.sm-aside-label{display:block;color:var(--sm-mute)}\n.sm-aside-list{display:grid;gap:8px;margin-top:10px}\n.sm-aside-list li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--sm-strong)}\n.sm-aside-list .sm-well{--sm-tile:30px;--sm-mark:18px;border-radius:8px}\n.sm-aside-line{margin-top:10px;font-size:14px;line-height:1.5;color:var(--sm-mute);text-wrap:pretty}\n\n.sm-slab{grid-column:2;grid-row:3;position:relative;margin:0 var(--sm-inset);padding:24px 24px 24px;border-radius:14px;background:var(--sm-slab);box-shadow:inset 0 0 0 1px var(--sm-slab-edge),0 34px 60px -40px rgba(0,0,0,.85)}\n.sm-slab::before{content:\"\";position:absolute;left:16px;right:16px;top:0;height:2px;border-radius:0 0 2px 2px;background:var(--sm-accent)}\n.sm-brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px}\n.sm-brand-name{display:inline-flex;align-items:center;gap:11px;font-size:var(--sm-brand);font-weight:700;line-height:1;letter-spacing:-.025em;color:var(--sm-strong)}\n.sm-brand-mark{flex:none;width:.4em;height:.4em;border-radius:.1em;background:var(--sm-accent)}\n/* R5-1: the logo. The row is its own container, so the mark-alone switch follows the row's width, not the figure's */\n.sm-brand.is-logo{align-items:center;container:smb / inline-size}\n/* R5-QA-20 (Ary, 19 Oct): the logo a little smaller, 24 / 22 / 20px tall (was 30 / 26 / 24; proportions kept), centred\n   on the first line of the text beside it (not on the whole paragraph when it wraps): whichever is shorter, the logo or\n   the line box, is pushed down by half the difference */\n.sm-brand.is-logo{align-items:flex-start}\n.sm-brand.is-logo .sm-logo{margin-top:max(0px,calc((var(--sm-line) * 1.45 - var(--sm-logo)) / 2))}\n.sm-brand.is-logo .sm-brand-line{margin-top:max(0px,calc((var(--sm-logo) - var(--sm-line) * 1.45) / 2))}\n.sm-logo{flex:none;display:block;height:var(--sm-logo);overflow:hidden}\n.sm-logo img{display:block;height:100%;width:auto;max-width:none}\n.sm-logo.is-ricavi{width:calc(var(--sm-logo) * ${RICAVI_LOGO_RATIO.toFixed(4)})}\n.sm-logo.is-ricavi img{width:100%}\n@container smb (max-width:${MARK_ONLY_BELOW-.02}px){.sm-logo.is-ricavi{width:var(--sm-logo)}.sm-logo.is-ricavi img{width:calc(var(--sm-logo) * ${RICAVI_LOGO_RATIO.toFixed(4)})}}\n.sm-brand-line{flex:1 1 320px;min-width:0;font-size:var(--sm-line);line-height:1.45;color:var(--sm-body);text-wrap:pretty}\n.sm-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;margin-top:20px}\n.sm-box{position:relative;min-width:0;padding:14px 16px 16px;border-radius:10px;background:var(--sm-inner);box-shadow:inset 0 0 0 1px var(--sm-edge)}\n.sm-box-label{display:block;color:var(--sm-mute)}\n.sm-chips{display:grid;gap:8px;margin-top:10px;justify-items:start}\n.sm-chip{display:inline-flex;align-items:center;gap:9px;max-width:100%;min-height:28px;padding:4px 11px;border-radius:999px;background:var(--sm-chipfill);box-shadow:inset 0 0 0 1px var(--sm-chipedge);font-size:14px;font-weight:500;line-height:1.2;color:var(--sm-strong);opacity:.3;transition:opacity .4s ${EASE}}\n/* a new call dims the tray's moments to ghosts (never an empty box); each lights as its moment lands */\n.sm-chip.is-on{opacity:1}\n/* the draft row has no hidden state: it always holds a drafted update; a new one arrives with a short settle (it\n   never starts from nothing, so a paused or interrupted cycle can't leave the box empty) */\n.sm-row{position:relative;margin-top:10px;padding:10px;border-radius:8px;background:var(--sm-draft-bg);box-shadow:0 0 0 1px rgba(0,0,0,.05)}\n.sm-row.is-new{animation:sm-arrive .6s ${EASE} both}\n.sm-scene{position:relative;display:block;width:100%;aspect-ratio:var(--sm-ar);overflow:hidden;border-radius:4px}\n.sm-slice{position:absolute;display:block;background-repeat:no-repeat}\n.sm-whole{display:block;width:100%;height:auto;border-radius:4px}\n/* the phone re-set of the draft row (shown by the container rule the component writes for draftPhoneBelow) */\n.sm-pscene{position:relative;display:none;width:100%;overflow:visible}\n.sm-pscene > .sm-slice{border-radius:3px}\n.sm-pbtn{position:absolute;display:block;background-repeat:no-repeat}\n.sm-pointer{position:absolute;left:var(--sm-px);top:var(--sm-py);width:18px;height:20px;margin:-3px 0 0 -3px;opacity:0;transform:translate(64px,72px);transition:transform .7s ${GLIDE},opacity .25s ease;pointer-events:none}\n.sm-pointer svg{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 3px rgba(10,10,12,.3))}\n.sm-box[data-pointer=\"in\"] .sm-pointer{opacity:1;transform:translate(0,0)}\n.sm-box[data-pointer=\"press\"] .sm-pointer{opacity:1;transform:translate(0,0) scale(.82);transition:transform .14s ease,opacity .25s ease}\n.sm-status{position:relative;height:18px;margin-top:10px}\n.sm-status span{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:7px;font-family:var(--sm-mono);font-size:12px;font-weight:var(--sm-mono-weight);line-height:18px;letter-spacing:.02em;white-space:nowrap;color:var(--sm-mute);opacity:0;transition:opacity .35s ease}\n.sm-status span i{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--sm-ringline)}\n.sm-status span i svg{display:block;width:9px;height:9px}\n.sm-status span.is-done{color:var(--sm-strong)}\n.sm-status span.is-done i{background:var(--sm-accent);box-shadow:none}\n.sm-box[data-status=\"waiting\"] .sm-status .is-waiting,.sm-box[data-status=\"approved\"] .sm-status .is-approved,.sm-box[data-status=\"synced\"] .sm-status .is-synced{opacity:1}\n.sm-along{display:none;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--sm-rule)}\n.sm-along-label{color:var(--sm-mute)}\n.sm-along-group{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--sm-strong)}\n.sm-along-group::after{content:\"\";position:absolute;inset:-4px -8px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--sm-accent-edge);opacity:0;transition:opacity .45s ease;pointer-events:none}\n.sm-along-group.is-files::after{box-shadow:inset 0 0 0 1px var(--sm-runedge)}\n.sm-along-group[data-feed=\"run\"]::after,.sm-along-group[data-feed=\"land\"]::after{opacity:1}\n.sm-along-group .sm-well{--sm-tile:26px;--sm-mark:16px;border-radius:7px}\n\n/* row 4: the two lines between Ricavi and the CRM, the gate on the way down */\n.sm-link{grid-column:2;grid-row:4;position:relative;margin:0 var(--sm-inset)}\n.sm-up,.sm-down{position:absolute;top:0;bottom:0;width:1px;margin-left:-.5px;background:var(--sm-rule)}\n.sm-up{left:calc(50% - var(--sm-split))}\n.sm-down{left:calc(50% + var(--sm-split))}\n.sm-up::before{content:\"\";position:absolute;left:50%;top:7px;width:6px;height:6px;margin-left:-3.5px;border-left:1px solid var(--sm-rule);border-top:1px solid var(--sm-rule);transform:rotate(45deg)}\n.sm-down::after{content:\"\";position:absolute;left:50%;bottom:7px;width:6px;height:6px;margin-left:-3.5px;border-right:1px solid var(--sm-rule);border-bottom:1px solid var(--sm-rule);transform:rotate(45deg)}\n.sm-up-label{position:absolute;right:calc(50% + var(--sm-split) + 14px);top:50%;max-width:46%;transform:translateY(-50%);text-align:right;color:var(--sm-mute)}\n.sm-down-label{position:absolute;left:calc(50% + var(--sm-split) + 14px);top:14px;max-width:46%;color:var(--sm-mute)}\n.sm-gate-label{position:absolute;left:calc(50% + var(--sm-split) + 20px);top:50%;max-width:46%;transform:translateY(-50%);color:var(--sm-strong);transition:color .3s ease}\n.sm-gate{position:absolute;left:calc(50% + var(--sm-split));top:50%;z-index:2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sm-paper);box-shadow:inset 0 0 0 1.5px var(--sm-ringline);transform:translate(-50%,-50%);transition:background-color .3s ease,box-shadow .3s ease}\n.sm-gate svg{display:block;width:12px;height:12px;opacity:0;transition:opacity .25s ease}\n.sm-gate.is-open{background:var(--sm-accent);box-shadow:none}\n.sm-gate.is-open svg{opacity:1}\n.sm-token{position:absolute;left:calc(50% + var(--sm-split));top:0;z-index:1;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--sm-accent);box-shadow:0 0 0 4px var(--sm-halo);animation:sm-drop 1s ${GLIDE} both;pointer-events:none}\n\n/* row 5: the CRM plate under everything */\n.sm-plate{grid-column:2;grid-row:5;padding:18px 24px 22px;border-radius:14px;background:var(--sm-plate);box-shadow:inset 0 0 0 1px var(--sm-edge)}\n.sm-crms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:12px}\n\n/* row 6: the rule, the sign-in line, the control */\n.sm-foot{grid-column:1/-1;grid-row:6;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 24px;margin-top:24px}\n.sm-foot-text{display:grid;gap:4px}\n.sm-cap{font-size:14px;line-height:1.5;color:var(--sm-body)}\n.sm-signin{color:var(--sm-mute)}\n.sm-toggle{appearance:none;-webkit-appearance:none;flex:none;display:inline-flex;align-items:center;gap:8px;height:30px;margin:0;padding:0 12px 0 10px;border:0;border-radius:999px;background:var(--sm-card);box-shadow:inset 0 0 0 1px var(--sm-edge);color:var(--sm-strong);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease}\n.sm-toggle:focus{outline:none}\n/* the 30px pause pill keeps its look and gets a 44px tap area at every width and pointer (R5-QA-12: was touch only,\n   so a phone-width window with a mouse or trackpad, or a touch laptop, measured 30px) */\n.sm-toggle{position:relative}.sm-toggle::after{content:\"\";position:absolute;inset:-7px -4px}\n.sm-toggle:focus-visible{outline:2px solid var(--sm-strong);outline-offset:2px}\n.sm-ico{position:relative;width:10px;height:10px}\n.sm-ico[data-icon=\"pause\"]::before,.sm-ico[data-icon=\"pause\"]::after{content:\"\";position:absolute;top:0;bottom:0;width:3px;border-radius:1px;background:currentColor}\n.sm-ico[data-icon=\"pause\"]::before{left:1px}\n.sm-ico[data-icon=\"pause\"]::after{right:1px}\n.sm-ico[data-icon=\"play\"]{left:1px;background:currentColor;clip-path:polygon(10% 0,100% 50%,10% 100%)}\n.sm.is-still .sm-toggle{display:none}\n@media (hover:hover){.sm-toggle:hover{background:var(--sm-card-hit)}}\n\n@keyframes sm-pulse{from{box-shadow:0 0 0 0 var(--sm-halo)}to{box-shadow:0 0 0 9px transparent}}\n@keyframes sm-run{0%{opacity:0;transform:translate(var(--sm-rx),-4px)}10%{opacity:1}72%{opacity:1}100%{opacity:0;transform:translate(var(--sm-rx),calc(var(--sm-gap1) - 8px))}}\n@keyframes sm-drop{0%{opacity:0}10%{opacity:1}90%{opacity:1}100%{opacity:0;transform:translateY(calc(var(--sm-gap2) + 10px))}}\n@keyframes sm-feed-in{0%{opacity:0;transform:translateX(0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(100%)}}\n@keyframes sm-feed-out{0%{opacity:0;transform:translateX(100%)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(0)}}\n@keyframes sm-arrive{0%{opacity:.25;transform:translateY(6px)}100%{opacity:1;transform:none}}\n.sm.is-still *,.sm.is-still *::before,.sm.is-still *::after{animation:none!important;transition:none!important}\n@media (prefers-reduced-motion:reduce){.sm *,.sm *::before,.sm *::after{animation:none!important;transition:none!important}}\n\n/* R5-2 (19 Oct): the diagram's text in the site's scale. The app names (Body size, 600) and the Ricavi line (Body)\n   are 17px from a 1200px window and 16px below it, as the site's text styles; labels and times are Label (12px mono\n   500), chips, side lines and captions Small (14px). Phones keep 14px names in their narrow tiles. */\n@media (max-width:1199.98px){\n.sm-in{--sm-name:16px;--sm-line:16px}\n}\n@container sm (max-width:1099px){\n.sm-in{--sm-split:64px;--sm-inset:20px;--sm-brand:30px;--sm-logo:22px;--sm-tile:36px;--sm-mark:22px}\n.sm-map{grid-template-columns:minmax(180px,1.15fr) minmax(0,3.5fr) minmax(180px,1.15fr)}\n.sm-work{grid-template-columns:minmax(0,1fr);gap:14px}\n.sm-chips{display:flex;flex-wrap:wrap}\n}\n@container sm (max-width:899px){\n.sm-in{--sm-gap1:56px;--sm-gap2:104px;--sm-inset:16px;--sm-split:60px}\n.sm-map{grid-template-columns:minmax(0,1fr)}\n.sm-calls,.sm-lines,.sm-slab,.sm-link,.sm-plate,.sm-foot{grid-column:1}\n.sm-side,.sm-port{display:none}\n.sm-along{display:flex}\n.sm-slab{padding:20px 18px 18px}\n.sm-work{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}\n.sm-chips{display:grid}\n}\n@container sm (max-width:639px){\n.sm-in{--sm-gap1:48px;--sm-gap2:112px;--sm-inset:0px;--sm-split:0px;--sm-tile:34px;--sm-mark:22px;--sm-name:14px;--sm-brand:28px;--sm-logo:20px}\n.sm-apps,.sm-lines,.sm-crms{gap:10px}\n.sm-tile{flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:0;padding:12px 6px 10px;text-align:center}\n.sm-tile.is-call{padding-top:18px;padding-bottom:10px}\n.sm-name{font-weight:500}\n.sm-live{right:50%;margin-right:-30px;width:60px;justify-content:center;padding:0 6px}\n.sm-line[data-pos=\"left\"]{--sm-rx:-12px}\n.sm-line[data-pos=\"right\"]{--sm-rx:calc(-100% + 12px)}\n.sm-work{grid-template-columns:minmax(0,1fr)}\n.sm-box{padding:12px 14px 14px}\n.sm-row{padding:8px}\n.sm-brand-line{flex-basis:100%}\n.sm-slab{padding:18px 14px 16px}\n.sm-along{gap:8px 14px}\n.sm-up{left:auto;right:calc(50% + 22px)}\n.sm-down{left:calc(50% + 22px)}\n.sm-up-label{right:calc(50% + 36px);max-width:calc(50% - 44px);top:50%}\n.sm-down-label{left:calc(50% + 36px);max-width:calc(50% - 44px);top:12px}\n.sm-gate{left:calc(50% + 22px)}\n.sm-gate-label{left:calc(50% + 42px);max-width:calc(50% - 50px);top:58%;transform:none}\n.sm-token{left:calc(50% + 22px)}\n.sm-plate{padding:14px 12px 14px}\n.sm-foot{margin-top:20px}\n}\n`;function Mark({src,alt}){return src?/*#__PURE__*/_jsx(\"span\",{className:\"sm-well\",children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:alt,loading:\"lazy\",decoding:\"async\",draggable:false})}):/*#__PURE__*/_jsx(\"span\",{className:\"sm-well is-text\",\"aria-hidden\":\"true\"});}function Tile({name,logo,live,hit,liveLabel}){const call=liveLabel!==undefined;return /*#__PURE__*/_jsxs(\"li\",{className:`sm-tile${call?\" is-call\":\"\"}${live?\" is-live\":\"\"}${hit?\" is-hit\":\"\"}`,children:[/*#__PURE__*/_jsx(Mark,{src:logo,alt:\"\"}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-name\",children:name}),call?/*#__PURE__*/_jsxs(\"span\",{className:\"sm-live sm-mono\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"i\",{}),liveLabel]}):null]});}const Tick=()=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 12 12\",fill:\"none\",stroke:\"#0A0A0C\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M2.5 6.3 5 8.8l4.6-5.3\"})});export default function StackMapR2(props){const{font,mono,style,autoplay=true}=props;const pick=k=>{const v=props[k];return typeof v===\"string\"?v.trim():D[k]// trimmed: a single space (the DSL can't store \"\") hides a line\n;};const ink=colour(props.ink,\"#F8F8F7\");const accent=colour(props.accent,\"#FF584A\");const paper=colour(props.paper,\"#0A0A0C\");const logo=(v,fallback)=>str(v)||fallback;const apps=[{name:pick(\"meetName\"),logo:str(props.meetLogo)},{name:pick(\"teamsName\"),logo:logo(props.teamsLogo,LOGO.teams)},{name:pick(\"zoomName\"),logo:logo(props.zoomLogo,LOGO.zoom)}];const crms=[{name:pick(\"crm1Name\"),logo:logo(props.crm1Logo,LOGO.hubspot)},{name:pick(\"crm2Name\"),logo:logo(props.crm2Logo,LOGO.salesforce)},{name:pick(\"crm3Name\"),logo:logo(props.crm3Logo,LOGO.dynamics)}];const calendar=[{name:pick(\"calendar1Name\"),logo:logo(props.calendar1Logo,LOGO.gcal)},{name:pick(\"calendar2Name\"),logo:logo(props.calendar2Logo,LOGO.outlook)}];const files=[{name:pick(\"files1Name\"),logo:logo(props.files1Logo,LOGO.gdrive)},{name:pick(\"files2Name\"),logo:logo(props.files2Logo,LOGO.onedrive)}];const moments=parseMoments(pick(\"moments\"));// R5-1: the logo (the nav's file unless the instance sets its own); \"text\" is the round 4 name with its square\nconst brandName=pick(\"brandName\");const showLogo=props.brandStyle!==\"text\";const brandLogo=str(props.brandLogo)||RICAVI_LOGO;const isRicaviLogo=brandLogo===RICAVI_LOGO;const draftSource=str(props.draftSource)||DRAFT_SOURCE;const draftImage=str(props.draftImage);const boxA=parseBox(pick(\"draftTitleBox\"))??parseBox(D.draftTitleBox);const boxB=parseBox(pick(\"draftButtonBox\"))??parseBox(D.draftButtonBox);// the composition, in render px: piece A, a gap, piece B; the pointer aims at the middle of the button\nconst aw=boxA.w/100*DRAFT_W;const ah=boxA.h/100*DRAFT_H;const bw=boxB.w/100*DRAFT_W;const bh=boxB.h/100*DRAFT_H;const sw=aw+DRAFT_GAP+bw;const sh=Math.max(ah,bh);const slice=(b,dx,w,h)=>({left:`${dx/sw*100}%`,top:0,width:`${w/sw*100}%`,height:`${h/sh*100}%`,backgroundImage:`url(\"${draftSource}\")`,backgroundSize:`${100/b.w*100}% ${100/b.h*100}%`,backgroundPosition:`${b.w>=100?0:b.x/(100-b.w)*100}% ${b.h>=100?0:b.y/(100-b.h)*100}%`});const pointerAt={\"--sm-px\":`${(aw+DRAFT_GAP+bw/2)/sw*100}%`,\"--sm-py\":\"50%\"};// the phone re-set of the row (C7, M5): pieces in CSS px at the renders' own size (desktop 2x, phone 3x), placed in\n// percent of the composition, which is drawn at most PHONE_CAP times that size\nconst phoneBelow=Math.max(0,Math.round(Number(props.draftPhoneBelow??PHONE_BELOW)||0));const isDefaultRow=sameBox(boxA,parseBox(D.draftTitleBox));const phoneBox=parseBox(str(props.draftPhoneBox))??(isDefaultRow?parseBox(PHONE_BOX):null);const phoneSource=str(props.draftPhoneSource)||DRAFT_PHONE_SOURCE;const splitPct=Number(str(props.draftSplit)||(isDefaultRow?DEFAULT_SPLIT:NaN));let pieces=[];let btnAt=[0,0];const ax=boxA.x/100*DRAFT_W;const ay=boxA.y/100*DRAFT_H;const bx=boxB.x/100*DRAFT_W;const by=boxB.y/100*DRAFT_H;if(phoneBox){const px=phoneBox.x/100*PHONE_W;const py=phoneBox.y/100*PHONE_H;const pw=phoneBox.w/100*PHONE_W;const ph=phoneBox.h/100*PHONE_H;pieces=[{src:phoneSource,W:PHONE_W,H:PHONE_H,r:[px,py,pw,ph],at:[0,0]}];btnAt=[Math.max(0,(PHONE_TEXT_X-px)/3),ph/3+4];}else if(Number.isFinite(splitPct)&&splitPct>boxA.x&&splitPct<boxA.x+boxA.w){const sx=splitPct/100*DRAFT_W;const indent=Math.max(0,(DESK_TEXT_X-ax)/2);// line 1 stops 3 render px short of the split (inside the space, clear of the next word's anti-aliased edge);\n// line 2 is the text band of the row (30% to 80% of its height) from 1px before the split, set under line 1's words\nconst top2=ah/2*.85;pieces=[{src:draftSource,W:DRAFT_W,H:DRAFT_H,r:[ax,ay,sx-3-ax,ah],at:[0,0]},{src:draftSource,W:DRAFT_W,H:DRAFT_H,r:[sx-1,ay+ah*.3,ax+aw-sx+1,ah*.5],at:[Math.max(0,indent-.5),top2]}];btnAt=[indent,top2+ah*.5/2+6];}const phoneOn=!draftImage&&phoneBelow>0&&pieces.length>0;const pieceW=p=>p.r[2]/(p.W===PHONE_W?3:2);const pieceH=p=>p.r[3]/(p.W===PHONE_W?3:2);const cw=Math.max(bw/2+btnAt[0],...pieces.map(p=>p.at[0]+pieceW(p)));const ch=Math.max(bh/2+btnAt[1],...pieces.map(p=>p.at[1]+pieceH(p)));const cut=(src,W,H,[x,y,w,h],[l,t],cssW,cssH)=>({left:`${l/cw*100}%`,top:`${t/ch*100}%`,width:`${cssW/cw*100}%`,height:`${cssH/ch*100}%`,backgroundImage:`url(\"${src}\")`,backgroundSize:`${W/w*100}% ${H/h*100}%`,backgroundPosition:`${w>=W?0:x/(W-w)*100}% ${h>=H?0:y/(H-h)*100}%`});const phoneCss=phoneOn?`@container sm (max-width:${phoneBelow-.02}px){.sm[data-dpb=\"${phoneBelow}\"] .sm-row > .sm-scene,.sm[data-dpb=\"${phoneBelow}\"] .sm-row > .sm-pointer{display:none}.sm[data-dpb=\"${phoneBelow}\"] .sm-pscene{display:block}}`:\"\";const isStatic=useIsStaticRenderer();const reduced=useReducedMotion()===true;// the canvas never runs the cycle, even where the static-renderer hook does not report it\nconst onCanvas=RenderTarget.current()===RenderTarget.canvas;const still=isStatic||reduced||onCanvas;const ref=useRef(null);const inView=useInView(ref,{amount:SEEN});const[playing,setPlaying]=useState(true);const rest=props.restApproved===true?{...SETTLED,draft:\"approved\"}:SETTLED;const[scene,setScene]=useState(rest);const appRef=useRef(0);const cycleRef=useRef(0);appRef.current=scene.app;// The cycle runs only while the figure is on screen, playing, and allowed to move. Otherwise the picture settles:\n// every moment landed, the draft synced, the gate ticked, which is also what the server and the canvas draw.\nuseEffect(()=>{if(still||!playing||!autoplay||!inView){setScene(s=>({...rest,app:s.app,runKey:s.runKey,tokenKey:s.tokenKey,draftKey:s.draftKey,calKey:s.calKey,filesKey:s.filesKey}));return;}const timers=[];const at=(ms,fn)=>timers.push(window.setTimeout(fn,ms));const patch=p=>setScene(s=>({...s,...p}));const start=(app,delay)=>{const hit=cycleRef.current%3;cycleRef.current+=1;// a new call: the tray clears for its moments, the gate closes for its draft; the last draft stays in the\n// box (synced) until the new one replaces it, so the box is never empty\nat(delay+BRIEF,()=>setScene(s=>({...s,app,live:false,landed:0,runner:-1,pointer:\"off\",gate:false,token:false,hit:-1,cal:\"run\",calKey:s.calKey+1,files:\"off\"})));at(delay+BRIEF_LANDS,()=>patch({cal:\"land\"}));at(delay+LIVE,()=>patch({live:true}));at(delay+BRIEF_OFF,()=>patch({cal:\"off\"}));RUN.forEach((t,i)=>at(delay+t,()=>setScene(s=>({...s,runner:i,runKey:s.runKey+1}))));LAND.forEach((t,i)=>at(delay+t,()=>patch({runner:-1,landed:i+1})));at(delay+CALL_ENDS,()=>patch({live:false}));at(delay+FILES,()=>setScene(s=>({...s,files:\"run\",filesKey:s.filesKey+1})));at(delay+FILES_LANDS,()=>patch({files:\"land\"}));at(delay+FILES_OFF,()=>patch({files:\"off\"}));at(delay+DRAFT_AT,()=>setScene(s=>({...s,draft:\"waiting\",draftKey:s.draftKey+1})));at(delay+POINTER_IN,()=>patch({pointer:\"in\"}));at(delay+PRESS,()=>patch({pointer:\"press\"}));at(delay+RELEASE,()=>patch({pointer:\"in\"}));at(delay+APPROVE,()=>patch({draft:\"approved\",gate:true}));at(delay+TOKEN,()=>setScene(s=>({...s,token:true,tokenKey:s.tokenKey+1})));at(delay+POINTER_OFF,()=>patch({pointer:\"off\"}));at(delay+ARRIVE,()=>patch({token:false,hit}));at(delay+SYNCED,()=>patch({draft:\"synced\"}));at(delay+HIT_OFF,()=>patch({hit:-1}));at(delay+CYCLE,()=>start((app+1)%3,0));};start(appRef.current,FIRST);return()=>timers.forEach(t=>window.clearTimeout(t));},[still,playing,autoplay,inView,props.restApproved===true]);const c=parseColor(paper);const dark=c?luminance(c)<.3:true;const mix=share=>`color-mix(in srgb, ${ink} ${share}%, transparent)`;const mixA=share=>`color-mix(in srgb, ${accent} ${share}%, transparent)`;const weight=Number(mono?.fontWeight);const monoFamily=pickFamily(mono,MONO);const monoWeight=monoFamily!==MONO&&weight>=100&&weight<=900?weight:500;const rootStyle={...style,\"--sm-ink\":ink,\"--sm-accent\":accent,\"--sm-paper\":paper,\"--sm-sans\":pickFamily(font,SANS),\"--sm-mono\":monoFamily,\"--sm-mono-weight\":String(monoWeight),\"--sm-strong\":ink,\"--sm-body\":dark?mix(76):mix(80),\"--sm-mute\":dark?mix(56):mix(60),\"--sm-rule\":dark?mix(22):mix(16),\"--sm-edge\":dark?mix(13):mix(11),\"--sm-card\":dark?mix(6):\"#FFFFFF\",\"--sm-card-hit\":dark?mix(11):mixA(6),\"--sm-slab\":dark?mix(9):\"#FFFFFF\",\"--sm-slab-edge\":dark?mix(20):mix(12),\"--sm-inner\":dark?`color-mix(in srgb, ${paper} 55%, transparent)`:mix(4),\"--sm-plate\":dark?mix(4):mix(3),\"--sm-chipfill\":dark?mix(8):\"#FFFFFF\",\"--sm-chipedge\":dark?mix(16):mix(14),\"--sm-runfill\":dark?`color-mix(in srgb, ${ink} 14%, ${paper})`:\"#FFFFFF\",\"--sm-runedge\":dark?mix(24):mix(18),\"--sm-ringline\":dark?mix(45):mix(35),\"--sm-accent-edge\":mixA(60),\"--sm-accent-line\":mixA(70),\"--sm-halo\":mixA(28),\"--sm-draft-bg\":DRAFT_BG,\"--sm-ar\":`${sw/sh}`};const liveLabel=pick(\"liveLabel\");// the box always shows one of the three honest states; anything else falls back to the settled one\nconst draft=DRAFTS.includes(scene.draft)?scene.draft:\"synced\";const statusIcon=done=>/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":\"true\",children:done?/*#__PURE__*/_jsx(Tick,{}):null});return /*#__PURE__*/_jsxs(\"figure\",{ref:ref,className:`sm${still?\" is-still\":\"\"}`,style:rootStyle,\"data-app\":scene.app,\"data-draft\":draft,\"data-dpb\":phoneOn?phoneBelow:undefined,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),phoneCss?/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:phoneCss}}):null,/*#__PURE__*/_jsx(\"p\",{className:\"sm-vh\",children:pick(\"summary\")}),/*#__PURE__*/_jsx(\"div\",{className:\"sm-in\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"sm-map\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"sm-calls\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-tier sm-mono\",children:pick(\"callsLabel\")}),/*#__PURE__*/_jsx(\"ul\",{className:\"sm-apps\",children:apps.map((a,i)=>/*#__PURE__*/_jsx(Tile,{name:a.name,logo:a.logo,live:scene.live&&scene.app===i,liveLabel:liveLabel},i))})]}),/*#__PURE__*/_jsx(\"div\",{className:\"sm-lines\",\"aria-hidden\":\"true\",children:apps.map((_,i)=>/*#__PURE__*/_jsx(\"div\",{className:`sm-line${scene.live&&scene.app===i?\" is-live\":\"\"}`,\"data-pos\":i===0?\"left\":i===2?\"right\":\"mid\",children:scene.runner>=0&&scene.app===i&&moments[scene.runner]?/*#__PURE__*/_jsxs(\"span\",{className:\"sm-runner\",children:[moments[scene.runner].time?/*#__PURE__*/_jsx(\"time\",{children:moments[scene.runner].time}):null,moments[scene.runner].text]},scene.runKey):null},i))}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-side is-left\",\"data-feed\":scene.cal,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"sm-aside\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-aside-label sm-mono\",children:pick(\"calendarLabel\")}),/*#__PURE__*/_jsx(\"ul\",{className:\"sm-aside-list\",children:calendar.map((t,i)=>/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(Mark,{src:t.logo,alt:\"\"}),t.name]},i))}),pick(\"calendarLine\")?/*#__PURE__*/_jsx(\"p\",{className:\"sm-aside-line\",children:pick(\"calendarLine\")}):null]}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-tie\",\"aria-hidden\":\"true\",children:scene.cal===\"run\"?/*#__PURE__*/_jsx(\"span\",{className:\"sm-feed\"},scene.calKey):null})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-slab\",children:[/*#__PURE__*/_jsx(\"span\",{className:`sm-port is-left${scene.cal===\"land\"?\" is-on\":\"\"}`,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:`sm-port is-right${scene.files===\"land\"?\" is-on\":\"\"}`,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"div\",{className:`sm-brand${showLogo?\" is-logo\":\"\"}`,children:[showLogo?/*#__PURE__*/_jsx(\"span\",{className:`sm-logo${isRicaviLogo?\" is-ricavi\":\"\"}`,children:/*#__PURE__*/_jsx(\"img\",{src:brandLogo,alt:brandName,decoding:\"async\",draggable:false})}):/*#__PURE__*/_jsxs(\"span\",{className:\"sm-brand-name\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-brand-mark\"}),brandName]}),/*#__PURE__*/_jsx(\"p\",{className:\"sm-brand-line\",children:pick(\"brandLine\")})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-work\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"sm-box\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-box-label sm-mono\",children:pick(\"trayLabel\")}),/*#__PURE__*/_jsx(\"ul\",{className:\"sm-chips\",children:moments.map((m,i)=>/*#__PURE__*/_jsxs(\"li\",{className:`sm-chip${scene.landed>i?\" is-on\":\"\"}`,children:[m.time?/*#__PURE__*/_jsx(\"time\",{children:m.time}):null,m.text]},i))})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-box is-on\",\"data-status\":draft,\"data-pointer\":scene.pointer,children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-box-label sm-mono\",children:pick(\"draftLabel\")}),/*#__PURE__*/_jsxs(\"div\",{className:`sm-row${scene.draftKey>0?\" is-new\":\"\"}`,style:pointerAt,children:[draftImage?/*#__PURE__*/_jsx(\"img\",{className:\"sm-whole\",src:draftImage,alt:\"\",draggable:false}):/*#__PURE__*/_jsxs(\"span\",{className:\"sm-scene\",style:{background:DRAFT_BG},children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-slice\",style:slice(boxA,0,aw,ah)}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-slice\",style:slice(boxB,aw+DRAFT_GAP,bw,bh)})]}),phoneOn?/*#__PURE__*/_jsxs(\"span\",{className:\"sm-pscene\",style:{aspectRatio:`${cw} / ${ch}`,maxWidth:Math.round(cw*PHONE_CAP*10)/10,background:DRAFT_BG},children:[pieces.map((p,k)=>/*#__PURE__*/_jsx(\"span\",{className:\"sm-slice\",style:cut(p.src,p.W,p.H,p.r,p.at,pieceW(p),pieceH(p))},k)),/*#__PURE__*/_jsx(\"span\",{className:\"sm-pbtn\",style:{...cut(draftSource,DRAFT_W,DRAFT_H,[bx,by,bw,bh],btnAt,bw/2,bh/2),[\"--sm-px\"]:\"50%\",[\"--sm-py\"]:\"50%\"},children:/*#__PURE__*/_jsx(\"span\",{className:\"sm-pointer\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 20 22\",fill:\"#121212\",stroke:\"#fff\",strokeWidth:\"1.3\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 1.8v15.6l4.1-3.7 2.9 6.5 2.5-1.1-2.9-6.4 5.6-.4L3 1.8Z\"})})})})]}):null,/*#__PURE__*/_jsx(\"span\",{className:\"sm-pointer\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 20 22\",fill:\"#121212\",stroke:\"#fff\",strokeWidth:\"1.3\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 1.8v15.6l4.1-3.7 2.9 6.5 2.5-1.1-2.9-6.4 5.6-.4L3 1.8Z\"})})})]},scene.draftKey),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-status\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"is-waiting\",children:[statusIcon(false),pick(\"statusWaiting\")]}),/*#__PURE__*/_jsxs(\"span\",{className:\"is-approved is-done\",children:[statusIcon(true),pick(\"statusApproved\")]}),/*#__PURE__*/_jsxs(\"span\",{className:\"is-synced is-done\",children:[statusIcon(true),pick(\"statusSynced\")]})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-along\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-along-label sm-mono\",children:pick(\"asideLabel\")}),/*#__PURE__*/_jsxs(\"span\",{className:\"sm-along-group is-calendar\",\"data-feed\":scene.cal,children:[calendar.map((t,i)=>/*#__PURE__*/_jsx(Mark,{src:t.logo,alt:\"\"},i)),pick(\"calendarLabel\")]}),/*#__PURE__*/_jsxs(\"span\",{className:\"sm-along-group is-files\",\"data-feed\":scene.files,children:[files.map((t,i)=>/*#__PURE__*/_jsx(Mark,{src:t.logo,alt:\"\"},i)),pick(\"filesLabel\")]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-side is-right\",\"data-feed\":scene.files,children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-tie\",\"aria-hidden\":\"true\",children:scene.files===\"run\"?/*#__PURE__*/_jsx(\"span\",{className:\"sm-feed\"},scene.filesKey):null}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-aside\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-aside-label sm-mono\",children:pick(\"filesLabel\")}),/*#__PURE__*/_jsx(\"ul\",{className:\"sm-aside-list\",children:files.map((t,i)=>/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(Mark,{src:t.logo,alt:\"\"}),t.name]},i))}),pick(\"filesLine\")?/*#__PURE__*/_jsx(\"p\",{className:\"sm-aside-line\",children:pick(\"filesLine\")}):null]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-link\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-up\"}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-down\"}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-up-label sm-mono\",children:pick(\"upLabel\")}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-down-label sm-mono\",children:pick(\"downLabel\")}),/*#__PURE__*/_jsx(\"span\",{className:`sm-gate${scene.gate?\" is-open\":\"\"}`,children:/*#__PURE__*/_jsx(Tick,{})}),/*#__PURE__*/_jsx(\"span\",{className:\"sm-gate-label sm-mono\",children:pick(\"gateLabel\")}),scene.token?/*#__PURE__*/_jsx(\"span\",{className:\"sm-token\"},scene.tokenKey):null]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-plate\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-tier sm-mono\",style:{margin:0},children:pick(\"crmLabel\")}),/*#__PURE__*/_jsx(\"ul\",{className:\"sm-crms\",children:crms.map((t,i)=>/*#__PURE__*/_jsx(Tile,{name:t.name,logo:t.logo,hit:scene.hit===i},i))})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sm-foot\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"sm-foot-text\",children:[pick(\"caption\")?/*#__PURE__*/_jsx(\"p\",{className:\"sm-cap\",children:pick(\"caption\")}):null,pick(\"signinLine\")?/*#__PURE__*/_jsx(\"p\",{className:\"sm-signin sm-mono\",children:pick(\"signinLine\")}):null]}),autoplay?/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"sm-toggle sm-mono\",onClick:()=>setPlaying(p=>!p),children:[/*#__PURE__*/_jsx(\"span\",{className:\"sm-ico\",\"data-icon\":playing?\"pause\":\"play\",\"aria-hidden\":\"true\"}),playing?pick(\"pauseLabel\"):pick(\"playLabel\")]}):null]})]})}),/*#__PURE__*/_jsx(\"figcaption\",{className:\"sm-vh\",children:pick(\"draftAlt\")})]});}const text=(title,defaultValue,area=false)=>({type:ControlType.String,title,defaultValue,...area?{displayTextArea:true}:{}});const image=(title,description)=>({type:ControlType.Image,title,description});const fontControl=(title,defaultFontType,description)=>({type:ControlType.Font,title,description,controls:\"basic\",defaultFontType,displayFontSize:false,displayTextAlignment:false});addPropertyControls(StackMapR2,{callsLabel:text(\"Calls label\",D.callsLabel),meetName:text(\"App 1\",D.meetName),meetLogo:image(\"App 1 logo\",\"Google Meet has no logo in the project: a text tile until this is set.\"),teamsName:text(\"App 2\",D.teamsName),teamsLogo:image(\"App 2 logo\",\"Microsoft Teams, the page's own asset when unset.\"),zoomName:text(\"App 3\",D.zoomName),zoomLogo:image(\"App 3 logo\",\"Zoom, the page's own asset when unset.\"),liveLabel:text(\"Live label\",D.liveLabel),moments:text(\"Moments\",D.moments,true),brandStyle:{type:ControlType.Enum,title:\"Layer shows\",options:[\"logo\",\"text\"],optionTitles:[\"Logo\",\"Name (before 19 Oct)\"],defaultValue:\"logo\",displaySegmentedControl:true,description:\"Logo: the site nav's Ricavi logo (its mark alone where the row is under 220px). Name: the layer name in type.\"},brandLogo:{...image(\"Layer logo\",\"The site nav's Ricavi logo when unset.\"),hidden:p=>p.brandStyle===\"text\"},brandName:{...text(\"Layer name\",D.brandName),description:\"Shown with Name; with Logo it is the logo's alt text.\"},brandLine:text(\"Layer line\",D.brandLine,true),trayLabel:text(\"Tray label\",D.trayLabel),draftLabel:text(\"Draft label\",D.draftLabel),draftSource:{...text(\"Draft render URL\",DRAFT_SOURCE),placeholder:\"https://\",description:\"The Actions render (2880x1800) the two draft pieces are cut from.\"},draftImage:image(\"Draft image\",\"An uploaded crop shown whole instead of the two pieces.\"),draftTitleBox:{...text(\"Draft title box\",D.draftTitleBox),placeholder:\"x, y, w, h (percent of the render)\"},draftButtonBox:{...text(\"Draft button box\",D.draftButtonBox),placeholder:\"x, y, w, h (percent of the render)\"},draftAlt:text(\"Draft alt\",D.draftAlt,true),draftPhoneBelow:{type:ControlType.Number,title:\"Draft phone below\",defaultValue:PHONE_BELOW,min:0,max:1400,step:10,unit:\"px\",description:\"Container width under which the drafted row is re-set for a narrow box (title over two lines, button under it, at most 1.15x). 0 turns it off.\"},draftSplit:{...text(\"Draft split\",\"\"),placeholder:\"x (percent of the render)\",description:\"Where the title wraps on narrow boxes: the x where the second line's first word starts, in percent of the desktop render. Empty: the default row wraps after “to”; any other row keeps the desktop pair.\"},draftPhoneSource:{...text(\"Draft phone render\",\"\"),placeholder:\"https://\",description:\"The phone-native Actions render (1140x2160). Empty: the project's actions-phone render.\"},draftPhoneBox:{...text(\"Draft phone box\",\"\"),placeholder:\"x, y, w, h (percent of the phone render)\",description:\"The title in the phone render. Empty: the Up next row, used only with the default title box.\"},statusWaiting:text(\"Status: waiting\",D.statusWaiting),statusApproved:text(\"Status: approved\",D.statusApproved),statusSynced:text(\"Status: synced\",D.statusSynced),restApproved:{type:ControlType.Boolean,title:\"Rest status\",defaultValue:false,enabledTitle:\"Approved\",disabledTitle:\"Synced\",description:\"What the still picture says under the draft (canvas, reduced motion, paused, not yet in view). Approved: “Approved by the rep”, so “Synced” never shows before an approval. Synced: as built.\"},upLabel:text(\"Up line\",D.upLabel),downLabel:text(\"Down line\",D.downLabel),gateLabel:text(\"Gate\",D.gateLabel),crmLabel:text(\"CRM label\",D.crmLabel),crm1Name:text(\"CRM 1\",D.crm1Name),crm1Logo:image(\"CRM 1 logo\",\"HubSpot when unset.\"),crm2Name:text(\"CRM 2\",D.crm2Name),crm2Logo:image(\"CRM 2 logo\",\"Salesforce when unset.\"),crm3Name:text(\"CRM 3\",D.crm3Name),crm3Logo:image(\"CRM 3 logo\",\"Microsoft Dynamics when unset.\"),asideLabel:text(\"Alongside label\",D.asideLabel),calendarLabel:text(\"Calendar label\",D.calendarLabel),calendarLine:text(\"Calendar line\",D.calendarLine,true),calendar1Name:text(\"Calendar 1\",D.calendar1Name),calendar1Logo:image(\"Calendar 1 logo\",\"Google Calendar when unset.\"),calendar2Name:text(\"Calendar 2\",D.calendar2Name),calendar2Logo:image(\"Calendar 2 logo\",\"Outlook when unset.\"),filesLabel:text(\"Files label\",D.filesLabel),filesLine:text(\"Files line\",D.filesLine,true),files1Name:text(\"Files 1\",D.files1Name),files1Logo:image(\"Files 1 logo\",\"Google Drive when unset.\"),files2Name:text(\"Files 2\",D.files2Name),files2Logo:image(\"Files 2 logo\",\"OneDrive when unset.\"),caption:text(\"Caption\",D.caption,true),signinLine:text(\"Sign-in line\",D.signinLine,true),summary:text(\"Summary (screen readers)\",D.summary,true),pauseLabel:text(\"Pause label\",D.pauseLabel),playLabel:text(\"Play label\",D.playLabel),autoplay:{type:ControlType.Boolean,title:\"Motion\",defaultValue:true,enabledTitle:\"Runs\",disabledTitle:\"Settled\",description:\"Off shows the settled picture everywhere.\"},font:fontControl(\"Font\",\"sans-serif\",\"Instrument Sans when unset.\"),mono:fontControl(\"Mono\",\"monospace\",\"Geist Mono, Medium (500) when unset.\"),ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#F8F8F7\",description:\"The text colour on the band (Inverse on the near-black band).\"},accent:{type:ControlType.Color,title:\"Burnt peach\",defaultValue:\"#FF584A\"},paper:{type:ControlType.Color,title:\"Band\",defaultValue:\"#0A0A0C\",description:\"The band behind the figure: fills the gate and the hollow markers; a dark band gives translucent cards.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"StackMapR2Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"StackMapR2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StackMapR2.map"],"mappings":"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"}