{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/LgOnNw9TICr3j9Kaqbee/DG9sZq14IJ7BATqKIcUg/JobListingsDynamic.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useMemo}from\"react\";const DEPARTMENT_ORDER=[\"Go-to-Market (GTM)\",\"Operations\",\"People and Culture\",\"Product Engineering\",\"Machine Learning Engineering\",\"Science\"];const API_URL=\"https://vcatcg4d435vcgjltk5fuq2q240eeyjn.lambda-url.us-west-2.on.aws/\";// Helper functions\nconst formatEmploymentType=type=>type.replace(/FullTime/g,\"Full Time\");const sortDepartments=(a,b)=>{if(a===\"Other\"&&b!==\"Other\")return 1;if(b===\"Other\"&&a!==\"Other\")return-1;const indexA=DEPARTMENT_ORDER.indexOf(a);const indexB=DEPARTMENT_ORDER.indexOf(b);if(indexA!==-1&&indexB!==-1)return indexA-indexB;if(indexA!==-1)return-1;if(indexB!==-1)return 1;return a.localeCompare(b);};// Components\nconst ApplyButton=({href})=>/*#__PURE__*/_jsxs(\"a\",{className:\"apply-cta\",href:href,target:\"_blank\",rel:\"noopener noreferrer\",children:[\"Apply \",/*#__PURE__*/_jsx(\"i\",{className:\"bi bi-arrow-up-right\"})]});const JobCard=({job})=>{const location=job.locationName||\"Remote\";const employmentType=formatEmploymentType(job.employmentType);const jobDetails=`${employmentType}, ${location}`;return /*#__PURE__*/_jsxs(\"div\",{className:\"job-card\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"job-row top-row\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"job-title\",children:job.title}),/*#__PURE__*/_jsx(\"div\",{className:\"apply-inline\",children:/*#__PURE__*/_jsx(ApplyButton,{href:job.externalLink})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"job-row bottom-row\",children:/*#__PURE__*/_jsx(\"div\",{className:\"job-details\",children:jobDetails})}),/*#__PURE__*/_jsx(\"div\",{className:\"apply-below\",children:/*#__PURE__*/_jsx(ApplyButton,{href:job.externalLink})})]});};const FilterSelect=({id,label,value,onChange,options})=>/*#__PURE__*/_jsxs(\"div\",{className:\"filter-group\",children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:id,children:[label,\":\"]}),/*#__PURE__*/_jsx(\"select\",{id:id,value:value,onChange:e=>onChange(e.target.value),children:options.map(option=>/*#__PURE__*/_jsx(\"option\",{value:option,children:option},option))})]});export default function JobListings(){const[rawJobs,setRawJobs]=useState([]);const[loading,setLoading]=useState(true);const[selectedDept,setSelectedDept]=useState(\"All\");const[selectedLocation,setSelectedLocation]=useState(\"All\");// Fetch jobs from API\nuseEffect(()=>{const fetchJobs=async()=>{try{const response=await fetch(API_URL,{method:\"POST\"});const text=await response.text();const data=JSON.parse(text);if(Array.isArray(data.results)){setRawJobs(data.results);}else{console.error(\"Unexpected data format:\",data);}}catch(error){console.error(\"Error fetching jobs:\",error);}finally{setLoading(false);}};fetchJobs();},[]);// Filter and group jobs\nconst{filteredJobs,jobsByCategory}=useMemo(()=>{const filtered=rawJobs.filter(job=>{const team=job.teamName||\"General\";const location=job.locationName||\"Remote\";const deptMatch=selectedDept===\"All\"||team===selectedDept;const locationMatch=selectedLocation===\"All\"||location===selectedLocation;return deptMatch&&locationMatch;});const grouped={};filtered.forEach(job=>{const team=job.teamName||\"General\";if(!grouped[team])grouped[team]=[];grouped[team].push(job);});// Sort jobs within each category and sort categories\nObject.values(grouped).forEach(jobs=>{jobs.sort((a,b)=>a.title.localeCompare(b.title));});const sortedCategories={};Object.keys(grouped).sort(sortDepartments).forEach(category=>{sortedCategories[category]=grouped[category];});return{filteredJobs:filtered,jobsByCategory:sortedCategories};},[rawJobs,selectedDept,selectedLocation]);// Generate filter options\nconst departmentOptions=[\"All\",...Object.keys(jobsByCategory)];const locationOptions=[\"All\",...Array.from(new Set(rawJobs.map(job=>job.locationName||\"Remote\")))];if(loading){return /*#__PURE__*/_jsx(\"div\",{children:\"Loading...\"});}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"section\",{className:\"filters\",children:[/*#__PURE__*/_jsx(FilterSelect,{id:\"deptFilter\",label:\"Team\",value:selectedDept,onChange:setSelectedDept,options:departmentOptions}),/*#__PURE__*/_jsx(FilterSelect,{id:\"locFilter\",label:\"Location\",value:selectedLocation,onChange:setSelectedLocation,options:locationOptions})]}),/*#__PURE__*/_jsx(\"section\",{className:\"section\",children:/*#__PURE__*/_jsx(\"div\",{className:\"container\",children:Object.entries(jobsByCategory).map(([category,jobs])=>/*#__PURE__*/_jsxs(\"div\",{className:\"department-container\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"department-header\",children:/*#__PURE__*/_jsx(\"div\",{className:\"department-title\",children:category})}),/*#__PURE__*/_jsx(\"div\",{className:\"vertical-separator\"}),/*#__PURE__*/_jsx(\"div\",{className:\"department-jobs\",children:jobs.map(job=>/*#__PURE__*/_jsx(JobCard,{job:job},job.id))})]},category))})}),/*#__PURE__*/_jsx(\"style\",{children:`\n                * {\n                    font-family: \"Milling Duplex 1mm\", sans-serif;\n                }\n                \n                /* FILTERS */\n                .filters {\n                    display: flex;\n                    width: 100%;\n                    max-width: 1600px;\n                    margin: 0 auto 16px;\n                    gap: 8px;\n                    padding: 20px;\n                    background: #F4F3F3;\n                    align-items: center;\n                }\n                \n                .filter-group {\n                    width: 50%;\n                }\n                \n                .filter-group label {\n                    display: block;\n                    margin-bottom: 8px;\n                    font-weight: 600;\n                    font-size: 14px;\n                }\n                \n                .filter-group select {\n                    appearance: none;\n                    -webkit-appearance: none;\n                    -moz-appearance: none;\n                    width: 100%;\n                    height: 48px;\n                    padding: 0 12px;\n                    padding-right: 32px;\n                    border-radius: 12px;\n                    border: 1px solid #ccc;\n                    background-color: white;\n                    background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='2' fill='none'/%3E%3C/svg%3E\");\n                    background-repeat: no-repeat;\n                    background-position: right 12px center;\n                    cursor: pointer;\n                    font-size: 14px;\n                }\n                \n                /* LAYOUT */\n                .section {\n                    padding: 0;\n                    margin: 0;\n                }\n                \n                .container {\n                    max-width: 1600px;\n                    margin: 0 auto;\n                }\n                \n                .department-container {\n                    display: flex;\n                    flex-direction: row;\n                    align-items: stretch;\n                    margin-bottom: 40px;\n                    border-left: 1px solid #D3D1CF;\n                    border-right: 1px solid #D3D1CF;\n                    padding: 0 20px;\n                }\n                \n                .vertical-separator {\n                    width: 1px;\n                    background: #D3D1CF;\n                    margin: 0 20px;\n                }\n                \n                .department-header {\n                    display: flex;\n                    align-items: flex-start;\n                    padding: 10px;\n                    position: sticky;\n                    top: 0;\n                    background: #F4F3F3;\n                    z-index: 10;\n                    align-self: flex-start;\n                    flex: 1;\n                    padding-right: 20px;\n                }\n                \n                .department-jobs {\n                    padding: 10px;\n                    flex: 1;\n                    padding-left: 20px;\n                }\n                \n                /* JOB CARDS */\n                .job-card {\n                    padding: 24px;\n                    background: #ECECEC;\n                    border-radius: 24px;\n                    margin-bottom: 24px;\n                }\n                \n                .job-row {\n                    display: flex;\n                    justify-content: space-between;\n                    align-items: center;\n                }\n                \n                .job-row.top-row {\n                    margin-bottom: 8px;\n                }\n                \n                .job-row.bottom-row {\n                    color: rgba(0, 0, 0, 0.5);\n                }\n                \n                .apply-cta {\n                    text-decoration: none;\n                    color: black;\n                    white-space: nowrap;\n                    flex-shrink: 0;\n                }\n                \n                .apply-cta i {\n                    margin-left: 4px;\n                    font-size: 12px;\n                }\n                \n                /* RESPONSIVE DESIGN */\n                @media (min-width: 1200px) {\n                    .filter-group { width: 25%; }\n                    .vertical-separator { margin: 0 40px; }\n                    .department-header { padding-right: 40px; }\n                    .department-jobs { padding-left: 40px; }\n                    .apply-inline { display: block; }\n                    .apply-below { display: none; }\n                    \n                    .department-title { font-size: 20px; line-height: 28px; }\n                    .job-title, .apply-cta { font-size: 16px; line-height: 24px; }\n                    .job-details { font-size: 12px; line-height: 20px; }\n                }\n                \n                @media (min-width: 810px) and (max-width: 1199px) {\n                    .apply-inline { display: none; }\n                    .apply-below { display: block; margin-top: 8px; }\n                    \n                    .department-title { font-size: 20px; line-height: 28px; }\n                    .job-title, .apply-cta { font-size: 16px; line-height: 24px; }\n                    .job-details { font-size: 12px; line-height: 20px; }\n                }\n                \n                @media (max-width: 1199px) {\n                    .filters { flex-direction: column; align-items: stretch; }\n                    .filter-group { width: 100%; }\n                }\n                \n                @media (max-width: 809px) {\n                    .section { padding: 56px 0; margin: 56px 0; }\n                    .container { padding: 0; }\n                    .department-container { flex-direction: column; padding: 0 20px; }\n                    .vertical-separator { display: none; }\n                    .department-header, .department-jobs { width: 100%; padding: 0; }\n                    .apply-inline { display: none; }\n                    .apply-below { display: block; margin-top: 8px; }\n                    \n                    .department-title { font-size: 18px; line-height: 26px; }\n                    .job-title, .apply-cta { font-size: 16px; line-height: 24px; }\n                    .job-details { font-size: 12px; line-height: 20px; }\n                }\n                \n                @media (min-width: 810px) {\n                    .vertical-separator { display: block; }\n                    .department-header, .department-jobs { flex: 1; }\n                }\n            `})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"JobListings\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./JobListingsDynamic.map"],
  "mappings": "uJAAAA,IAA6H,IAAMC,EAAiB,CAAC,qBAAqB,aAAa,qBAAqB,sBAAsB,+BAA+B,SAAS,EAAQC,EAAQ,wEACpRC,EAAqBC,GAAMA,EAAK,QAAQ,YAAY,WAAW,EAAQC,EAAgB,CAACC,EAAEC,IAAI,CAAC,GAAGD,IAAI,SAASC,IAAI,QAAQ,MAAO,GAAE,GAAGA,IAAI,SAASD,IAAI,QAAQ,MAAM,GAAG,IAAME,EAAOP,EAAiB,QAAQK,CAAC,EAAQG,EAAOR,EAAiB,QAAQM,CAAC,EAAE,OAAGC,IAAS,IAAIC,IAAS,GAAUD,EAAOC,EAAUD,IAAS,GAAS,GAAMC,IAAS,GAAU,EAASH,EAAE,cAAcC,CAAC,CAAE,EACtXG,EAAY,CAAC,CAAC,KAAAC,CAAI,IAAiBC,EAAM,IAAI,CAAC,UAAU,YAAY,KAAKD,EAAK,OAAO,SAAS,IAAI,sBAAsB,SAAS,CAAC,SAAsBE,EAAK,IAAI,CAAC,UAAU,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAQC,EAAQ,CAAC,CAAC,IAAAC,CAAG,IAAI,CAAC,IAAMC,EAASD,EAAI,cAAc,SAA6EE,EAAW,GAA1Dd,EAAqBY,EAAI,cAAc,CAAoC,KAAKC,CAAQ,GAAG,OAAoBJ,EAAM,MAAM,CAAC,UAAU,WAAW,SAAS,CAAcA,EAAM,MAAM,CAAC,UAAU,kBAAkB,SAAS,CAAcC,EAAK,MAAM,CAAC,UAAU,YAAY,SAASE,EAAI,KAAK,CAAC,EAAeF,EAAK,MAAM,CAAC,UAAU,eAAe,SAAsBA,EAAKH,EAAY,CAAC,KAAKK,EAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAeF,EAAK,MAAM,CAAC,UAAU,qBAAqB,SAAsBA,EAAK,MAAM,CAAC,UAAU,cAAc,SAASI,CAAU,CAAC,CAAC,CAAC,EAAeJ,EAAK,MAAM,CAAC,UAAU,cAAc,SAAsBA,EAAKH,EAAY,CAAC,KAAKK,EAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,EAAQG,EAAa,CAAC,CAAC,GAAAC,EAAG,MAAAC,EAAM,MAAAC,EAAM,SAAAC,EAAS,QAAAC,CAAO,IAAiBX,EAAM,MAAM,CAAC,UAAU,eAAe,SAAS,CAAcA,EAAM,QAAQ,CAAC,QAAQO,EAAG,SAAS,CAACC,EAAM,GAAG,CAAC,CAAC,EAAeP,EAAK,SAAS,CAAC,GAAGM,EAAG,MAAME,EAAM,SAASG,GAAGF,EAASE,EAAE,OAAO,KAAK,EAAE,SAASD,EAAQ,IAAIE,GAAqBZ,EAAK,SAAS,CAAC,MAAMY,EAAO,SAASA,CAAM,EAAEA,CAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAiB,SAARC,GAA8B,CAAC,GAAK,CAACC,EAAQC,CAAU,EAAEC,EAAS,CAAC,CAAC,EAAO,CAACC,EAAQC,CAAU,EAAEF,EAAS,EAAI,EAAO,CAACG,EAAaC,CAAe,EAAEJ,EAAS,KAAK,EAAO,CAACK,EAAiBC,CAAmB,EAAEN,EAAS,KAAK,EAC5gDO,EAAU,IAAI,EAAiB,SAAS,CAAC,GAAG,CAAqD,IAAMC,EAAK,MAAhD,MAAM,MAAMnC,EAAQ,CAAC,OAAO,MAAM,CAAC,GAA4B,KAAK,EAAQoC,EAAK,KAAK,MAAMD,CAAI,EAAK,MAAM,QAAQC,EAAK,OAAO,EAAGV,EAAWU,EAAK,OAAO,EAAQ,QAAQ,MAAM,0BAA0BA,CAAI,CAAG,OAAOC,EAAM,CAAC,QAAQ,MAAM,uBAAuBA,CAAK,CAAE,QAAC,CAAQR,EAAW,EAAK,CAAE,CAAC,GAAY,CAAE,EAAE,CAAC,CAAC,EACpX,GAAK,CAAC,aAAAS,EAAa,eAAAC,CAAc,EAAEC,EAAQ,IAAI,CAAC,IAAMC,EAAShB,EAAQ,OAAOZ,GAAK,CAAC,IAAM6B,EAAK7B,EAAI,UAAU,UAAgBC,EAASD,EAAI,cAAc,SAA6I,OAApHiB,IAAe,OAAOY,IAAOZ,KAAiCE,IAAmB,OAAOlB,IAAWkB,EAAiD,CAAC,EAAQW,EAAQ,CAAC,EAAEF,EAAS,QAAQ5B,GAAK,CAAC,IAAM6B,EAAK7B,EAAI,UAAU,UAAc8B,EAAQD,CAAI,IAAEC,EAAQD,CAAI,EAAE,CAAC,GAAEC,EAAQD,CAAI,EAAE,KAAK7B,CAAG,CAAE,CAAC,EAC/c,OAAO,OAAO8B,CAAO,EAAE,QAAQC,GAAM,CAACA,EAAK,KAAK,CAACxC,EAAEC,IAAID,EAAE,MAAM,cAAcC,EAAE,KAAK,CAAC,CAAE,CAAC,EAAE,IAAMwC,EAAiB,CAAC,EAAE,cAAO,KAAKF,CAAO,EAAE,KAAKxC,CAAe,EAAE,QAAQ2C,GAAU,CAACD,EAAiBC,CAAQ,EAAEH,EAAQG,CAAQ,CAAE,CAAC,EAAQ,CAAC,aAAaL,EAAS,eAAeI,CAAgB,CAAE,EAAE,CAACpB,EAAQK,EAAaE,CAAgB,CAAC,EACnUe,EAAkB,CAAC,MAAM,GAAG,OAAO,KAAKR,CAAc,CAAC,EAAQS,EAAgB,CAAC,MAAM,GAAG,MAAM,KAAK,IAAI,IAAIvB,EAAQ,IAAIZ,GAAKA,EAAI,cAAc,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAGe,EAA6BjB,EAAK,MAAM,CAAC,SAAS,YAAY,CAAC,EAAuBD,EAAMuC,EAAU,CAAC,SAAS,CAAcvC,EAAM,UAAU,CAAC,UAAU,UAAU,SAAS,CAAcC,EAAKK,EAAa,CAAC,GAAG,aAAa,MAAM,OAAO,MAAMc,EAAa,SAASC,EAAgB,QAAQgB,CAAiB,CAAC,EAAepC,EAAKK,EAAa,CAAC,GAAG,YAAY,MAAM,WAAW,MAAMgB,EAAiB,SAASC,EAAoB,QAAQe,CAAe,CAAC,CAAC,CAAC,CAAC,EAAerC,EAAK,UAAU,CAAC,UAAU,UAAU,SAAsBA,EAAK,MAAM,CAAC,UAAU,YAAY,SAAS,OAAO,QAAQ4B,CAAc,EAAE,IAAI,CAAC,CAACO,EAASF,CAAI,IAAiBlC,EAAM,MAAM,CAAC,UAAU,uBAAuB,SAAS,CAAcC,EAAK,MAAM,CAAC,UAAU,oBAAoB,SAAsBA,EAAK,MAAM,CAAC,UAAU,mBAAmB,SAASmC,CAAQ,CAAC,CAAC,CAAC,EAAenC,EAAK,MAAM,CAAC,UAAU,oBAAoB,CAAC,EAAeA,EAAK,MAAM,CAAC,UAAU,kBAAkB,SAASiC,EAAK,IAAI/B,GAAkBF,EAAKC,EAAQ,CAAC,IAAIC,CAAG,EAAEA,EAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEiC,CAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAenC,EAAK,QAAQ,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aA4K9rC,CAAC,CAAC,CAAC,CAAC,CAAE",
  "names": ["init_ssg_sandbox_shims", "DEPARTMENT_ORDER", "API_URL", "formatEmploymentType", "type", "sortDepartments", "a", "b", "indexA", "indexB", "ApplyButton", "href", "u", "p", "JobCard", "job", "location", "jobDetails", "FilterSelect", "id", "label", "value", "onChange", "options", "e", "option", "JobListings", "rawJobs", "setRawJobs", "ye", "loading", "setLoading", "selectedDept", "setSelectedDept", "selectedLocation", "setSelectedLocation", "ue", "text", "data", "error", "filteredJobs", "jobsByCategory", "se", "filtered", "team", "grouped", "jobs", "sortedCategories", "category", "departmentOptions", "locationOptions", "l"]
}
