{"version":3,"file":"CubeMark.DsSuTX_7.mjs","names":["_Fragment","useRef","useState"],"sources":["https:/framerusercontent.com/modules/hVKBxNv4gRb4x2XnRDIm/dCUGBBO7YmAJA55tSuQ1/NotchBevel.js","https:/framerusercontent.com/modules/WkZwlXU7JmOzi28AMcw1/8L1XcmhqXtAGU3KXFC9Y/CubeMark.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Notch Shoulder\n *\n * One side of a notch. Rounded: a straight side with a rounded corner where it turns along the notch floor and a\n * small inward curve where it leaves the strip (size the box radius + fillet wide). Bevel: a 30° slope (size the box\n * width ≈ height × 1.73). Fills the notch colour on the notch's side and draws a hairline along the edge.\n *\n * Side: which side of the notch this shoulder sits on. Edge: whether the notch hangs from the top edge or rises from the bottom.\n *\n * @framerIntrinsicWidth 28\n * @framerIntrinsicHeight 48\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function NotchBevel(props){const{shape=\"Rounded\",side=\"Left\",edge=\"Top\",radius=16,fillet=12,fill=\"#FFFFFF\",line=\"rgba(10, 10, 10, 0)\"}=props;// Drawn as the top-hanging left shoulder, then mirrored. Plain CSS, so it's the right size from the first frame.\nconst flip=`scale(${side===\"Right\"?-1:1}, ${edge===\"Bottom\"?-1:1})`;const f=Math.max(0,fillet);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{...props.style,position:\"relative\",width:\"100%\",height:\"100%\",transform:flip},children:shape===\"Bevel\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:fill,clipPath:\"polygon(0 0, 100% 0, 100% 100%)\"}}),/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 100 100\",preserveAspectRatio:\"none\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"line\",{x1:0,y1:0,x2:100,y2:100,style:{stroke:line},strokeWidth:1,vectorEffect:\"non-scaling-stroke\"})})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:f,right:0,top:0,bottom:0,background:fill,borderBottomLeftRadius:radius}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,top:0,width:f,height:f,background:`radial-gradient(circle at 0 100%, transparent ${f-.5}px, ${fill} ${f}px)`}})]})});}addPropertyControls(NotchBevel,{shape:{type:ControlType.Enum,title:\"Shape\",options:[\"Rounded\",\"Bevel\"],defaultValue:\"Rounded\",displaySegmentedControl:true},side:{type:ControlType.Enum,title:\"Side\",options:[\"Left\",\"Right\"],defaultValue:\"Left\",displaySegmentedControl:true},edge:{type:ControlType.Enum,title:\"Edge\",options:[\"Top\",\"Bottom\"],defaultValue:\"Top\",displaySegmentedControl:true},radius:{type:ControlType.Number,title:\"Corner\",defaultValue:16,min:0,max:40,unit:\"px\",hidden:p=>p.shape===\"Bevel\"},fillet:{type:ControlType.Number,title:\"Fillet\",defaultValue:12,min:0,max:40,unit:\"px\",hidden:p=>p.shape===\"Bevel\"},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#FFFFFF\"},line:{type:ControlType.Color,title:\"Line\",defaultValue:\"rgba(10, 10, 10, 0)\",hidden:p=>p.shape!==\"Bevel\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NotchBevel\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"28\",\"framerIntrinsicHeight\":\"48\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NotchBevel.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * Cube Mark\n *\n * The site's cube in miniature: a 30° isometric cube with cobalt faces and an ink outline. Use it as the marker in\n * section labels and notch labels. In \"Current page\" mode it only shows when the link it sits inside points at the\n * page being viewed, which is how the nav marks where you are.\n *\n * @framerIntrinsicWidth 10\n * @framerIntrinsicHeight 10\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CubeMark(props){const{mode=\"Always\",size=10,lit=true}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);const[on,setOn]=useState(mode===\"Always\");useEffect(()=>{if(mode===\"Always\"){setOn(true);return;}const check=()=>{const a=ref.current?.closest(\"a\");const href=a?.getAttribute(\"href\");if(!href){setOn(false);return;}let path=\"\";try{path=new URL(href,window.location.href).pathname.replace(/\\/$/,\"\");}catch{path=\"\";}const here=window.location.pathname.replace(/\\/$/,\"\");// the home link only counts on the home page; other links also count on their sub-pages\nconst match=path===\"\"?here===\"\":here===path||here.startsWith(path+\"/\");if(!match){setOn(false);return;}// when several items share a link (Careers and Contact both go to /contact), mark the one named for the page\nconst peers=Array.from(document.querySelectorAll(\"a\")).filter(x=>x.getAttribute(\"href\")===href&&x.querySelector(\"[data-cube-current]\"));const slug=(path.split(\"/\").pop()||\"home\").replace(/-/g,\" \").toLowerCase();const named=peers.find(x=>(x.textContent||\"\").trim().toLowerCase().startsWith(slug));setOn(peers.length<2||(named?named===a:peers[0]===a));};check();// Framer navigates without a full reload, and nav items only become links after their entrance,\n// so re-check whenever the address or this item's link changes\nconst key=()=>window.location.pathname+\"|\"+(ref.current?.closest(\"a\")?.getAttribute(\"href\")||\"\");let last=key();const id=window.setInterval(()=>{const k=key();if(k!==last){last=k;check();}},300);return()=>window.clearInterval(id);},[mode]);const show=mode===\"Always\"||on||isStatic&&mode!==\"Current page\";const f=lit?[\"#4A63D0\",\"#2D47C4\",\"#1F3FBF\"]:[\"#FFFFFF\",\"#E6E6E6\",\"#C7C7C7\"];return /*#__PURE__*/_jsx(\"div\",{ref:ref,\"aria-hidden\":\"true\",\"data-cube-current\":mode===\"Current page\"?\"\":undefined,style:{...props.style,position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 14 14\",style:{display:\"block\",overflow:\"visible\",opacity:show?1:0,transform:show?\"translateY(0)\":\"translateY(2px)\",transition:\"opacity 0.4s cubic-bezier(.2,.8,.2,1), transform 0.4s cubic-bezier(.2,.8,.2,1)\"},children:/*#__PURE__*/_jsxs(\"g\",{stroke:\"#0A0A0A\",strokeWidth:.8,strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"polygon\",{points:\"7,1 12.2,4 7,7 1.8,4\",style:{fill:f[0]}}),/*#__PURE__*/_jsx(\"polygon\",{points:\"1.8,4 7,7 7,13 1.8,10\",style:{fill:f[1]}}),/*#__PURE__*/_jsx(\"polygon\",{points:\"7,7 12.2,4 12.2,10 7,13\",style:{fill:f[2]}})]})})});}addPropertyControls(CubeMark,{mode:{type:ControlType.Enum,title:\"Show\",options:[\"Always\",\"Current page\"],defaultValue:\"Always\",displaySegmentedControl:true,description:\"Current page: only when the surrounding link points at this page\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:10,min:6,max:32,unit:\"px\"},lit:{type:ControlType.Boolean,title:\"Cobalt\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CubeMark\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"10\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"10\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CubeMark.map"],"mappings":"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"}