PageSourceSearch

https://gustavoscarpim.com/_next/static/chunks/pages/_app-e15fbd932fa3a6d5.js

js gustavoscarpim.com collected 2026-09-25 21:02:41 UTC 109,869 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{4371:function(t,n,i){"use strict";i.d(n,{Z:function(){return r}});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1}},1451:function(t,n,i){"use strict";let r,o;i.d(n,{QA:function(){return useTolgeeSSR},T:function(){return T},b5:function(){return useTolgee},qF:function(){return TolgeeProvider},qM:function(){return useTranslate}});var a=i(7294),c=i(1232);let d={useSuspense:!0},getProviderInstance=()=>(r||(r=a.createContext(void 0)),r),TolgeeProvider=({tolgee:t,options:n,children:i,fallback:r})=>{let[o,c]=(0,a.useState)(!t.isLoaded());(0,a.useEffect)(()=>{t.run().catch(t=>{console.error(t)}).finally(()=>{c(!1)})},[t]);let g=Object.assign(Object.assign({},d),n),f=getProviderInstance();return g.useSuspense?a.createElement(f.Provider,{value:{tolgee:t,options:g}},o?r:a.createElement(a.Suspense,{fallback:r||null},i)):a.createElement(f.Provider,{value:{tolgee:t,options:g}},o?r:i)},useTolgeeContext=()=>{let t=getProviderInstance(),n=(0,a.useContext)(t)||o;if(!n)throw Error("Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?");return n},useRerender=()=>{let[t,n]=(0,a.useState)(0),i=(0,a.useCallback)(()=>{n(t=>t+1)},[n]);return{instance:t,rerender:i}},useTranslateInternal=(t,n)=>{let{tolgee:i,options:r}=useTolgeeContext(),o=(0,c.go)(t),d=(0,c.xk)(o).join(":"),g=Object.assign(Object.assign({},r),n),{rerender:f,instance:h}=useRerender(),_=(0,a.useRef)(),m=(0,a.useRef)([]);m.current=[];let subscribeToNs=t=>{var n;m.current.push(t),null===(n=_.current)||void 0===n||n.subscribeNs(t)},v=i.isLoaded(o);(0,a.useEffect)(()=>{let t=i.onNsUpdate(f);return _.current=t,t.subscribeNs(o),m.current.forEach(n=>{t.subscribeNs(n)}),()=>{t.unsubscribe()}},[d,i]),(0,a.useEffect)(()=>(i.addActiveNs(o),()=>i.removeActiveNs(o)),[d,i]);let y=(0,a.useCallback)(t=>{var n;let r=null!==(n=t.ns)&&void 0!==n?n:null==o?void 0:o[0];return subscribeToNs(r),i.t(Object.assign(Object.assign({},t),{ns:r}))},[i,h]);if(g.useSuspense&&!v)throw i.addActiveNs(o,!0);return{t:y,isLoading:!v}},useTranslate=(t,n)=>{let{t:i,isLoading:r}=useTranslateInternal(t,n),o=(0,a.useCallback)((...t)=>{let n=(0,c.Wz)(...t);return i(n)},[i]);return{t:o,isLoading:r}},wrapTagHandlers=t=>{if(!t)return;let n={};return Object.entries(t||{}).forEach(([t,i])=>{"function"==typeof i?n[t]=t=>i(addReactKeys(t)):a.isValidElement(i)?n[t]=t=>void 0===i.props.children&&(null==t?void 0:t.length)?a.cloneElement(i,{},addReactKeys(t)):a.cloneElement(i):n[t]=i}),n},addReactKeys=t=>Array.isArray(t)?a.Children.toArray(t):t,TBase=t=>{let n=t.keyName||t.children;void 0===n&&console.error("T component: keyName not defined");let i=t.defaultValue||(t.keyName?t.children:void 0),r=addReactKeys(t.t({key:n,params:wrapTagHandlers(t.params),defaultValue:i,noWrap:t.noWrap,ns:t.ns,language:t.language}));return a.createElement(a.Fragment,null,r)},T=t=>{let{t:n}=useTranslateInternal();return a.createElement(TBase,Object.assign({t:n},t))},useTolgee=t=>{let{tolgee:n}=useTolgeeContext(),{rerender:i}=useRerender();return(0,a.useEffect)(()=>{let r=null==t?void 0:t.map(t=>n.on(t,i));return()=>{null==r||r.forEach(t=>t.unsubscribe())}},[null==t?void 0:t.join(":")]),n};function useTolgeeSSR(t,n,i){let r=(0,a.useMemo)(()=>Object.assign(Object.assign({},t),{t(...n){let i=(0,c.Wz)(...n);return t.t(Object.assign(Object.assign({},i),{noWrap:!0}))}}),[]),[o,d]=(0,a.useState)(r);return(0,a.useEffect)(()=>{d(t)},[]),(0,a.useMemo)(()=>{o.setEmitterActive(!1),o.addStaticData(i),o.changeLanguage(n),o.setEmitterActive(!0)},[n,i,o]),o}},1232:function(t,n,i){"use strict";function isPromise(t){return!!(t&&"function"==typeof t.then)}function valueOrPromise(t,n){return isPromise(t)?Promise.resolve(t).then(n):n(t)}function missingOptionError(t){let n=(Array.isArray(t)?t:[t]).map(t=>`'${t}'`),i=n.slice(-2).join(" or "),r=n.slice(0,-2),o=[...r,i].join(", ");return`Tolgee: You need to specify ${o} option`}function getFallback(t){return"string"==typeof t?[t]:Array.isArray(t)?t:void 0}function getFallbackArray(t){return getFallback(t)||[]}function unique(t){return Array.from(new Set(t))}function sanitizeUrl(t){return t?t.replace(/\/+$/,""):t}i.d(n,{N5:function(){return DevTools},Wz:function(){return getTranslateProps},go:function(){return getFallback},lY:function(){return FormatSimple},xk:function(){return getFallbackArray},xn:function(){return Tolgee}});let defaultFetchFunction=(t,n)=>
1fetch(t,n),createFetchFunction=(t=defaultFetchFunction)=>(n,i)=>t(n,Object.assign(Object.assign({},i),{headers:Object.assign({"X-Tolgee-SDK-Type":"JS","X-Tolgee-SDK-Version":"5.12.0"},null==i?void 0:i.headers)}));function EventEmitter(t){let n=[];return Object.freeze({listen(t){let handlerWrapper=n=>{t(n)};return n.push(handlerWrapper),{unsubscribe(){n=n.filter(t=>handlerWrapper!==t)}}},emit(i){t()&&n.forEach(t=>t({value:i}))}})}let flattenTranslations=t=>{let n=new Map;return Object.entries(t).forEach(([t,i])=>{if(null!=i){if("object"==typeof i){flattenTranslations(i).forEach((i,r)=>{n.set(t+"."+r,i)});return}n.set(t,i)}}),n},decodeCacheKey=t=>{let[n,...i]=t.split(":"),r=i.join(":");return{language:n,namespace:r||""}},encodeCacheKey=({language:t,namespace:n})=>n?`${t}:${n}`:t;function __rest$1(t,n){var i={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&0>n.indexOf(r)&&(i[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(t);o<r.length;o++)0>n.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(i[r[o]]=t[r[o]]);return i}let r="invalid",o={defaultNs:"",observerOptions:{tagAttributes:{textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},restrictedElements:["script","style"],highlightKeys:["Alt"],highlightColor:"rgb(255, 0, 0)",highlightWidth:5,inputPrefix:"%-%tolgee:",inputSuffix:"%-%",passToParent:["option","optgroup"],fullKeyEncode:!1},observerType:"invisible",onFormatError:r,apiUrl:"https://app.tolgee.io",fetch:createFetchFunction()},combineOptions=(...t)=>{let n={};return t.forEach(t=>{n=Object.assign(Object.assign(Object.assign({},n),t),{observerOptions:Object.assign(Object.assign({},n.observerOptions),null==t?void 0:t.observerOptions)})}),n};function initState(t,n){let i=combineOptions(o,null==n?void 0:n.initialOptions,t);return i.apiUrl=sanitizeUrl(i.apiUrl),(null==t?void 0:t.fetch)&&(i.fetch=createFetchFunction(t.fetch)),{initialOptions:i,activeNamespaces:(null==n?void 0:n.activeNamespaces)||new Map,language:null==n?void 0:n.language,pendingLanguage:null==n?void 0:n.language,isInitialLoading:!1,isRunning:!1}}let ValueObserver=(t,n,i)=>{let r=t;return Object.freeze({init(t){r=t},notify(){let t=n();r!==t&&i(t),r=t}})},getTranslateProps=(t,...n)=>{let i,r={};return"object"==typeof t?r=t:(r.key=t,"string"==typeof n[0]?(r.defaultValue=n[0],i=n[1]):"object"==typeof n[0]&&(i=n[0])),i&&(r=Object.assign(Object.assign({},function(t){var{ns:n,noWrap:i,orEmpty:r,params:o,language:a}=t,c=__rest$1(t,["ns","noWrap","orEmpty","params","language"]);return Object.assign(Object.assign({},{ns:n,noWrap:i,orEmpty:r,language:a}),{params:Object.assign({},c)})}(i)),r)),r},TolgeeCore=()=>{let t={plugins:[],options:{}},n=Object.freeze({use:i=>(t.plugins.push(i),n),updateDefaults:i=>(t.options=combineOptions(t.options,i),n),init(n){let i=function(t){let n=function({options:t}){let n;let i=function(t,n){let i=!0;function isActive(){return i}let r=Object.freeze({onPendingLanguageChange:EventEmitter(isActive),onLanguageChange:EventEmitter(isActive),onLoadingChange:EventEmitter(isActive),onFetchingChange:EventEmitter(isActive),onInitialLoaded:EventEmitter(isActive),onRunningChange:EventEmitter(isActive),onCacheChange:EventEmitter(isActive),onUpdate:function(t,n,i){let r=new Set,o=new Set,a=[];function solveQueue(){if(0===a.length)return;let t=a;a=[],r.forEach(t=>{t({value:void 0})});let i=new Set;t.forEach(t=>{void 0===t?i=void 0:void 0!==i&&t.forEach(t=>i.add(t))});let c=i?Array.from(i.keys()):void 0;!function(t){let i=new Set(n());o.forEach(n=>{let r=void 0===t||(null==t?void 0:t.findIndex(t=>i.has(t)||n.namespaces.has(t)))!==-1;r&&n.fn({value:void 0})})}(c)}return Object.freeze({emit(n,i){t()&&(a.push(n),i?setTimeout(solveQueue,0):solveQueue())},listen:t=>(r.add(t),{unsubscribe:()=>{r.delete(t)}}),listenSome(t){let n={fn:n=>{t(n)},namespaces:new Set};o.add(n);let r={unsubscribe:()=>{o.delete(n)},subscribeNs:t=>(getFallbackArray(t).forEach(t=>n.namespaces.add(t)),void 0===t&&n.namespaces.add(i()),r)};return r}})}(isActive,t,n),onPermanentChange:EventEmitter(isActive),setEmitterActive(t){i=t},on:(t,n)=>
1{switch(t){case"pendingLanguage":return r.onPendingLanguageChange.listen(n);case"language":return r.onLanguageChange.listen(n);case"loading":return r.onLoadingChange.listen(n);case"fetching":return r.onFetchingChange.listen(n);case"initialLoad":return r.onInitialLoaded.listen(n);case"running":return r.onRunningChange.listen(n);case"cache":return r.onCacheChange.listen(n);case"update":return r.onUpdate.listen(n);case"permanentChange":return r.onPermanentChange.listen(n)}}});return r.onInitialLoaded.listen(()=>r.onUpdate.emit()),r.onLanguageChange.listen(()=>r.onUpdate.emit()),r.onCacheChange.listen(({value:t})=>r.onUpdate.emit([t.namespace],!0)),r}(getFallbackNs,getDefaultNs),o=ValueObserver(!1,()=>g.isFetching(),i.onFetchingChange.emit),a=ValueObserver(!1,()=>f.isLoading(),i.onLoadingChange.emit),c=function(t,n,i){let r,o=initState(),a=Object.freeze({init(t){o=initState(t,o)},isRunning:()=>o.isRunning,setRunning(t){o.isRunning!==t&&(o.isRunning=t,i.emit(t))},isInitialLoading:()=>o.isInitialLoading,setInitialLoading(t){o.isInitialLoading=t},getLanguage:()=>o.language||o.initialOptions.language,setLanguage(n){o.language!==n&&(o.language=n,t.emit(n))},getPendingLanguage:()=>o.pendingLanguage||a.getLanguage(),setPendingLanguage(t){o.pendingLanguage!==t&&(o.pendingLanguage=t,n.emit(t))},getInitialOptions:()=>Object.assign(Object.assign({},o.initialOptions),r),addActiveNs(t){let n=getFallbackArray(t);n.forEach(t=>{let n=o.activeNamespaces.get(t);void 0!==n?o.activeNamespaces.set(t,n+1):o.activeNamespaces.set(t,1)})},removeActiveNs(t){let n=getFallbackArray(t);n.forEach(t=>{let n=o.activeNamespaces.get(t);void 0!==n&&n>1?o.activeNamespaces.set(t,n-1):o.activeNamespaces.delete(t)})},getRequiredNamespaces:()=>unique([...o.initialOptions.ns||[o.initialOptions.defaultNs],...getFallbackArray(o.initialOptions.fallbackNs),...o.activeNamespaces.keys()]),getFallbackLangs(t){var n,i;let r=t||a.getLanguage();return r?unique([r,..."object"!=typeof(i=n=o.initialOptions.fallbackLanguage)||Array.isArray(i)||null===i?getFallbackArray(n):getFallbackArray(null==n?void 0:n[r])]):[]},getFallbackNs:()=>getFallbackArray(o.initialOptions.fallbackNs),getDefaultNs:t=>void 0===t?o.initialOptions.defaultNs:t,getAvailableLanguages(){if(o.initialOptions.availableLanguages)return o.initialOptions.availableLanguages;if(o.initialOptions.staticData){let t=Object.keys(o.initialOptions.staticData).map(t=>decodeCacheKey(t).language);return Array.from(new Set(t))}},withDefaultNs:t=>({namespace:void 0===t.namespace?a.getInitialOptions().defaultNs:t.namespace,language:t.language}),overrideCredentials(t){r=t?Object.assign(Object.assign({},t),{apiUrl:sanitizeUrl(t.apiUrl)}):void 0}});return a}(i.onLanguageChange,i.onPendingLanguageChange,i.onRunningChange),d=function(t,n,i,o,a,c,d,g){let f={ui:void 0},h={formatters:[],finalFormatter:void 0,observer:void 0,devBackend:void 0,backends:[],ui:void 0,languageDetector:void 0,languageStorage:void 0},onClick=async({keysAndDefaults:t,event:n})=>{var i;let r=t.map(({key:t,ns:n,defaultValue:i})=>
1({key:t,defaultValue:i,fallbackNamespaces:o(n),namespace:a({key:t,ns:n})[0],translation:c({key:t,ns:n})}));null===(i=h.ui)||void 0===i||i.handleElementClick(r,n)},findPositions=(t,n)=>{var i;return(null===(i=h.observer)||void 0===i?void 0:i.findPositions(t,n))||[]};function translate(t){let n=c({key:t.key,ns:t.ns});return _.formatTranslation(Object.assign(Object.assign({},t),{translation:n,formatEnabled:!0}))}function getCommonProps(){return{fetch:n().fetch}}function setObserver(t){h.observer=null==t?void 0:t()}function hasObserver(){return!!h.observer}function addFormatter(t){t&&h.formatters.push(t)}function setFinalFormatter(t){h.finalFormatter=t}function setUi(t){f.ui=t}function hasUi(){return!!f.ui}function setLanguageStorage(t){h.languageStorage=t}function setLanguageDetector(t){h.languageDetector=t}function addBackend(t){t&&h.backends.push(t)}function setDevBackend(t){h.devBackend=t}let _=Object.freeze({addPlugin:function(t,n){let i=Object.freeze({setFinalFormatter,addFormatter,setObserver,hasObserver,setUi,hasUi,setDevBackend,addBackend,setLanguageDetector,setLanguageStorage});n(t,i)},run(){var t,i;let{apiKey:r,apiUrl:o,projectId:a,observerOptions:c}=n();h.ui=null===(t=f.ui)||void 0===t?void 0:t.call(f,{apiKey:r,apiUrl:o,projectId:a,highlight:_.highlight,changeTranslation:d,findPositions,onPermanentChange:g}),null===(i=h.observer)||void 0===i||i.run({mouseHighlight:!0,options:c,translate,onClick})},stop(){var t;h.ui=void 0,null===(t=h.observer)||void 0===t||t.stop()},getLanguageStorage:()=>h.languageStorage,getInitialLanguage(){var t;let n=i(),r=null===(t=h.languageStorage)||void 0===t?void 0:t.getLanguage(getCommonProps());return valueOrPromise(r,t=>(!n||n.includes(t))&&t?t:function(){if(!h.languageDetector)return;let t=i();return h.languageDetector.getLanguage(Object.assign({availableLanguages:t},getCommonProps()))}())},setStoredLanguage(t){var n;null===(n=h.languageStorage)||void 0===n||n.setLanguage(t,getCommonProps())},getDevBackend:()=>h.devBackend,getBackendRecord:({language:t,namespace:n})=>{for(let i of h.backends){let r=i.getRecord(Object.assign({language:t,namespace:n},getCommonProps()));if(isPromise(r))return null==r?void 0:r.catch(t=>(console.error(t),{}));if(void 0!==r)return r}},getBackendDevRecord:({language:t,namespace:i})=>{var r;let{apiKey:o,apiUrl:a,projectId:c}=n();return null===(r=h.devBackend)||void 0===r?void 0:r.getRecord(Object.assign({apiKey:o,apiUrl:a,projectId:c,language:t,namespace:i},getCommonProps()))},getLanguageDetector:()=>h.languageDetector,retranslate(){var t;null===(t=h.observer)||void 0===t||t.retranslate()},highlight:(t,n)=>{var i,r;return(null===(r=null===(i=h.observer)||void 0===i?void 0:i.highlight)||void 0===r?void 0:r.call(i,t,n))||{unhighlight(){}}},unwrap(t){var n;return h.observer?null===(n=h.observer)||void 0===n?void 0:n.unwrap(t):{text:t,keys:[]}},wrap(t){var n;return h.observer?null===(n=h.observer)||void 0===n?void 0:n.wrap(t):t.translation},hasDevBackend:()=>!!_.getDevBackend(),formatTranslation(i){var o,{formatEnabled:a}=i,c=__rest$1(i,["formatEnabled"]);let{key:d,translation:g,defaultValue:f,noWrap:_,params:m,orEmpty:v,ns:y}=c,b=g||f,S=b||(v?"":d),C=t(),w=a||!(null===(o=h.observer)||void 0===o?void 0:o.outputNotFormattable),wrap=t=>h.observer&&!_?h.observer.wrap({key:d,translation:t,defaultValue:f,params:m,ns:y}):t;S=wrap(S);try{if(b&&C&&w)for(let t of h.formatters)S=t.format({translation:S,language:C,params:m});h.finalFormatter&&b&&C&&w&&(S=h.finalFormatter.format({translation:S,language:C,params:m}))}catch(a){console.error(a);let t=("string"==typeof a?a:"string"==typeof(null==a?void 0:a.message)?a.message:void 0)||r,i=n().onFormatError,o=typeof i;S=wrap(S="string"===o?i:"function"===o?i(t,c):r)}return S}});return _}(c.getLanguage,c.getInitialOptions,c.getAvailableLanguages,getDefaultAndFallbackNs,getTranslationNs,getTranslation,changeTranslation,function(t){i.onPermanentChange.emit({key:t.key,namespace:t.namespace})}),g=function(t,n,i,r,o,a,c){let d=new Map,g=new Map,f={},h=0;function addRecordInternal(n,i,r){let o=encodeCacheKey(n);g.set(o,{data:flattenTranslations(i),version:r}),t.emit(n)}function fetchProd(t){let i;if(!i){let n=f[encodeCacheKey(t)];"function"==typeof n&&(i=n())}
1return i||(i=n(t)),i}let _=Object.freeze({addStaticData(t){t&&(f=Object.assign(Object.assign({},f),t),Object.entries(t).forEach(([t,n])=>{if("function"!=typeof n){let i=decodeCacheKey(t),r=g.get(t);r&&0!==r.version||addRecordInternal(i,n,0)}}))},invalidate(){d.clear(),h+=1},addRecord(t,n){addRecordInternal(t,n,h)},exists(t,n=!1){let i=g.get(encodeCacheKey(t));return i&&n?i.version===h:!!i},getRecord(t){var n;return null===(n=g.get(encodeCacheKey(r(t))))||void 0===n?void 0:n.data},getTranslation(t,n){var i;return null===(i=g.get(encodeCacheKey(t)))||void 0===i?void 0:i.data.get(n)},getTranslationNs(t,n,i){var r;for(let o of t)for(let t of n){let n=null===(r=g.get(encodeCacheKey({language:t,namespace:o})))||void 0===r?void 0:r.data.get(i);if(null!=n)return[o]}return unique(t)},getTranslationFallback(t,n,i){var r;for(let o of t)for(let t of n){let n=null===(r=g.get(encodeCacheKey({language:t,namespace:o})))||void 0===r?void 0:r.data.get(i);if(null!=n)return n}},changeTranslation(n,i,r){var o;let a=null===(o=g.get(encodeCacheKey(n)))||void 0===o?void 0:o.data;null==a||a.set(i,r),t.emit(Object.assign(Object.assign({},n),{key:i}))},isFetching(t){if(o())return!0;if(void 0===t)return d.size>0;let n=getFallbackArray(t);return!!Array.from(d.keys()).find(t=>n.includes(decodeCacheKey(t).namespace))},isLoading(t,n){let i=getFallbackArray(n);return!!(o()||Array.from(d.keys()).find(n=>{let r=decodeCacheKey(n);return(!i.length||i.includes(r.namespace))&&!_.exists({namespace:r.namespace,language:t})}))},async loadRecords(t,n){let o=t.map(t=>{var o;let a;let c=r(t),g=encodeCacheKey(c),f=d.get(g);if(f)return{new:!1,promise:f,keyObject:c,cacheKey:g};let h=(n&&(a=null===(o=i(c))||void 0===o?void 0:o.catch(()=>(console.warn("Tolgee: Failed to fetch data from dev backend"),fetchProd(c)))),a||(a=fetchProd(c)),a||Promise.resolve(void 0));return d.set(g,h),{new:!0,promise:h,keyObject:c,cacheKey:g}});a.notify(),c.notify();let g=await Promise.all(o.map(t=>t.promise));return o.forEach((t,n)=>{let i=d.get(t.cacheKey)!==t.promise;if(t.new&&!i){d.delete(t.cacheKey);let i=g[n];i?_.addRecord(t.keyObject,i):_.getRecord(t.keyObject)||_.addRecord(t.keyObject,{})}}),a.notify(),c.notify(),o.map(t=>_.getRecord(t.keyObject))},getAllRecords(){let t=Array.from(g.entries());return t.map(([t,n])=>Object.assign(Object.assign({},decodeCacheKey(t)),{data:n.data}))}});return _}(i.onCacheChange,d.getBackendRecord,d.getBackendDevRecord,c.withDefaultNs,c.isInitialLoading,o,a);function getFallbackNs(){return c.getFallbackNs()}function getDefaultNs(t){return c.getDefaultNs(t)}function getDefaultAndFallbackNs(t){return[...getFallbackArray(getDefaultNs(t)),...getFallbackNs()]}function getRequiredNamespaces(t){return[...getFallbackArray(null!=t?t:getDefaultNs()),...c.getRequiredNamespaces()]}function changeTranslation(t,n,i){let r=c.withDefaultNs(t),o=g.getTranslation(r,n);return g.changeTranslation(r,n,i),{revert(){g.changeTranslation(r,n,o)}}}function init(t){c.init(t),g.addStaticData(c.getInitialOptions().staticData)}function loadRequiredRecords(t,n){let i=function(t,n){let i=c.getFallbackLangs(t),r=getRequiredNamespaces(n),o=[];return i.forEach(t=>{r.forEach(n=>{g.exists({language:t,namespace:n},!0)||o.push({language:t,namespace:n})})}),o}(t,n);if(i.length)return valueOrPromise(f.loadRecords(i),()=>{})}function getTranslationNs({key:t,ns:n}){let i=c.getFallbackLangs(),r=getDefaultAndFallbackNs(null!=n?n:void 0);return g.getTranslationNs(r,i,t)}function getTranslation({key:t,ns:n,language:i}){let r=getDefaultAndFallbackNs(null!=n?n:void 0),o=c.getFallbackLangs(i);return g.getTranslationFallback(r,o,t)}t&&init(t),i.onUpdate.listen(()=>{c.isRunning()&&d.retranslate()});let f=Object.freeze(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},i),c),d),g),{init:init,getTranslation:getTranslation,changeTranslation:changeTranslation,getTranslationNs:getTranslationNs,getDefaultAndFallbackNs:getDefaultAndFallbackNs,async changeLanguage(t){(c.getPendingLanguage()!==t||c.getLanguage()!==t)&&(c.setPendingLanguage(t),c.isRunning()&&await loadRequiredRecords(t),t===c.getPendingLanguage()&&(c.setLanguage(t),d.setStoredLanguage(t)))},async addActiveNs(t,n){n||c.addActiveNs(t),c.isRunning()&&await loadRequiredRecords(void 0,t)},loadRecords:t=>g.loadRecords(t,f.isDev()),loadRecord:async t=>(await f.loadRecords([t]))[0],isLoading:t=>g.isLoading(c.getLanguage(),t),isLoaded(t){let n=c.getLanguage();if(!n)return!1;let i=c.getFallbackLangs(n),r=getRequiredNamespaces(t),o=[];
1return i.forEach(t=>{r.forEach(n=>{g.exists({language:t,namespace:n})||o.push({language:t,namespace:n})})}),0===o.length},t:(...t)=>{let n=getTranslateProps(...t),i=getTranslation(n);return d.formatTranslation(Object.assign(Object.assign({},n),{translation:i}))},isDev:()=>!!(c.getInitialOptions().apiKey&&c.getInitialOptions().apiUrl),run:()=>(!function(){let t=d.getLanguageDetector()||d.getLanguageStorage();if(t){let t=c.getAvailableLanguages();if(!t)throw Error(missingOptionError("availableLanguages"))}if(!c.getLanguage()&&!c.getInitialOptions().defaultLanguage)throw Error(missingOptionError(["defaultLanguage","language"]))}(),c.isRunning()||(c.setRunning(!0),d.run(),n=function(){let t=valueOrPromise(function(){let t=c.getLanguage();if(t)return;let n=d.getInitialLanguage();return valueOrPromise(n,t=>{let n=t||c.getInitialOptions().defaultLanguage;n&&c.setLanguage(n)})}(),()=>loadRequiredRecords());if(isPromise(t))return c.setInitialLoading(!0),o.notify(),a.notify(),Promise.resolve(t).then(()=>{c.setInitialLoading(!1),o.notify(),a.notify(),i.onInitialLoaded.emit()});i.onInitialLoaded.emit()}()),Promise.resolve(n)),stop(){c.isRunning()&&(d.stop(),c.setRunning(!1))}}));return f}({options:t});function withRestart(t){let i=n.isRunning();i&&n.stop(),t(),n.isDev()&&n.invalidate(),i&&n.run()}n.isDev()&&n.invalidate();let i=Object.freeze({on:n.on,onNsUpdate:n.onUpdate.listenSome,setEmitterActive:n.setEmitterActive,getLanguage:n.getLanguage,getPendingLanguage:n.getPendingLanguage,changeLanguage:n.changeLanguage,changeTranslation:n.changeTranslation,addActiveNs:n.addActiveNs,removeActiveNs:n.removeActiveNs,loadRecords:n.loadRecords,loadRecord:n.loadRecord,addStaticData:n.addStaticData,getRecord:n.getRecord,getAllRecords:n.getAllRecords,isLoaded:n.isLoaded,isInitialLoading:n.isInitialLoading,isLoading:n.isLoading,isFetching:n.isFetching,isRunning:n.isRunning,run:n.run,stop:n.stop,t:n.t,highlight:n.highlight,getInitialOptions:n.getInitialOptions,isDev:n.isDev,wrap:n.wrap,unwrap:n.unwrap,overrideCredentials(t){withRestart(()=>n.overrideCredentials(t))},addPlugin(t){t&&withRestart(()=>n.addPlugin(i,t))},updateOptions(t){t&&withRestart(()=>n.init(t))}});return i}(combineOptions(t.options,n));return t.plugins.forEach(i.addPlugin),i}});return n};let FormatError=class FormatError extends Error{constructor(t,n,i){super(`Tolgee parser: ${0===t?"Empty parameter":1===t?"Unexpected character":"Unexpected end"} at ${n} in "${i}"`),this.code=t,this.index=n}};let a=new Set([2,1,0]),c=new Set(["{","}","'"]),isAllowedInParam=t=>/[0-9a-zA-Z_]/.test(t),FormatSimple=()=>(t,n)=>(n.setFinalFormatter({format:({translation:t,params:n})=>(function(t,n){let[i,r]=function(t){var n,i;let r=0,o="",d="",g="",f=[],h=[],_=0;function parsingError(n){throw new FormatError(n,_,t)}let addText=()=>{f.push(o),o=""},addParamChar=()=>{isAllowedInParam(g)||parsingError(1),d+=g},addParam=()=>{""===d&&parsingError(0),h.push(d),d=""};for(_=0;_<t.length;_++)switch(g=t[_],r){case 0:"'"===g?(o+=g,r=1):"{"===g?(addText(),r=3):(o+=g,r=0);break;case 1:c.has(g)?(o=o.slice(0,-1)+g,r=2):(o+=g,r=0);break;case 2:"'"===g?r=0:(o+=g,r=2);break;case 3:"}"===g?(addParam(),r=0):(n=g,/\s/.test(n))?""!==d&&(addParam(),r=4):(addParamChar(),r=3);break;case 4:"}"==g?r=0:(i=g,/\s/.test(i))?r=4:parsingError(1)}return a.has(r)||parsingError(2),addText(),[f,h]}(t),o=[i[0]];for(let a=1;a<i.length;a++){let c=null==n?void 0:n[r[a-1]];if(void 0===c)throw Error(`Missing parameter "${r[a-1]}" in "${t}"`);o.push(String(c)),o.push(i[a])}return o.join("")})(t,n)}),t);String(Number.MAX_SAFE_INTEGER),RegExp(`([‌‍]{9})+`,"gu");let d=null,g="__tolgee_apiKey",f="__tolgee_apiUrl";function getCredentials(){let t=sessionStorage.getItem(g)||void 0,n=sessionStorage.getItem(f)||void 0;if(t&&n)return{apiKey:t,apiUrl:n}}function clearSessionStorage(){sessionStorage.removeItem(g),sessionStorage.removeItem(f)}let BrowserExtensionPlugin=()=>t=>t;function Tolgee(){return TolgeeCore().use(BrowserExtensionPlugin())}(()=>{if("undefined"==typeof window)return!1;try{return"undefined"!=typeof sessionStorage&&sessionStorage}catch(t){return console.error("sessionStorage not available",t),!1}})()&&(BrowserExtensionPlugin=()=>t=>{let n;let i={update:async function(t){null==n||n();let{cancel:i,promise:r}=function({message:t,recievingMessage:n,data:i,attempts:r=1}
1){let o=!1,makeAttempt=()=>new Promise((r,o)=>{let a=function(t,n){let handler=i=>{var r,o;t.includes(null===(r=i.data)||void 0===r?void 0:r.type)&&n(null===(o=i.data)||void 0===o?void 0:o.data)};return window.addEventListener("message",handler,!1),{unsubscribe(){window.removeEventListener("message",handler)}}}(n,function(t){clearTimeout(c),removeEventListener(),r(t)});window.postMessage({type:t,data:i},window.origin);let c=setTimeout(function(){removeEventListener(),o()},300);function removeEventListener(){a.unsubscribe()}}),getData=async()=>{for(let t=0;t<r;t++){if(o)return new Promise(()=>{});try{let t=await makeAttempt();return t}catch(t){continue}}if(!o)throw`Didn't recieve ${n.join(" or ")} in time.`;return new Promise(()=>{})};return{cancel(){o=!0},promise:getData()}}({message:"TOLGEE_READY",recievingMessage:["TOLGEE_PLUGIN_READY","TOLGEE_PLUGIN_UPDATED"],data:t,attempts:4});return n=i,r}},getConfig=()=>({uiPresent:!0,uiVersion:void 0,mode:t.isDev()?"development":"production",config:{apiUrl:t.getInitialOptions().apiUrl||"",apiKey:t.getInitialOptions().apiKey||""}}),getTolgeePlugin=async()=>{let t=await function(t){if(!d){var n;d=(n=`https://cdn.jsdelivr.net/npm/@tolgee/web@${t}/dist/tolgee-in-context-tools.umd.min.js`,new Promise((t,i)=>{let r=document.createElement("script");r.src=n,r.addEventListener("load",()=>t()),r.addEventListener("error",t=>i(t.error)),document.body.appendChild(r)})).then(()=>window["@tolgee/in-context-tools"].InContextTools)}return d}("5.12.0");return n=>{let i=getCredentials();return n.addPlugin(t({credentials:i})),n}};t.on("running",({value:t})=>{if(t){var n;n=()=>{i.update(getConfig()).catch(clearSessionStorage)},"loading"!==document.readyState?Promise.resolve().then(()=>{n()}):document.addEventListener&&document.addEventListener("DOMContentLoaded",n)}});let r=getCredentials();return r&&getTolgeePlugin().then(n=>{t.addPlugin(n)}).catch(t=>{console.error("Tolgee: Failed to load in-context tools"),console.error(t)}),t});let DevTools=()=>t=>t},3454:function(t,n,i){"use strict";var r,o;t.exports=(null==(r=i.g.process)?void 0:r.env)&&"object"==typeof(null==(o=i.g.process)?void 0:o.env)?i.g.process:i(7663)},6840:function(t,n,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return i(2676)}])},2545:function(t,n,i){"use strict";i.d(n,{FA:function(){return f},DM:function(){return a},c5:function(){return _},g5:function(){return c},yf:function(){return d},MW:function(){return g},yM:function(){return h},P3:function(){return r},UV:function(){return o}});let r=[{id:"languages",titleKey:"skill_section_languages",icons:[{siIcon:"SiJavascript",iconColor:"#F7DF1E",title:"JavaScript",alt:"JavaScript"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiNextdotjs",iconColor:"#ffffff",title:"Next.js",alt:"Next.js"},{siIcon:"SiVuedotjs",iconColor:"#4FC08D",title:"Vue.js",alt:"Vue.js"},{siIcon:"SiAngular",iconColor:"#DD0031",title:"Angular",alt:"Angular"},{siIcon:"SiSvelte",iconColor:"#FF3E00",title:"Svelte",alt:"Svelte"},{siIcon:"SiReact",iconColor:"#61DAFB",title:"React Native",alt:"React Native"},{siIcon:"SiFlutter",iconColor:"#02569B",title:"Flutter",alt:"Flutter"},{siIcon:"SiNodedotjs",iconColor:"#339933",title:"Node.js",alt:"Node.js"},{siIcon:"SiPython",iconColor:"#3776AB",title:"Python",alt:"Python"},{siIcon:"SiExpress",iconColor:"#ffffff",title:"Express",alt:"Express"}]},{id:"state-api",titleKey:"skill_section_state_api",icons:[{siIcon:"SiRedux",iconColor:"#764ABC",title:"Redux",alt:"Redux"},{siIcon:"SiGraphql",iconColor:"#E10098",title:"GraphQL",alt:"GraphQL"},{siIcon:"SiPostgresql",iconColor:"#336791",title:"PostgreSQL",alt:"PostgreSQL"},{siIcon:"SiMongodb",iconColor:"#47A248",title:"MongoDB",alt:"MongoDB"},{siIcon:"SiFirebase",iconColor:"#FFCA28",title:"Firebase",alt:"Firebase"},{siIcon:"SiSupabase",iconColor:"#3ECF8E",title:"Supabase",alt:"Supabase"}]},{id:"ai",titleKey:"skill_section_ai",icons:[{siIcon:"SiOpenai",iconColor:"#10a37f",title:"OpenAI API",alt:"OpenAI API"},{siIcon:"SiPython",iconColor:"#3776AB",title:"LangChain",alt:"LangChain"},{siIcon:"SiOllama",iconColor:"#ffffff",title:"Ollama",alt:"Ollama"},{siIcon:"SiPytorch",iconColor:"#EE4C2C",title:"PyTorch",alt:"PyTorch"},{siIcon:"SiTensorflow",iconColor:"#FF6F00",title:"TensorFlow",alt:"TensorFlow"}
1,{siIcon:"SiJupyter",iconColor:"#F37626",title:"Jupyter",alt:"Jupyter"}]},{id:"styling",titleKey:"skill_section_styling",icons:[{siIcon:"SiHtml5",iconColor:"#E34F26",title:"HTML5",alt:"HTML5"},{siIcon:"SiCss3",iconColor:"#1572B6",title:"CSS3",alt:"CSS3"},{siIcon:"SiSass",iconColor:"#CC6699",title:"SASS",alt:"SASS"},{siIcon:"SiStyledcomponents",iconColor:"#DB7093",title:"Styled Components",alt:"Styled Components"},{siIcon:"SiTailwindcss",iconColor:"#06B6D4",title:"Tailwind",alt:"Tailwind CSS"},{siIcon:"SiMui",iconColor:"#007FFF",title:"Material UI",alt:"Material UI"},{siIcon:"SiFigma",iconColor:"#F24E1E",title:"Figma",alt:"Figma"}]},{id:"testing",titleKey:"skill_section_testing",icons:[{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"},{siIcon:"SiCypress",iconColor:"#17202C",title:"Cypress",alt:"Cypress"},{siIcon:"SiTestinglibrary",iconColor:"#E33332",title:"Testing Library",alt:"Testing Library"},{siIcon:"SiStorybook",iconColor:"#FF4785",title:"Storybook",alt:"Storybook"}]},{id:"devops",titleKey:"skill_section_devops",icons:[{siIcon:"SiDocker",iconColor:"#2496ED",title:"Docker",alt:"Docker"},{siIcon:"SiGithub",iconColor:"#ffffff",title:"GitHub",alt:"GitHub"},{siIcon:"SiGitlab",iconColor:"#FC6D26",title:"GitLab",alt:"GitLab"},{siIcon:"SiGithubactions",iconColor:"#2088FF",title:"GitHub Actions",alt:"GitHub Actions"},{siIcon:"SiAmazonaws",iconColor:"#FF9900",title:"AWS",alt:"AWS"},{siIcon:"SiGooglecloud",iconColor:"#4285F4",title:"GCP",alt:"GCP"},{siIcon:"SiMicrosoftazure",iconColor:"#0078D4",title:"Azure",alt:"Azure"},{siIcon:"SiKubernetes",iconColor:"#326CE5",title:"Kubernetes",alt:"Kubernetes"},{siIcon:"SiVercel",iconColor:"#ffffff",title:"Vercel",alt:"Vercel"},{siIcon:"SiLinux",iconColor:"#FCC624",title:"Linux",alt:"Linux"}]}],o=["skill_soft_context_api","skill_soft_zustand","skill_soft_mobx","skill_soft_rest","skill_soft_mobile_first","skill_soft_ux_ui","skill_soft_rag","skill_soft_ai_agents","skill_soft_prompt_engineering","skill_soft_mcp","skill_soft_langfuse","skill_soft_micro_frontends","skill_soft_module_federation","skill_soft_monorepo","skill_soft_atomic_design","skill_soft_clean_code","skill_soft_solid","skill_soft_software_architecture","skill_soft_design_systems","skill_soft_style_guides","skill_soft_bem","skill_soft_css_in_js","skill_soft_web_vitals","skill_soft_seo","skill_soft_pwa","skill_soft_accessibility","skill_soft_ci_cd","skill_soft_tdd","skill_soft_bdd","skill_soft_git_flow","skill_soft_kanban","skill_soft_scrum","skill_soft_code_review","skill_soft_mentoring","skill_soft_technical_leadership","skill_soft_oidc_keycloak","skill_soft_intermediate_english"],a={black:"#000000"},c={opensans:"'Open Sans', sans-serif"},d={title:"Gustavo Scarpim",portfolio:"Portf\xf3lio",year:"2026",roles:"Tech Lead | Frontend Engineer | Frontend Architect | Professor"},g={description:{pt:"Portf\xf3lio de Gustavo Scarpim — Tech Lead Frontend, projetos, experi\xeancias e habilidades em React, Next.js, IA e arquitetura frontend.",en:"Gustavo Scarpim portfolio — Frontend Tech Lead, projects, experience and skills in React, Next.js, AI and frontend architecture."},keywords:"Gustavo Scarpim, Tech Lead Frontend, portf\xf3lio, portfolio, React, Next.js, TypeScript, arquitetura frontend, IA, micro-frontends"},f={title:"Sobre mim",picture:"/eu.jpeg"},h={cards:[{id:"1",logoSrc:"/projects/overlabs.png",link:"",typeKey:"project_type_overlabs",technologyKeys:["tech_svelte","tech_python","tech_flutter","tech_gpt4","tech_claude","tech_gemini","tech_rag","tech_ai_agents","tech_guardrails","tech_langchain","tech_langfuse","tech_clickhouse","tech_openlayers","tech_mcp","tech_keycloak","tech_oidc","tech_openai_api"],icons:[{siIcon:"SiSvelte",iconColor:"#FF3E00",title:"Svelte",alt:"Svelte"},{siIcon:"SiPython",iconColor:"#3776AB",title:"Python",alt:"Python"},{siIcon:"SiFlutter",iconColor:"#02569B",title:"Flutter",alt:"Flutter"},{siIcon:"SiOpenai",iconColor:"#10a37f",title:"OpenAI",alt:"OpenAI API"},{siIcon:"SiAnthropic",iconColor:"#191919",title:"Claude",alt:"Claude"},{siIcon:"SiGoogle",iconColor:"#4285F4",title:"Gemini",alt:"Gemini"}]},{id:"2",logoSrc:"/projects/overlabs.png",link:"",typeKey:"project_type_overlabs",technologyKeys:["tech_vue","tech_javascript","tech_typescript","tech_rest","tech_keycloak","tech_oidc","tech_credit_score","tech_spa"],icons:[{siIcon:"SiVuedotjs",iconColor:"#4FC08D",title:"Vue.js",alt:"Vue.js"},{siIcon:"SiJavascript",iconColor:"#F7DF1E",title:"JavaScript",alt:"JavaScript"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"}]},{id:"3",logoSrc:"/projects/renner.png",link:"",typeKey:"project_type_datum",technologyKeys:["tech_react","tech_react_native","tech_typescript","tech_design_tokens","tech_jest","tech_cypress","tech_testing_library","tech_wcag","tech_atomic_design","tech_storybook","tech_figma"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiReact",iconColor:"#61DAFB",title:"React Native",alt:"React Native"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"},{siIcon:"SiCypress",iconColor:"#17202C",title:"Cypress",alt:"Cypress"},{siIcon:"SiFigma",iconColor:"#F24E1E",title:"Figma",alt:"Figma"}]},{id:"4",logoSrc:"/projects/renner.png",link:"",typeKey:"project_type_datum",technologyKeys:["tech_nextjs","tech_react_native","tech_typescript","tech_zustand","tech_mobx","tech_context_api","tech_rest","tech_graphql","tech_jest","tech_cypress","tech_ssr_ssg","tech_core_web_vitals"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React Native",alt:"React Native"},{siIcon:"SiNextdotjs",iconColor:"#ffffff",title:"Next.js",alt:"Next.js"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiGraphql",iconColor:"#E10098",title:"GraphQL",alt:"GraphQL"},{siIcon:"SiCypress",iconColor:"#17202C",title:"Cypress",alt:"Cypress"}]},{id:"5",logoSrc:"/projects/boa_vista.png",link:"",typeKey:"project_type_foursys",technologyKeys:["tech_react","tech_typescript","tech_mui","tech_context_api","tech_jest","tech_testing_library","tech_rest","tech_figma"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiMui",iconColor:"#007FFF",title:"Material UI",alt:"Material UI"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"},{siIcon:"SiFigma",iconColor:"#F24E1E",title:"Figma",alt:"Figma"}]},{id:"6",logoSrc:"/projects/evnts.png",link:"",typeKey:"project_type_evnts",technologyKeys:["tech_react","tech_redux","tech_styled_components","tech_typescript","tech_mongodb","tech_jest","tech_streaming","tech_payments","tech_events_3d","tech_high_concurrency"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiRedux",iconColor:"#764ABC",title:"Redux",alt:"Redux"},{siIcon:"SiStyledcomponents",iconColor:"#DB7093",title:"Styled Components",alt:"Styled Components"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiMongodb",iconColor:"#47A248",title:"MongoDB",alt:"MongoDB"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"}]},{id:"7",logoSrc:"/projects/sambatech.png",link:"",typeKey:"project_type_freelancer",technologyKeys:["tech_nextjs","tech_typescript","tech_redux","tech_rest","tech_jwt","tech_nodejs","tech_responsive_ui"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiNextdotjs",iconColor:"#ffffff",title:"Next.js",alt:"Next.js"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiRedux",iconColor:"#764ABC",title:"Redux",alt:"Redux"},{siIcon:"SiNodedotjs",iconColor:"#339933",title:"Node.js",alt:"Node.js"}]},{id:"8",logoSrc:"/projects/boticario.svg",link:"",typeKey:"project_type_freelancer",technologyKeys:["tech_react","tech_redux","tech_typescript","tech_nodejs","tech_jest","tech_figma","tech_hardware_integration"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiRedux",iconColor:"#764ABC",title:"Redux",alt:"Redux"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiNodedotjs",iconColor:"#339933",title:"Node.js",alt:"Node.js"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"},{siIcon:"SiFigma",iconColor:"#F24E1E",title:"Figma",alt:"Figma"}]},{id:"9",logoSrc:"/projects/enjoytix.svg",link:"",typeKey:"project_type_freelancer",technologyKeys:["tech_nextjs","tech_redux","tech_typescript","tech_jest","tech_payments","tech_tickets","tech_streaming"],icons:[{siIcon:"SiNextdotjs",iconColor:"#ffffff",title:"Next.js",alt:"Next.js"},{siIcon:"SiRedux",iconColor:"#764ABC",title:"Redux",alt:"Redux"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"}]},{id:"10",logoSrc:"/projects/amaggi.png",link:"",typeKey:"project_type_freelancer",technologyKeys:["tech_react","tech_nextjs","tech_react_native","tech_typescript","tech_jest","tech_offline_first","tech_sync","tech_maps"],icons:[{siIcon:"SiReact",iconColor:"#61DAFB",title:"React",alt:"React"},{siIcon:"SiNextdotjs",iconColor:"#ffffff",title:"Next.js",alt:"Next.js"},{siIcon:"SiReact",iconColor:"#61DAFB",title:"React Native",alt:"React Native"},{siIcon:"SiTypescript",iconColor:"#3178C6",title:"TypeScript",alt:"TypeScript"},{siIcon:"SiJest",iconColor:"#C21325",title:"Jest",alt:"Jest"}]}]},_={experiences:[{id:1,technologyKeys:["tech_react","tech_nextjs","tech_angular","tech_vue","tech_svelte","tech_typescript","tech_micro_frontends","tech_monorepo","tech_ssr_ssg","tech_github_actions","tech_gitlab_ci","tech_openai_api","tech_langchain","tech_rag","tech_ai_agents","tech_keycloak","tech_clickhouse","tech_gcp"]},{id:2,technologyKeys:["tech_react","tech_angular","tech_vue","tech_react_native","tech_flutter","tech_nodejs","tech_docker","tech_postgresql","tech_mongodb","tech_jest","tech_cypress","tech_llms","tech_ai_agents","tech_mcp","tech_tdd","tech_bdd"]},{id:3,technologyKeys:["tech_react","tech_nextjs","tech_react_native","tech_mui","tech_typescript","tech_context_api","tech_zustand","tech_mobx","tech_jest","tech_figma","tech_design_system"]},{id:4,technologyKeys:["tech_react","tech_typescript","tech_mui","tech_context_api","tech_jest","tech_figma","tech_rest"]},{id:5,technologyKeys:["tech_react","tech_redux","tech_styled_components","tech_typescript","tech_javascript","tech_mongodb","tech_jest","tech_figma"]},{id:6,technologyKeys:["tech_react","tech_nextjs","tech_typescript","tech_redux","tech_mongodb","tech_nodejs"]},{id:7,technologyKeys:["tech_react","tech_vue","tech_nextjs","tech_typescript","tech_redux","tech_mongodb","tech_figma"]},{id:8,technologyKeys:["tech_react","tech_javascript","tech_nodejs","tech_mongodb","tech_dotnet","tech_sql","tech_adobe_xd"]}]};r.flatMap(t=>t.icons)},5517:function(t,n,i){"use strict";i.d(n,{H:function(){return LanguageContextProvider},n:function(){return g}});var r=i(5893),o=i(7294),a=i(1163),c=i(1451),d=i(3020);let g=(0,o.createContext)({language:"pt",setLanguage:()=>{}}),LanguageContextProvider=t=>{let n=(0,a.useRouter)(),i=(0,c.b5)(),[f,h]=(0,o.useState)(()=>(0,d.G7)(n.locale));return(0,o.useEffect)(()=>{h((0,d.G7)(n.locale))},[n.locale]),(0,o.useEffect)(()=>{i.changeLanguage(f)},[f,i]),(0,r.jsx)(g.Provider,{value:{language:f,setLanguage:t=>{h(t),n.push(n.pathname,n.asPath,{locale:t,scroll:!1})}},children:t.children})}},1097:function(t,n,i){"use strict";i.d(n,{n:function(){return a},z:function(){return ThemeContextProvider}});var r=i(5893),o=i(7294);let a=(0,o.createContext)({isDarkMode:!1,setIsDarkMode:()=>{}}),ThemeContextProvider=t=>{let[n,i]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{let t=window.localStorage.getItem("theme");"true"===t?i(!0):i(!1)},[]),(0,r.jsx)(a.Provider,{value:{setIsDarkMode:i,isDarkMode:n},children:t.children})}},2676:function(t,n,i){"use strict";i.r(n),i.d(n,{default:function(){return _app}});var r=i(5893),o=i(9008),a=i.n(o),c=i(1163),d=i.n(c),g=i(4865),f=i.n(g),h=i(2545),_=i(7294),m=i(1097),v=i(5517);let y=[m.z,v.H],b=function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return n.reduce((t,n)=>i=>_.createElement(t,null,_.createElement(n,null,i.children)),t=>_.createElement(_.Fragment,null,t.children))}(...y);var S=i(2729),C=i(9825);
1function _templateObject(){let t=(0,S._)(["\n  width: 100vw;\n  height: 100vh;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: '#5a7fec';\n"]);return _templateObject=function(){return t},t}function _templateObject1(){let t=(0,S._)(["\n  display: inline-block;\n  position: relative;\n  width: 64px;\n  height: 64px;\n\n  div {\n    position: absolute;\n    background: #fff;\n    opacity: 1;\n    border-radius: 50%;\n    animation: loading 1.4s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n  }\n\n  div:nth-child(2) {\n    animation-delay: -.7s;\n  }\n\n  @keyframes loading {\n    0% {\n      top: 28px;\n      left: 28px;\n      width: 0;\n      height: 0;\n      opacity: 1;\n    }\n    100% {\n      top: -1px;\n      left: -1px;\n      width: 58px;\n      height: 58px;\n      opacity: 0;\n    }\n  }\n"]);return _templateObject1=function(){return t},t}let w=C.ZP.div.withConfig({componentId:"sc-ab36909b-0"})(_templateObject()),I=C.ZP.div.withConfig({componentId:"sc-ab36909b-1"})(_templateObject1());var components_Loading=()=>(0,r.jsx)(w,{children:(0,r.jsxs)(I,{children:[(0,r.jsx)("div",{}),(0,r.jsx)("div",{})]})});function global_templateObject(){let t=(0,S._)(["\n  html, body, div, span, applet, object, iframe,\n  h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n  a, abbr, acronym, address, big, cite, code,\n  del, dfn, em, img, ins, kbd, q, s, samp,\n  small, strike, strong, sub, sup, tt, var,\n  b, u, i, center,\n  dl, dt, dd, ol, ul, li,\n  fieldset, form, label, legend,\n  table, caption, tbody, tfoot, thead, tr, th, td,\n  article, aside, canvas, details, embed,\n  figure, figcaption, footer, header, hgroup,\n  menu, nav, output, ruby, section, summary,\n  time, mark, audio, video {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font-size: 100%;\n    font: inherit;\n    vertical-align: baseline;\n  }\n  /* HTML5 display-role reset for older browsers */\n  article, aside, details, figcaption, figure,\n  footer, header, hgroup, menu, nav, section {\n    display: block;\n  }\n  body {\n    line-height: 1;\n    font-size: 14px;\n    font-family: ",";\n  }\n  ol, ul {\n    list-style: none;\n  }\n  blockquote, q {\n    quotes: none;\n  }\n  blockquote:before, blockquote:after,\n  q:before, q:after {\n    content: '';\n    content: none;\n  }\n  b {\n    font-weight: bold;\n  }\n  table {\n    border-collapse: collapse;\n    border-spacing: 0;\n  }\n\n  html, body {\n    width: 100%;\n    /* overflow: clip prevents horizontal scroll without creating a nested scroll context,\n       which is required for GSAP ScrollTrigger pin to work on window scroll */\n    overflow-x: clip;\n  }\n\n  #__next {\n    width: 100%;\n  }\n\n  /* All viewports: container holds exactly one screen-height so pages don't bleed */\n  .container {\n    width: 100vw;\n    height: 100vh;\n    overflow: hidden;\n    /* On tiny phones, allow normal flow */\n    @media screen and (max-width: 599px) {\n      height: auto;\n      overflow: visible;\n    }\n  }\n\n  .panel {\n    width: 100vw;\n    min-height: 100vh;\n    will-change: transform;\n    box-sizing: border-box;\n    /* position managed by ContainerGlobal (relative) and GSAP inline (absolute on desktop pin) */\n\n    @media screen and (max-width: 1080px), (max-height: 748px) {\n      width: 100%;\n      max-width: 100%;\n    }\n  }\n\n  /* Scrollbar */\n  ::-webkit-scrollbar {\n    width: 5px;\n  }\n\n  ::-webkit-scrollbar-track {\n    background: #f1f1f1;\n  }\n\n  ::-webkit-scrollbar-thumb {\n    background: rgba(90, 127, 236, 0.5);\n    border-radius: 3px;\n  }\n\n  ::-webkit-scrollbar-thumb:hover {\n    background: rgba(90, 127, 236, 0.8);\n  }\n\n  /* Smooth scrolling on mobile */\n  @media screen and (max-width: 1080px) {\n    html {\n      scroll-behavior: smooth;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    html {\n      scroll-behavior: auto;\n    }\n\n    *,\n    *::before,\n    *::after {\n      animation-duration: 0.01ms !important;\n      animation-iteration-count: 1 !important;\n      transition-duration: 0.01ms !important;\n    }\n  }\n"]);
1return global_templateObject=function(){return t},t}let E=(0,C.vJ)(global_templateObject(),h.g5.opensans);i(1595);var O=i(1451),L=i(3020);d().events.on("routeChangeStart",()=>{f().start()}),d().events.on("routeChangeComplete",()=>f().done()),d().events.on("routeChangeError",()=>f().done());var _app=function(t){let{Component:n,pageProps:i}=t,o=(0,c.useRouter)(),d=(0,L.G7)(o.locale),g="en"===d?h.MW.description.en:h.MW.description.pt,f=(0,O.QA)(L.KV,d,L.yM);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a(),{children:[(0,r.jsx)("meta",{charSet:"UTF-8"}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),(0,r.jsx)("meta",{name:"description",content:g}),(0,r.jsx)("meta",{name:"keywords",content:h.MW.keywords}),(0,r.jsx)("meta",{name:"author",content:"Gustavo Scarpim"}),(0,r.jsx)("title",{children:h.yf.title}),(0,r.jsx)("link",{rel:"shortcut icon",href:"/img/logo.png"}),(0,r.jsx)("link",{rel:"apple-touch-icon",href:"/img/logo.png"}),(0,r.jsx)("link",{rel:"manifest",href:"/manifest.json"}),(0,r.jsx)("meta",{name:"theme-color",content:h.DM.black}),(0,r.jsx)("script",{dangerouslySetInnerHTML:{__html:"(function(h,o,t,j,a,r){\n                h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n                h._hjSettings={hjid:3687386,hjsv:6};\n                a=o.getElementsByTagName('head')[0];\n                r=o.createElement('script');r.async=1;\n                r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n                a.appendChild(r);\n            })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');"}}),(0,r.jsx)("script",{async:!0,src:"https://www.googletagmanager.com/gtag/js?id=UA-177227637-1",dangerouslySetInnerHTML:{__html:"(window.dataLayer = window.dataLayer || [];\n          function gtag(){dataLayer.push(arguments);}\n          gtag('js', new Date());\n\n          gtag('config', 'UA-177227637-1');)"}})]}),(0,r.jsx)(O.qF,{tolgee:f,fallback:(0,r.jsx)(components_Loading,{}),options:{useSuspense:!1},children:(0,r.jsxs)(b,{children:[(0,r.jsx)(E,{}),(0,r.jsx)(n,{...i})]})})]})}},3020:function(t,n,i){"use strict";i.d(n,{yM:function(){return d},G7:function(){return normalizeLocale},KV:function(){return h}});var r=i(1232),o=JSON.parse('{"about_corrida":"Running","about_design":"Design","about_interesses":"Interests and hobbies","about_paragraph_1":"Frontend Tech Lead with 8+ years of experience, specializing in React, Next.js, Angular, Vue, TypeScript, and Generative AI. Currently leading engineering teams at Overlabs SKY and teaching the next generation of developers at FIAP.","about_paragraph_2":"Passionate about building high-performance interfaces with excellent UX, I work at the intersection of Frontend Architecture and Artificial Intelligence — from AI Agents and RAG to Prompt Engineering and LLM integrations via OpenAI API and LangChain.","about_paragraph_3":"Expert in Frontend Software Architecture: Micro-Frontends, Monorepos, SSR/SSG, Design Systems, CI/CD and security with OIDC/Keycloak. Graduate professor, speaker and mentor for developers.","about_sobre_mim":"About me","about_stat_clients":"companies / clients","about_stat_start":"career start","about_stat_years":"years of experience","about_xadrez":"Chess","experience_description_1":"Technical leadership of the Frontend team on OverScore (corporate scoring) and Khon.ai (AI hub). Scalable architecture with Micro-Frontends, Monorepos and SSR/SSG. CI/CD pipelines, CDN, Edge Computing and Serverless. Frontend security with CSP and OIDC/Keycloak. Web Vitals, SEO and PWA optimization. Continuous mentorship and code review.","experience_description_2":"Practical classes, mentoring and talks on software development focused on real-world applications. Classes: Full Stack Post-Tech, Front-end Engineering and Dev Foundations. Teaching frontend architecture, micro-frontends, UX/UI, integrations and generative AI.","experience_description_3":"Building and maintaining the Renner Design System with reusable components, accessibility and performance. Development of Renner\'s main website and app: new features, continuous optimization and UX improvements on web and mobile.","experience_description_4":"UI engineering for Boa Vista (Brazil\'s largest credit bureau). Responsive, interactive interfaces, product management participation and Scrum ceremonies with multidisciplinary teams.","experience_description_5":"Front-end development of the events platform in partnership with design and product. Responsive interfaces, complex payment flows, Redux state management and automated testing with Jest.","experience_description_6":"Clients: Grupo Botic\xe1rio, Sambatech and Enjoytix. Prototyping, requirements analysis, implementation and end-to-e
1nd delivery with direct client contact on e-commerce and streaming projects.","experience_description_7":"Building responsive, interactive interfaces at a fashion startup with the design team. First experience with multiple frameworks (React, Vue) and a modern stack with Next.js.","experience_description_8":"Full-stack development at a banking association. Frontend and backend systems, RESTful APIs and first professional experience with React, Node.js and databases in a corporate environment.","experience_time_1":"03/2024 – present","experience_time_2":"03/2024 – present","experience_time_3":"11/2023 – 03/2025 (1 year 5 months)","experience_time_4":"03/2023 – 10/2023 (9 months)","experience_time_5":"02/2021 – 03/2023 (2 years 2 months)","experience_time_6":"06/2021 – 06/2022 (1 year, part-time)","experience_time_7":"06/2020 – 02/2021 (8 months)","experience_time_8":"10/2019 – 07/2020 (9 months)","experience_title":"Experiences","experience_title_1":"Overlabs SKY — Frontend Tech Lead | Architecture & Leadership","experience_title_2":"FIAP — Higher Education Professor","experience_title_3":"Datum — Senior Frontend Developer","experience_title_4":"Foursys — Senior Frontend Developer","experience_title_5":"Evnts — Mid-level Frontend Developer","experience_title_6":"Freelancer — Frontend Developer","experience_title_7":"Hyst — Junior Frontend Developer","experience_title_8":"ABBC — Web Development Intern","float_brazilian":"Brazilian","float_developer":"Developer","float_footer_roles":"Frontend Engineer & Professor","float_portfolio":"Portfolio","float_projects":"Projects","float_tech_lead":"Tech Lead | AI","main_name":"Gustavo Scarpim","main_roles":"Tech Lead | Frontend Engineer | Frontend Architect | Professor","main_title":"Portfolio","meta_description":"Gustavo Scarpim portfolio — Frontend Tech Lead, projects, experience and skills in React, Next.js, AI and frontend architecture.","not_found_message":"Page not found.","not_found_title":"404","project_alt_1":"Khon.ai - AI Hub","project_alt_10":"Amaggi - Offline-first Agribusiness","project_alt_2":"OverScore - Credit Platform","project_alt_3":"Renner Design System","project_alt_4":"Renner Website & App","project_alt_5":"Boa Vista — UI Systems","project_alt_6":"Evnts - Events Platform","project_alt_7":"Sambatech - Video Platform","project_alt_8":"Grupo Botic\xe1rio - Fragrance Wheel","project_alt_9":"EnjoyTix - Events Platform","project_description_1":"Corporate multi-model AI hub (GPT-4, Claude, Gemini) with assistant orchestration and integrations. Svelte + Python frontend, RAG, AI Agents, guardrails, Keycloak and OIDC authentication, LangFuse observability, ClickHouse and OpenLayers maps. I also built the Flutter mobile app (Android and iOS) for product consumption and operations.","project_description_10":"Agribusiness system with offline-first architecture: teams visit farms, record photos, reports and land mapping without internet; data syncs when back online. Built with React, Next.js, React Native, TypeScript and Jest.","project_description_2":"Credit platform built with Vue.js to query and visualize each person\'s score. Performance-focused SPA with clear data presentation, Keycloak and OIDC authentication, credit analysis API integration and decision flows for business teams.","project_description_3":"Renner Design System built entirely from scratch with React and React Native, without Material UI. Component library, tokens, unit and end-to-end tests, documentation and focus on accessibility, consistency and scalability across web and mobile.","project_description_4":"Renner e-commerce and app: Next.js with SSR/SSG for SEO and Core Web Vitals, React Native for iOS/Android, global state with Zustand and MobX, REST/GraphQL integration, Cypress E2E and Jest unit tests. Automated CI/CD with feature flags and continuous performance optimization.","project_description_5":"UI systems for Brazil\'s largest credit bureau. Complex dashboards and reports with React + TypeScript + Material UI, Context API for global state, Jest + Testing Library tests and REST integration with score and credit analysis APIs.","project_description_6":"Full platform for digital events and 3D experiences, with ticket sales, payments and online streaming. Supports thousands of concurrent users and contingency tooling for stability during traffic spikes and third-party failures.","project_description_7":"Backoffice for the Sambatech streaming platform. Admin panel with content management, viewing metrics and role-based permissions (RBAC). Next.js + TypeScript + Redux, REST integration, JWT authentication and responsive UI focused on internal team UX.","project_description_8":"Grupo Botic\xe1rio fragrance wheel: the customer picks a fragrance in the UI, the system swaps the refill on the tablet and triggers spraying to smell it instantly. Built with React, Redux, Type
1Script and Node.js, with unit tests and Figma prototypes.","project_description_9":"Digital events and ticketing platform similar to Sympla, with ticket management, payments and online streaming. Worked with Next.js, Redux, TypeScript and Jest on purchase flows, checkout and attendee experience.","project_go":"Go to project {name}","project_name_1":"Khon.ai","project_name_10":"Amaggi","project_name_2":"OverScore","project_name_3":"Renner Design System","project_name_4":"Renner App & Site","project_name_5":"Boa Vista","project_name_6":"Evnts","project_name_7":"Sambatech Backoffice","project_name_8":"Grupo Botic\xe1rio","project_name_9":"EnjoyTix","project_next":"Next project","project_open":"Open {name}","project_prev":"Previous project","project_title":"Developed Projects","project_type_datum":"Datum","project_type_evnts":"Evnts","project_type_foursys":"Foursys","project_type_freelancer":"Freelancer","project_type_overlabs":"Overlabs SKY","skill_section_ai":"AI & Machine Learning","skill_section_devops":"DevOps & Cloud","skill_section_languages":"Languages & Frameworks","skill_section_state_api":"State & APIs","skill_section_styling":"Styling & Design","skill_section_testing":"Testing & Quality","skill_soft_accessibility":"Acessibilidade","skill_soft_ai_agents":"AI Agents","skill_soft_atomic_design":"Atomic Design","skill_soft_bdd":"BDD","skill_soft_bem":"BEM","skill_soft_ci_cd":"CI/CD","skill_soft_clean_code":"Clean Code","skill_soft_code_review":"Code Review","skill_soft_context_api":"Context API","skill_soft_css_in_js":"CSS-in-JS","skill_soft_design_systems":"Design Systems","skill_soft_git_flow":"Git Flow","skill_soft_intermediate_english":"Ingl\xeas Intermedi\xe1rio","skill_soft_kanban":"Kanban","skill_soft_langfuse":"LangFuse","skill_soft_mcp":"MCP","skill_soft_mentoring":"Mentoria","skill_soft_micro_frontends":"Micro-Frontends","skill_soft_mobile_first":"Mobile First","skill_soft_mobx":"MobX","skill_soft_module_federation":"Module Federation","skill_soft_monorepo":"Monorepo","skill_soft_oidc_keycloak":"OIDC/Keycloak","skill_soft_prompt_engineering":"Prompt Engineering","skill_soft_pwa":"PWA","skill_soft_rag":"RAG","skill_soft_rest":"REST","skill_soft_scrum":"Scrum","skill_soft_seo":"SEO","skill_soft_software_architecture":"Arquitetura de Software","skill_soft_solid":"SOLID","skill_soft_style_guides":"Style Guides","skill_soft_tdd":"TDD","skill_soft_technical_leadership":"Lideran\xe7a T\xe9cnica","skill_soft_ux_ui":"UX/UI","skill_soft_web_vitals":"Web Vitals","skill_soft_zustand":"Zustand","skills_habilidades":"Skills","skills_soft_skills":"Soft Skills","tech_adobe_xd":"Adobe XD","tech_ai_agents":"AI Agents","tech_angular":"Angular","tech_atomic_design":"Atomic Design","tech_bdd":"BDD","tech_claude":"Claude","tech_clickhouse":"ClickHouse","tech_context_api":"Context API","tech_core_web_vitals":"Core Web Vitals","tech_credit_score":"Credit Score","tech_cypress":"Cypress","tech_design_system":"Design System","tech_design_tokens":"Design Tokens","tech_docker":"Docker","tech_dotnet":".NET","tech_events_3d":"Eventos 3D","tech_figma":"Figma","tech_flutter":"Flutter","tech_gcp":"GCP","tech_gemini":"Gemini","tech_github_actions":"GitHub Actions","tech_gitlab_ci":"GitLab CI","tech_gpt4":"GPT-4","tech_graphql":"GraphQL","tech_guardrails":"Guardrails","tech_hardware_integration":"Hardware Integration","tech_high_concurrency":"Alta concorr\xeancia","tech_javascript":"JavaScript","tech_jest":"Jest","tech_jwt":"JWT Auth","tech_keycloak":"Keycloak","tech_langchain":"LangChain","tech_langfuse":"LangFuse","tech_llms":"LLMs","tech_maps":"Maps","tech_mcp":"MCP","tech_micro_frontends":"Micro-Frontends","tech_mobx":"MobX","tech_mongodb":"MongoDB","tech_monorepo":"Monorepo","tech_mui":"Material UI","tech_nextjs":"Next.js","tech_nodejs":"Node.js","tech_offline_first":"Offline-first","tech_oidc":"OIDC","tech_openai_api":"OpenAI API","tech_openlayers":"OpenLayers","tech_payments":"Pagamentos","tech_postgresql":"PostgreSQL","tech_python":"Python","tech_rag":"RAG","tech_react":"React","tech_react_native":"React Native","tech_redux":"Redux","tech_responsive_ui":"Responsive UI","tech_rest":"REST","tech_spa":"SPA","tech_sql":"SQL","tech_ssr_ssg":"SSR/SSG","tech_storybook":"Storybook","tech_streaming":"Streaming","tech_styled_components":"Styled Components","tech_svelte":"Svelte","tech_sync":"Sync","tech_tdd":"TDD","tech_testing_library":"Testing Library","tech_tickets":"Ingressos","tech_typescript":"TypeScript","tech_vue":"Vue.js","tech_wcag":"WCAG 2.1","tech_zustand":"Zustand"}'),a=JSON.parse('{"about_corrida":"Corrida","about_design":"Design","about_interesses":"Interesses e hobbies","about_paragraph_1":"Tech Lead Frontend com 8+ anos de experi\xeancia, especializado em React, Next.js, Angular, Vue, TypeScript e IA Generativa. Atualmente liderando times de engenharia na Overlabs SKY e ensinando as pr\xf3ximas gera\xe7\xf5es de devs na FIAP.","about_paragraph_2":"Apaixonado por criar interfaces de alta performance com excelente UX, trabalho na interse\xe7\xe3o de Frontend Architecture e Intelig\xeancia Artificial — de AI Agents e RAG a Prompt Engineering e integra\xe7\xe3o com LLMs via OpenAI API e LangChain.","about_paragraph_3":"Especialista em Arquitetura de Software Frontend: Micro-Frontends, Monorepos, SSR/SSG, Design Systems, CI/CD e seguran\xe7a com OIDC/Keycloak. Professor de p\xf3s-gradua\xe7\xe3o, palestrante e mentor de desenvolvedores.","about_sobre_mim":"Sobre mim","about_stat_clients":"empresas / clientes","about_stat_start":"in\xedcio da carreira","about_stat_years":"anos de experi\xeancia","about_xadrez":"Xa
1drez","experience_description_1":"Lideran\xe7a t\xe9cnica do time de Frontend nos projetos OverScore (score corporativo) e Khon.ai (hub de IA). Defini\xe7\xe3o de arquitetura escal\xe1vel com Micro-Frontends, Monorepos e SSR/SSG. Pipelines CI/CD, CDN, Edge Computing e Serverless. Seguran\xe7a frontend com CSP e OIDC/Keycloak. Otimiza\xe7\xe3o de Web Vitals, SEO e PWA. Mentoria e code review cont\xednuo.","experience_description_2":"Aulas pr\xe1ticas, mentorias e palestras em desenvolvimento de software com foco em aplica\xe7\xf5es reais de mercado. Turmas: P\xf3s-Tech Full Stack, Front-end Engineering e Dev Foundations. Ensino de arquitetura frontend, micro-frontends, UX/UI, integra\xe7\xf5es e IA generativa.","experience_description_3":"Constru\xe7\xe3o e manuten\xe7\xe3o do Design System Renner com componentes reutiliz\xe1veis, acessibilidade e performance. Desenvolvimento do site e app principal da Renner: novas features, otimiza\xe7\xe3o cont\xednua e melhoria de UX em web e mobile.","experience_description_4":"Engenharia de UI para Boa Vista (maior bureau de cr\xe9dito do Brasil). Desenvolvimento de interfaces responsivas e interativas, participa\xe7\xe3o em gest\xe3o de produto e cerim\xf4nias Scrum com equipes multidisciplinares.","experience_description_5":"Desenvolvimento front-end da plataforma de eventos em parceria com design e produto. Interfaces responsivas, fluxos de pagamento complexos, gest\xe3o de estado com Redux e testes automatizados com Jest.","experience_description_6":"Clientes: Grupo Botic\xe1rio, Sambatech e Enjoytix. Prototipagem, an\xe1lise de requisitos, implementa\xe7\xe3o e entrega end-to-e
1nd com contato direto ao cliente em projetos de e-commerce e streaming.","experience_description_7":"Cria\xe7\xe3o de interfaces responsivas e interativas em startup de moda, em parceria com equipe de design. Primeira experi\xeancia com m\xfaltiplos frameworks (React, Vue) e stack moderna com Next.js.","experience_description_8":"Desenvolvimento full-stack em associa\xe7\xe3o banc\xe1ria. Cria\xe7\xe3o de sistemas frontend e backend, APIs RESTful e primeiros contatos profissionais com React, Node.js e bancos de dados em ambiente corporativo.","experience_time_1":"03/2024 – atual","experience_time_2":"03/2024 – atual","experience_time_3":"11/2023 – 03/2025 (1 ano e 5 meses)","experience_time_4":"03/2023 – 10/2023 (9 meses)","experience_time_5":"02/2021 – 03/2023 (2 anos e 2 meses)","experience_time_6":"06/2021 – 06/2022 (1 ano, meio per\xedodo)","experience_time_7":"06/2020 – 02/2021 (8 meses)","experience_time_8":"10/2019 – 07/2020 (9 meses)","experience_title":"Experi\xeancias","experience_title_1":"Overlabs SKY — Tech Lead Frontend | Arquitetura & Lideran\xe7a","experience_title_2":"FIAP — Professor de Ensino Superior","experience_title_3":"Datum — Desenvolvedor Frontend S\xeanior","experience_title_4":"Foursys — Desenvolvedor Frontend S\xeanior","experience_title_5":"Evnts — Desenvolvedor Frontend Pleno","experience_title_6":"Freelancer — Desenvolvedor Frontend","experience_title_7":"Hyst — Desenvolvedor Frontend Jr.","experience_title_8":"ABBC — Estagi\xe1rio Desenvolvimento Web","float_brazilian":"Brasileiro","float_developer":"Developer","float_footer_roles":"Frontend Engineer & Professor","float_portfolio":"Portf\xf3lio","float_projects":"Projects","float_tech_lead":"Tech Lead | AI","main_name":"Gustavo Scarpim","main_roles":"Tech Lead | Frontend Engineer | Frontend Architect | Professor","main_title":"Portf\xf3lio","meta_description":"Portf\xf3lio de Gustavo Scarpim — Tech Lead Frontend, projetos, experi\xeancias e habilidades em React, Next.js, IA e arquitetura frontend.","not_found_message":"P\xe1gina n\xe3o encontrada.","not_found_title":"404","project_alt_1":"Khon.ai - Hub de IA","project_alt_10":"Amaggi - Agroneg\xf3cio Offline-first","project_alt_2":"OverScore - Plataforma de Cr\xe9dito","project_alt_3":"Renner Design System","project_alt_4":"Site e App Renner","project_alt_5":"Boa Vista — UI Systems","project_alt_6":"Evnts - Plataforma de Eventos","project_alt_7":"Sambatech - Plataforma de V\xeddeo","project_alt_8":"Grupo Botic\xe1rio - Roleta de Fragr\xe2ncias","project_alt_9":"EnjoyTix - Plataforma de Eventos","project_description_1":"Hub de IA corporativo multi-modelo (GPT-4, Claude, Gemini) com orquestra\xe7\xe3o de assistentes e integra\xe7\xf5es. Frontend em Svelte + Python, RAG, AI Agents, guardrails, autentica\xe7\xe3o com Keycloak e OIDC, observabilidade com LangFuse, ClickHouse e mapas com OpenLayers. Tamb\xe9m desenvolvi o app mobile em Flutter (Android e iOS) para consumo e opera\xe7\xe3o do produto.","project_description_10":"Sistema de agroneg\xf3cio com arquitetura offline-first: equipes visitam fazendas, registram fotos, relat\xf3rios e mapeamento do terreno sem internet; ao reconectar, os dados s\xe3o sincronizados. Desenvolvido com React, Next.js, React Native, TypeScript e Jest.","project_description_2":"Plataforma de cr\xe9dito desenvolvida em Vue.js para consulta e visualiza\xe7\xe3o do score de cada pessoa. SPA focada em performance e clareza de dados, com autentica\xe7\xe3o via Keycloak e OIDC, integra\xe7\xe3o a APIs de an\xe1lise de cr\xe9dito e fluxos de decis\xe3o para times de neg\xf3cio.","project_description_3":"Design System das Lojas Renner constru\xeddo do zero absoluto em React e React Native, sem Material UI. Biblioteca de componentes, tokens, testes unit\xe1rios e end-to-end, documenta\xe7\xe3o e foco em acessibilidade, consist\xeancia e escalabilidade entre web e mobile.","project_description_4":"E-commerce e app das Lojas Renner: Next.js com SSR/SSG para SEO e Core Web Vitals, React Native para iOS/Android, estado global com Zustand e MobX, integra\xe7\xe3o REST/GraphQL, testes E2E com Cypress e unit\xe1rios com Jest. CI/CD automatizado com feature flags e otimiza\xe7\xe3o cont\xednua de performance.","project_description_5":"Sistemas de UI para o maior bureau de cr\xe9dito do Brasil. Dashboards e relat\xf3rios complexos com React + TypeScript + Material UI, Context API para estado global, testes com Jest + Testing Library e integra\xe7\xe3o REST com APIs de score e an\xe1lise de cr\xe9dito.","project_description_6":"Plataforma completa para eventos digitais e experi\xeancias em 3D, com venda de ingressos, pagamentos e streaming online. Suporte a milhares de acessos simult\xe2neos e constru\xe7\xe3o de ferramentas de conting\xeancia para garantir estabilidade em picos de tr\xe1fego e falhas de terceiros.","project_description_7":"Backoffice para plataforma de streaming Sambatech. Painel administrativo com gerenciamento de conte\xfado, m\xe9tricas de visualiza\xe7\xe3o e controle de permiss\xf5es por perfil (RBAC). Next.js + TypeScript + Redux, integra\xe7\xe3o REST, autentica\xe7\xe3o JWT e interface responsiva com foco em UX para equipes internas.","project_description_8":"Sistema de roleta de fragr\xe2ncias do Grupo Botic\xe1rio: o cliente escolhe a fragr\xe2ncia na interface, o sistema troca o refil no tablet e dispara a pulveriza\xe7\xe3o para sentir o cheiro na hora. Desenvolvido em React, Redux, Type
1Script e Node.js, com testes unit\xe1rios e prot\xf3tipos no Figma.","project_description_9":"Plataforma de eventos e ingressos digitais no estilo Sympla, com gest\xe3o de ingressos, pagamentos e transmiss\xe3o online. Trabalhei com Next.js, Redux, TypeScript e Jest em fluxos de compra, checkout e experi\xeancia do participante.","project_go":"Ir para projeto {name}","project_name_1":"Khon.ai","project_name_10":"Amaggi","project_name_2":"OverScore","project_name_3":"Renner Design System","project_name_4":"Renner App & Site","project_name_5":"Boa Vista","project_name_6":"Evnts","project_name_7":"Sambatech Backoffice","project_name_8":"Grupo Botic\xe1rio","project_name_9":"EnjoyTix","project_next":"Pr\xf3ximo projeto","project_open":"Abrir {name}","project_prev":"Projeto anterior","project_title":"Projetos desenvolvidos","project_type_datum":"Datum","project_type_evnts":"Evnts","project_type_foursys":"Foursys","project_type_freelancer":"Freelancer","project_type_overlabs":"Overlabs SKY","skill_section_ai":"IA & Machine Learning","skill_section_devops":"DevOps & Cloud","skill_section_languages":"Linguagens & Frameworks","skill_section_state_api":"Estado & APIs","skill_section_styling":"Estiliza\xe7\xe3o & Design","skill_section_testing":"Testes & Qualidade","skill_soft_accessibility":"Accessibility","skill_soft_ai_agents":"AI Agents","skill_soft_atomic_design":"Atomic Design","skill_soft_bdd":"BDD","skill_soft_bem":"BEM","skill_soft_ci_cd":"CI/CD","skill_soft_clean_code":"Clean Code","skill_soft_code_review":"Code Review","skill_soft_context_api":"Context API","skill_soft_css_in_js":"CSS-in-JS","skill_soft_design_systems":"Design Systems","skill_soft_git_flow":"Git Flow","skill_soft_intermediate_english":"Intermediate English","skill_soft_kanban":"Kanban","skill_soft_langfuse":"LangFuse","skill_soft_mcp":"MCP","skill_soft_mentoring":"Mentoring","skill_soft_micro_frontends":"Micro-Frontends","skill_soft_mobile_first":"Mobile First","skill_soft_mobx":"MobX","skill_soft_module_federation":"Module Federation","skill_soft_monorepo":"Monorepo","skill_soft_oidc_keycloak":"OIDC/Keycloak","skill_soft_prompt_engineering":"Prompt Engineering","skill_soft_pwa":"PWA","skill_soft_rag":"RAG","skill_soft_rest":"REST","skill_soft_scrum":"Scrum","skill_soft_seo":"SEO","skill_soft_software_architecture":"Software Architecture","skill_soft_solid":"SOLID","skill_soft_style_guides":"Style Guides","skill_soft_tdd":"TDD","skill_soft_technical_leadership":"Technical Leadership","skill_soft_ux_ui":"UX/UI","skill_soft_web_vitals":"Web Vitals","skill_soft_zustand":"Zustand","skills_habilidades":"Habilidades","skills_soft_skills":"Soft Skills","tech_adobe_xd":"Adobe XD","tech_ai_agents":"AI Agents","tech_angular":"Angular","tech_atomic_design":"Atomic Design","tech_bdd":"BDD","tech_claude":"Claude","tech_clickhouse":"ClickHouse","tech_context_api":"Context API","tech_core_web_vitals":"Core Web Vitals","tech_credit_score":"Score de cr\xe9dito","tech_cypress":"Cypress","tech_design_system":"Design System","tech_design_tokens":"Design Tokens","tech_docker":"Docker","tech_dotnet":".NET","tech_events_3d":"3D Events","tech_figma":"Figma","tech_flutter":"Flutter","tech_gcp":"GCP","tech_gemini":"Gemini","tech_github_actions":"GitHub Actions","tech_gitlab_ci":"GitLab CI","tech_gpt4":"GPT-4","tech_graphql":"GraphQL","tech_guardrails":"Guardrails","tech_hardware_integration":"Integra\xe7\xe3o com hardware","tech_high_concurrency":"High concurrency","tech_javascript":"JavaScript","tech_jest":"Jest","tech_jwt":"Autentica\xe7\xe3o JWT","tech_keycloak":"Keycloak","tech_langchain":"LangChain","tech_langfuse":"LangFuse","tech_llms":"LLMs","tech_maps":"Mapas","tech_mcp":"MCP","tech_micro_frontends":"Micro-Frontends","tech_mobx":"MobX","tech_mongodb":"MongoDB","tech_monorepo":"Monorepo","tech_mui":"Material UI","tech_nextjs":"Next.js","tech_nodejs":"Node.js","tech_offline_first":"Offline-first","tech_oidc":"OIDC","tech_openai_api":"OpenAI API","tech_openlayers":"OpenLayers","tech_payments":"Payments","tech_postgresql":"PostgreSQL","tech_python":"Python","tech_rag":"RAG","tech_react":"React","tech_react_native":"React Native","tech_redux":"Redux","tech_responsive_ui":"UI responsiva","tech_rest":"REST","tech_spa":"SPA","tech_sql":"SQL","tech_ssr_ssg":"SSR/SSG","tech_storybook":"Storybook","tech_streaming":"Streaming","tech_styled_components":"Styled Components","tech_svelte":"Svelte","tech_sync":"Sincroniza\xe7\xe3o","tech_tdd":"TDD","tech_testing_library":"Testing Library","tech_tickets":"Tickets","tech_typescript":"TypeScript","tech_vue":"Vue.js","tech_wcag":"WCAG 2.1","tech_zustand":"Zustand"}
1'),c=i(3454);let d={pt:a,en:o},g="true"===c.env.NEXT_PUBLIC_TOLGEE_USE_PLATFORM,f=(0,r.xn)().use((0,r.lY)());g&&(f=f.use((0,r.N5)()));let h=f.init({language:"pt",availableLanguages:["pt","en"],staticData:d,...g&&{apiKey:"tgpak_gm4donk7gnxgy5jxmzvtemdjofzweyllnnxgm4dlnf2tg4ztm4",apiUrl:"https://app.tolgee.io"}});function normalizeLocale(t){return"en"===t?"en":"pt"}},1595:function(){},7663:function(t){!function(){var n={229:function(t){var n,i,r,o=t.exports={};function defaultSetTimout(){throw Error("setTimeout has not been defined")}function defaultClearTimeout(){throw Error("clearTimeout has not been defined")}function runTimeout(t){if(n===setTimeout)return setTimeout(t,0);if((n===defaultSetTimout||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(i){try{return n.call(null,t,0)}catch(i){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(t){n=defaultSetTimout}try{i="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(t){i=defaultClearTimeout}}();var a=[],c=!1,d=-1;function cleanUpNextTick(){c&&r&&(c=!1,r.length?a=r.concat(a):d=-1,a.length&&drainQueue())}function drainQueue(){if(!c){var t=runTimeout(cleanUpNextTick);c=!0;for(var n=a.length;n;){for(r=a,a=[];++d<n;)r&&r[d].run();d=-1,n=a.length}r=null,c=!1,function(t){if(i===clearTimeout)return clearTimeout(t);if((i===defaultClearTimeout||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(t);try{i(t)}catch(n){try{return i.call(null,t)}catch(n){return i.call(this,t)}}}(t)}}function Item(t,n){this.fun=t,this.array=n}function noop(){}o.nextTick=function(t){var n=Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)n[i-1]=arguments[i];a.push(new Item(t,n)),1!==a.length||c||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=noop,o.addListener=noop,o.once=noop,o.off=noop,o.removeListener=noop,o.removeAllListeners=noop,o.emit=noop,o.prependListener=noop,o.prependOnceListener=noop,o.listeners=function(t){return[]},o.binding=function(t){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},i={};function __nccwpck_require__(t){var r=i[t];if(void 0!==r)return r.exports;var o=i[t]={exports:{}},a=!0;try{n[t](o,o.exports,__nccwpck_require__),a=!1}finally{a&&delete i[t]}return o.exports}__nccwpck_require__.ab="//";var r=__nccwpck_require__(229);t.exports=r}()},9008:function(t,n,i){t.exports=i(4605)},1163:function(t,n,i){t.exports=i(8355)},4865:function(t,n,i){var r,o;void 0!==(o="function"==typeof(r=function(){var t,n,i,r={};r.version="0.2.0";var o=r.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function clamp(t,n,i){return t<n?n:t>i?i:t}r.configure=function(t){var n,i;for(n in t)void 0!==(i=t[n])&&t.hasOwnProperty(n)&&(o[n]=i);return this},r.status=null,r.set=function(t){var n=r.isStarted();t=clamp(t,o.minimum,1),r.status=1===t?null:t;var i=r.render(!n),d=i.querySelector(o.barSelector),g=o.speed,f=o.easing;return i.offsetWidth,a(function(n){var a,h;""===o.positionUsing&&(o.positionUsing=r.getPositioningCSS()),c(d,(a=t,(h="translate3d"===o.positionUsing?{transform:"translate3d("+(-1+a)*100+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+(-1+a)*100+"%,0)"}:{"margin-left":(-1+a)*100+"%"}).transition="all "+g+"ms "+f,h)),1===t?(c(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout(function(){c(i,{transition:"all "+g+"ms linear",opacity:0}),setTimeout(function(){r.remove(),n()},g)},g)):setTimeout(n,g)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var work=function(){setTimeout(function(){r.status&&(r.trickle(),work())},o.trickleSpeed)};return o.trickle&&work(),this},r.done=function(t){return t||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(t){var n=r.status;return n?("number"!=typeof t&&(t=(1-n)*clamp(Math.random()*n,.1,.95)),n=clamp(n+t,0,.994),r.set(n)):r.start()},r.trickle=function(){return r.inc(Math.random()*o.trickleRate)},t=0,n=0,r.promise=function(i){return i&&"resolved"!==i.state()&&(0===n&&r.start(),t++,n++,i.al
1ways(function(){0==--n?(t=0,r.done()):r.set((t-n)/t)})),this},r.render=function(t){if(r.isRendered())return document.getElementById("nprogress");addClass(document.documentElement,"nprogress-busy");var n=document.createElement("div");n.id="nprogress",n.innerHTML=o.template;var i,a,d=n.querySelector(o.barSelector),g=t?"-100":(-1+(r.status||0))*100,f=document.querySelector(o.parent);return c(d,{transition:"all 0 linear",transform:"translate3d("+g+"%,0,0)"}),!o.showSpinner&&(a=n.querySelector(o.spinnerSelector))&&removeElement(a),f!=document.body&&addClass(f,"nprogress-custom-parent"),f.appendChild(n),n},r.remove=function(){removeClass(document.documentElement,"nprogress-busy"),removeClass(document.querySelector(o.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&removeElement(t)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.getPositioningCSS=function(){var t=document.body.style,n="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return n+"Perspective" in t?"translate3d":n+"Transform" in t?"translate":"margin"};var a=(i=[],function(t){i.push(t),1==i.length&&function next(){var t=i.shift();t&&t(next)}()}),c=function(){var t=["Webkit","O","Moz","ms"],n={};function applyCss(i,r,o){var a;r=n[a=(a=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,n){return n.toUpperCase()})]||(n[a]=function(n){var i=document.body.style;if(n in i)return n;for(var r,o=t.length,a=n.charAt(0).toUpperCase()+n.slice(1);o--;)if((r=t[o]+a)in i)return r;return n}(a)),i.style[r]=o}return function(t,n){var i,r,o=arguments;if(2==o.length)for(i in n)void 0!==(r=n[i])&&n.hasOwnProperty(i)&&applyCss(t,i,r);else applyCss(t,o[1],o[2])}}();function hasClass(t,n){return("string"==typeof t?t:classList(t)).indexOf(" "+n+" ")>=0}function addClass(t,n){var i=classList(t),r=i+n;hasClass(i,n)||(t.className=r.substring(1))}function removeClass(t,n){var i,r=classList(t);hasClass(t,n)&&(i=r.replace(" "+n+" "," "),t.className=i.substring(1,i.length-1))}function classList(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function removeElement(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return r})?r.call(n,i,n,t):r)&&(t.exports=o)},6774:function(t){t.exports=function(t,n,i,r){var o=i?i.call(r,t,n):void 0;if(void 0!==o)return!!o;if(t===n)return!0;if("object"!=typeof t||!t||"object"!=typeof n||!n)return!1;var a=Object.keys(t),c=Object.keys(n);if(a.length!==c.length)return!1;for(var d=Object.prototype.hasOwnProperty.bind(n),g=0;g<a.length;g++){var f=a[g];if(!d(f))return!1;var h=t[f],_=n[f];if(!1===(o=i?i.call(r,h,_,f):void 0)||void 0===o&&h!==_)return!1}return!0}},9825:function(t,n,i){"use strict";i.d(n,{f6:function(){return Xe},vJ:function(){return at},iv:function(){return nt},ZP:function(){return eD},F4:function(){return ct}});var __assign=function(){return(__assign=Object.assign||function(t){for(var n,i=1,r=arguments.length;i<r;i++)for(var o in n=arguments[i])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)};function __spreadArray(t,n,i){if(i||2==arguments.length)for(var r,o=0,a=n.length;o<a;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return t.concat(r||Array.prototype.slice.call(n))}"function"==typeof SuppressedError&&SuppressedError;var r=i(7294),o=i(6774),a=i.n(o),c="-ms-",d="-moz-",g="-webkit-",f="comm",h="rule",_="decl",m="@keyframes",v=Math.abs,y=String.fromCharCode,b=Object.assign;function match(t,n){return(t=n.exec(t))?t[0]:t}function replace(t,n,i){return t.replace(n,i)}function indexof(t,n){return t.indexOf(n)}function Utility_charat(t,n){return 0|t.charCodeAt(n)}function Utility_substr(t,n,i){return t.slice(n,i)}function Utility_strlen(t){return t.length}function Utility_append(t,n){return n.push(t),t}function filter(t,n){return t.filter(function(t){return!match(t,n)})}var S=1,C=1,w=0,I=0,E=0,O="";function node(t,n,i,r,o,a,c,d){return{value:t,root:n,parent:i,type:r,props:o,children:a,line:S,column:C,length:c,return:"",siblings:d}}function copy(t,n){return b(node("",null,null,"",null,null,0,t.siblings),t,{length:-t.length},n)}function lift(t){for(;t.root;)t=copy(t.root,{children:[t]});Utility_append(t,t.siblings)}function next(){return E=I<w?Utility_charat(O,I++):0,C++,10===E&&(C=1,S++),E}function peek(){return Utility_charat(O,I)}function token(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function delimit(t){var n,i;return(n=I-1,i=function delimiter(t){for(;next();)switch(E){case t:return I;case 34:case 39:34!==t&&39!==t&&delimiter(E);break;case 40:41===t&&delimiter(t);break;case 92:next()}return I}(91===t?t+2:40===t?t+1:t),Utility_substr(O,n,i)).trim()}function serialize(t,n){for(var i="",r=0;r<t.length;r++)i+=n(t[r],r,t,n)||"";return i}function stringify(t,n,i,r){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case _:return t.return=t.return||t.value;case f:return"";case m:return t.return=t.value+"{"+serialize(t.children,r)+"}";case h:if(!Utility_strlen(t.value=t.props.join(",")))return""}return Utility_strlen(i=serialize(t.children,r))?t.return=t.value+"{"+i+"}":""}function prefixer(t,n,i,r){if(t.length>-1&&!t.return)switch(t.type){case _:t.return=function prefix(t,n,i){var r;switch(r=n,45^Utility_charat(t,0)?(((r<<2^Utility_charat(t,0))<<2^Utility_charat(t,1))<<2^Utility_charat(t,2))<<2^Utility_charat(t,3):0){case 5103:return g+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return g+t+t;case 4789:return d+t+t;
1case 5349:case 4246:case 4810:case 6968:case 2756:return g+t+d+t+c+t+t;case 5936:switch(Utility_charat(t,n+11)){case 114:return g+t+c+replace(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return g+t+c+replace(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return g+t+c+replace(t,/[svh]\w+-[tblr]{2}/,"lr")+t}case 6828:case 4268:case 2903:return g+t+c+t+t;case 6165:return g+t+c+"flex-"+t+t;case 5187:return g+t+replace(t,/(\w+).+(:[^]+)/,g+"box-$1$2"+c+"flex-$1$2")+t;case 5443:return g+t+c+"flex-item-"+replace(t,/flex-|-self/g,"")+(match(t,/flex-|baseline/)?"":c+"grid-row-"+replace(t,/flex-|-self/g,""))+t;case 4675:return g+t+c+"flex-line-pack"+replace(t,/align-content|flex-|-self/g,"")+t;case 5548:return g+t+c+replace(t,"shrink","negative")+t;case 5292:return g+t+c+replace(t,"basis","preferred-size")+t;case 6060:return g+"box-"+replace(t,"-grow","")+g+t+c+replace(t,"grow","positive")+t;case 4554:return g+replace(t,/([^-])(transform)/g,"$1"+g+"$2")+t;case 6187:return replace(replace(replace(t,/(zoom-|grab)/,g+"$1"),/(image-set)/,g+"$1"),t,"")+t;case 5495:case 3959:return replace(t,/(image-set\([^]*)/,g+"$1$`$1");case 4968:return replace(replace(t,/(.+:)(flex-)?(.*)/,g+"box-pack:$3"+c+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+g+t+t;case 4200:if(!match(t,/flex-|baseline/))return c+"grid-column-align"+Utility_substr(t,n)+t;break;case 2592:case 3360:return c+replace(t,"template-","")+t;case 4384:case 3616:if(i&&i.some(function(t,i){return n=i,match(t.props,/grid-\w+-end/)}))return~indexof(t+(i=i[n].value),"span")?t:c+replace(t,"-start","")+t+c+"grid-row-span:"+(~indexof(i,"span")?match(i,/\d+/):+match(i,/\d+/)-+match(t,/\d+/))+";";return c+replace(t,"-start","")+t;case 4896:case 4128:return i&&i.some(function(t){return match(t.props,/grid-\w+-start/)})?t:c+replace(replace(t,"-end","-span"),"span ","")+t;case 4095:case 3583:case 4068:case 2532:return replace(t,/(.+)-inline(.+)/,g+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Utility_strlen(t)-1-n>6)switch(Utility_charat(t,n+1)){case 109:if(45!==Utility_charat(t,n+4))break;case 102:return replace(t,/(.+:)(.+)-([^]+)/,"$1"+g+"$2-$3$1"+d+(108==Utility_charat(t,n+3)?"$3":"$2-$3"))+t;case 115:return~indexof(t,"stretch")?prefix(replace(t,"stretch","fill-available"),n,i)+t:t}break;case 5152:case 5920:return replace(t,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,i,r,o,a,d,g){return c+i+":"+r+g+(o?c+i+"-span:"+(a?d:+d-+r)+g:"")+t});case 4949:if(121===Utility_charat(t,n+6))return replace(t,":",":"+g)+t;break;case 6444:switch(Utility_charat(t,45===Utility_charat(t,14)?18:11)){case 120:return replace(t,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+g+(45===Utility_charat(t,14)?"inline-":"")+"box$3$1"+g+"$2$3$1"+c+"$2box$3")+t;case 100:return replace(t,":",":"+c)+t}break;case 5719:case 2647:case 2135:case 3927:case 2391:return replace(t,"scroll-","scroll-snap-")+t}return t}(t.value,t.length,i);return;case m:return serialize([copy(t,{value:replace(t.value,"@","@"+g)})],r);case h:if(t.length)return(i=t.props).map(function(n){switch(match(n,r=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":lift(copy(t,{props:[replace(n,/:(read-\w+)/,":"+d+"$1")]})),lift(copy(t,{props:[n]})),b(t,{props:filter(i,r)});break;case"::placeholder":lift(copy(t,{props:[replace(n,/:(plac\w+)/,":"+g+"input-$1")]})),lift(copy(t,{props:[replace(n,/:(plac\w+)/,":"+d+"$1")]})),lift(copy(t,{props:[replace(n,/:(plac\w+)/,c+"input-$1")]})),lift(copy(t,{props:[n]})),b(t,{props:filter(i,r)})}return""}).join("")}}function ruleset(t,n,i,r,o,a,c,d,g,f,_,m){for(var y=o-1,b=0===o?a:[""],S=b.length,C=0,w=0,I=0;C<r;++C)for(var E=0,O=Utility_substr(t,y+1,y=v(w=c[C])),L=t;E<S;++E)(L=(w>0?b[E]+" "+O:replace(O,/&\f/g,b[E])).trim())&&(g[I++]=L);return node(t,n,i,0===o?h:d,g,f,_,m)}function declaration(t,n,i,r,o){return node(t,n,i,_,Utility_substr(t,0,r),Utility_substr(t,r+1,-1),r,o)}var L=i(4371),N=i(3454),U=void 0!==N&&void 0!==N.env&&(N.env.REACT_APP_SC_ATTR||N.env.SC_ATTR)||"data-styled",G="undefined"!=typeof window&&"HTMLElement"in window,M=!!("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:void 0!==N&&void 0!==N.env&&void 0!==N.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==N.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==N.env.REACT_APP_SC_DISABLE_SPEEDY&&N.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==N&&void 0!==N.env&&void 0!==N.env.SC_DISABLE_SPEEDY&&""!==N.env.SC_DISABLE_SPEEDY&&"false"!==N.env.SC_DISABLE_SPEEDY&&N.env.SC_DISABLE_SPEEDY),B={},z=Object.freeze([]),q=Object.freeze({});function P(t,n,i){return void 0===i&&(i=q),t.theme!==i.theme&&t.theme||n||i.theme}var $=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),J=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,V=/(^-|-$)/g;function A(t){return t.replace(J,"-").replace(V,"")}var H=/(a)(d)/gi,D=function(t){return String.fromCharCode(t+(t>25?39:97))};function R(t){var n,i="";for(n=Math.abs(t);n>52;n=n/52|0)i=D(n%52)+i;return(D(n%52)+i).replace(H,"$1-$2")}var X,k=function(t,n){for(var i=n.length;i;
1)t=33*t^n.charCodeAt(--i);return t},j=function(t){return k(5381,t)};function x(t){return R(j(t)>>>0)}function F(t){return"string"==typeof t}var Y="function"==typeof Symbol&&Symbol.for,Z=Y?Symbol.for("react.memo"):60115,en=Y?Symbol.for("react.forward_ref"):60112,ei={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},er={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},eo={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},ea=((X={})[en]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},X[Z]=eo,X);function W(t){return("type"in t&&t.type.$$typeof)===Z?eo:"$$typeof"in t?ea[t.$$typeof]:ei}var es=Object.defineProperty,ec=Object.getOwnPropertyNames,el=Object.getOwnPropertySymbols,eu=Object.getOwnPropertyDescriptor,ed=Object.getPrototypeOf,ep=Object.prototype;function Q(t){return"function"==typeof t}function ee(t){return"object"==typeof t&&"styledComponentId"in t}function te(t,n){return t&&n?"".concat(t," ").concat(n):t||n||""}function ne(t,n){if(0===t.length)return"";for(var i=t[0],r=1;r<t.length;r++)i+=n?n+t[r]:t[r];return i}function oe(t){return null!==t&&"object"==typeof t&&t.constructor.name===Object.name&&!("props"in t&&t.$$typeof)}function se(t,n){Object.defineProperty(t,"toString",{value:n})}function ce(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];return Error("An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#".concat(t," for more information.").concat(n.length>0?" Args: ".concat(n.join(", ")):""))}var eg=function(){function e(t){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=t}return e.prototype.indexOfGroup=function(t){for(var n=0,i=0;i<t;i++)n+=this.groupSizes[i];return n},e.prototype.insertRules=function(t,n){if(t>=this.groupSizes.length){for(var i=this.groupSizes,r=i.length,o=r;t>=o;)if((o<<=1)<0)throw ce(16,"".concat(t));this.groupSizes=new Uint32Array(o),this.groupSizes.set(i),this.length=o;for(var a=r;a<o;a++)this.groupSizes[a]=0}for(var c=this.indexOfGroup(t+1),d=(a=0,n.length);a<d;a++)this.tag.insertRule(c,n[a])&&(this.groupSizes[t]++,c++)},e.prototype.clearGroup=function(t){if(t<this.length){var n=this.groupSizes[t],i=this.indexOfGroup(t),r=i+n;this.groupSizes[t]=0;for(var o=i;o<r;o++)this.tag.deleteRule(i)}},e.prototype.getGroup=function(t){var n="";if(t>=this.length||0===this.groupSizes[t])return n;for(var i=this.groupSizes[t],r=this.indexOfGroup(t),o=r+i,a=r;a<o;a++)n+="".concat(this.tag.getRule(a)).concat("/*!sc*/\n");return n},e}(),ef=new Map,eh=new Map,e_=1,he=function(t){if(ef.has(t))return ef.get(t);for(;eh.has(e_);)e_++;var n=e_++;return ef.set(t,n),eh.set(n,t),n},fe=function(t,n){ef.set(t,n),eh.set(n,t)},em="style[".concat(U,"][").concat("data-styled-version",'="').concat("6.0.8",'"]'),ev=new RegExp("^".concat(U,'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)')),ve=function(t,n,i){for(var r,o=i.split(","),a=0,c=o.length;a<c;a++)(r=o[a])&&t.registerName(n,r)},ge=function(t,n){for(var i,r=(null!==(i=n.textContent)&&void 0!==i?i:"").split("/*!sc*/\n"),o=[],a=0,c=r.length;a<c;a++){var d=r[a].trim();if(d){var g=d.match(ev);if(g){var f=0|parseInt(g[1],10),h=g[2];0!==f&&(fe(h,f),ve(t,h,g[3]),t.getTag().insertRules(f,o)),o.length=0}else o.push(d)}}},we=function(t){var n,r=document.head,o=t||r,a=document.createElement("style"),c=(n=Array.from(o.querySelectorAll("style[".concat(U,"]"))))[n.length-1],d=void 0!==c?c.nextSibling:null;a.setAttribute(U,"active"),a.setAttribute("data-styled-version","6.0.8");var g=i.nc;return g&&a.setAttribute("nonce",g),o.insertBefore(a,d),a},ey=function(){function e(t){this.element=we(t),this.element.appendChild(document.createTextNode("")),this.sheet=function(t){if(t.sheet)return t.sheet;for(var n=document.styleSheets,i=0,r=n.length;i<r;i++){var o=n[i];if(o.ownerNode===t)return o}throw ce(17)}(this.element),this.length=0}return e.prototype.insertRule=function(t,n){try{return this.sheet.insertRule(n,t),this.length++,!0}catch(t){return!1}},e.prototype.deleteRule=function(t){this.sheet.deleteRule(t),this.length--},e.prototype.getRule=function(t){var n=this.sheet.cssRules[t];return n&&n.cssText?n.cssText:""},e}(),eb=function(){function e(t){this.element=we(t),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(t,n){if(t<=this.length&&t>=0){var i=document.createTextNode(n);return this.element.insertBefore(i,this.nodes[t]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(t){this.element.removeChild(this.nodes[t]),this.length--},e.prototype.getRule=function(t){return t<this.length?this.nodes[t].textContent:""},e}(),eS=function(){function e(t){this.rules=[],this.length=0}return e.prototype.insertRule=function(t,n){return t<=this.length&&(this.rules.splice(t,0,n),this.length++,!0)},e.prototype.deleteRule=function(t){this.rules.splice(t,1),this.length--},e.prototype.getRule=function(t){return t<this.length?this.rules[t]:""},e}(),ex=G,ek={isServer:!G,useCSSOMInjection:!M},eC=function(){function e(t,n,i){void 0===t&&(t=q),void 0===n&&(n={});var r=this;this.options=__assign(__assign({},ek),t),this.gs=n,this.names=new Map(i),this.server=!!t.isServer,!this.server&&G&&ex&&(ex=!1,function(t){for(var n=document.querySelectorAll(em),i=0,r=n.length;i<r;i++){var o=n[i];o&&"active"!==o.getAttribute(U)&&(ge(t,o),o.parentNode&&o.parentNode.removeChild(o))}}(this)),se(this,function(){return function(t){for(var n=t.getTag(),i=n.length,r="",o=0;o<i;o++)(function(i){var o=eh.get(i);if(void 0!==o){var a=t.names.get(o),c=n.getGroup(i);if(void 0!==a&&0!==c.length){var d="".concat(U,".g").concat(i,'[id="').concat(o,'"]'),g="";void 0!==a&&a.forEach(function(t){t.length>0&&(g+="".concat(t,","))}
1),r+="".concat(c).concat(d,'{content:"').concat(g,'"}').concat("/*!sc*/\n")}}})(o);return r}(r)})}return e.registerId=function(t){return he(t)},e.prototype.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(__assign(__assign({},this.options),t),this.gs,n&&this.names||void 0)},e.prototype.allocateGSInstance=function(t){return this.gs[t]=(this.gs[t]||0)+1},e.prototype.getTag=function(){var t,n,i,r;return this.tag||(this.tag=(i=(n=this.options).useCSSOMInjection,r=n.target,t=n.isServer?new eS(r):i?new ey(r):new eb(r),new eg(t)))},e.prototype.hasNameForId=function(t,n){return this.names.has(t)&&this.names.get(t).has(n)},e.prototype.registerName=function(t,n){if(he(t),this.names.has(t))this.names.get(t).add(n);else{var i=new Set;i.add(n),this.names.set(t,i)}},e.prototype.insertRules=function(t,n,i){this.registerName(t,n),this.getTag().insertRules(he(t),i)},e.prototype.clearNames=function(t){this.names.has(t)&&this.names.get(t).clear()},e.prototype.clearRules=function(t){this.getTag().clearGroup(he(t)),this.clearNames(t)},e.prototype.clearTag=function(){this.tag=void 0},e}(),ej=/&/g,ew=/^\s*\/\/.*$/gm;function De(t){var n,i,r,o=void 0===t?q:t,a=o.options,c=void 0===a?q:a,d=o.plugins,g=void 0===d?z:d,l=function(t,r,o){return o===i||o.startsWith(i)&&o.endsWith(i)&&o.replaceAll(i,"").length>0?".".concat(n):t},_=g.slice();_.push(function(t){t.type===h&&t.value.includes("&")&&(t.props[0]=t.props[0].replace(ej,i).replace(r,l))}),c.prefix&&_.push(prefixer),_.push(stringify);var p=function(t,o,a,d){void 0===o&&(o=""),void 0===a&&(a=""),void 0===d&&(d="&"),n=d,i=o,r=RegExp("\\".concat(i,"\\b"),"g");var g,h,m,v,b,L=t.replace(ew,""),N=(b=function parse(t,n,i,r,o,a,c,d,g){for(var h,_=0,m=0,v=c,b=0,w=0,L=0,N=1,U=1,G=1,M=0,B="",z=o,q=a,$=r,J=B;U;)switch(L=M,M=next()){case 40:if(108!=L&&58==Utility_charat(J,v-1)){-1!=indexof(J+=replace(delimit(M),"&","&\f"),"&\f")&&(G=-1);break}case 34:case 39:case 91:J+=delimit(M);break;case 9:case 10:case 13:case 32:J+=function(t){for(;E=peek();)if(E<33)next();else break;return token(t)>2||token(E)>3?"":" "}(L);break;case 92:J+=function(t,n){for(var i;--n&&next()&&!(E<48)&&!(E>102)&&(!(E>57)||!(E<65))&&(!(E>70)||!(E<97)););return i=I+(n<6&&32==peek()&&32==next()),Utility_substr(O,t,i)}(I-1,7);continue;case 47:switch(peek()){case 42:case 47:Utility_append(node(h=function(t,n){for(;next();)if(t+E===57)break;else if(t+E===84&&47===peek())break;return"/*"+Utility_substr(O,n,I-1)+"*"+y(47===t?t:next())}(next(),I),n,i,f,y(E),Utility_substr(h,2,-2),0,g),g);break;default:J+="/"}break;case 123*N:d[_++]=Utility_strlen(J)*G;case 125*N:case 59:case 0:switch(M){case 0:case 125:U=0;case 59+m:-1==G&&(J=replace(J,/\f/g,"")),w>0&&Utility_strlen(J)-v&&Utility_append(w>32?declaration(J+";",r,i,v-1,g):declaration(replace(J," ","")+";",r,i,v-2,g),g);break;case 59:J+=";";default:if(Utility_append($=ruleset(J,n,i,_,m,o,d,B,z=[],q=[],v,a),a),123===M){if(0===m)parse(J,n,$,$,z,a,v,d,q);else switch(99===b&&110===Utility_charat(J,3)?100:b){case 100:case 108:case 109:case 115:parse(t,$,$,r&&Utility_append(ruleset(t,$,$,0,0,o,d,B,o,z=[],v,q),q),o,q,v,d,r?z:q);break;default:parse(J,$,$,$,[""],q,0,d,q)}}}_=m=w=0,N=G=1,B=J="",v=c;break;case 58:v=1+Utility_strlen(J),w=L;default:if(N<1){if(123==M)--N;else if(125==M&&0==N++&&125==(E=I>0?Utility_charat(O,--I):0,C--,10===E&&(C=1,S--),E))continue}switch(J+=y(M),M*N){case 38:G=m>0?1:(J+="\f",-1);break;case 44:d[_++]=(Utility_strlen(J)-1)*G,G=1;break;case 64:45===peek()&&(J+=delimit(next())),b=peek(),m=v=Utility_strlen(B=J+=function(t){for(;!token(peek());)next();return Utility_substr(O,t,I)}(I)),M++;break;case 45:45===L&&2==Utility_strlen(J)&&(N=0)}}return a}("",null,null,null,[""],(v=m=a||o?"".concat(a," ").concat(o," { ").concat(L," }"):L,S=C=1,w=Utility_strlen(O=v),I=0,m=[]),0,[0],m),O="",b);c.namespace&&(N=function Oe(t,n){return t.map(function(t){return"rule"===t.type&&(t.value="".concat(n," ").concat(t.value),t.value=t.value.replaceAll(",",",".concat(n," ")),t.props=t.props.map(function(t){return"".concat(n," ").concat(t)})),Array.isArray(t.children)&&"@keyframes"!==t.type&&(t.children=Oe(t.children,n)),t})}(N,c.namespace));var U=[];return serialize(N,(h=(g=_.concat(function(t){var n;!t.root&&(t=t.return)&&(n=t,U.push(n))})).length,function(t,n,i,r){for(var o="",a=0;a<h;a++)o+=g[a](t,n,i,r)||"";return o}
1)),U};return p.hash=g.length?g.reduce(function(t,n){return n.name||ce(15),k(t,n.name)},5381).toString():"",p}var eI=new eC,eA=De(),eE=r.createContext({shouldForwardProp:void 0,styleSheet:eI,stylis:eA}),eP=(eE.Consumer,r.createContext(void 0));function Ve(){return(0,r.useContext)(eE)}function Fe(t){var n=(0,r.useState)(t.stylisPlugins),i=n[0],o=n[1],c=Ve().styleSheet,d=(0,r.useMemo)(function(){var n=c;return t.sheet?n=t.sheet:t.target&&(n=n.reconstructWithOptions({target:t.target},!1)),t.disableCSSOMInjection&&(n=n.reconstructWithOptions({useCSSOMInjection:!1})),n},[t.disableCSSOMInjection,t.sheet,t.target,c]),g=(0,r.useMemo)(function(){return De({options:{namespace:t.namespace,prefix:t.enableVendorPrefixes},plugins:i})},[t.enableVendorPrefixes,t.namespace,i]);(0,r.useEffect)(function(){a()(i,t.stylisPlugins)||o(t.stylisPlugins)},[t.stylisPlugins]);var f=(0,r.useMemo)(function(){return{shouldForwardProp:t.shouldForwardProp,styleSheet:d,stylis:g}},[t.shouldForwardProp,d,g]);return r.createElement(eE.Provider,{value:f},r.createElement(eP.Provider,{value:g},t.children))}var eT=function(){function e(t,n){var i=this;this.inject=function(t,n){void 0===n&&(n=eA);var r=i.name+n.hash;t.hasNameForId(i.id,r)||t.insertRules(i.id,r,n(i.rules,r,"@keyframes"))},this.name=t,this.id="sc-keyframes-".concat(t),this.rules=n,se(this,function(){throw ce(12,String(i.name))})}return e.prototype.getName=function(t){return void 0===t&&(t=eA),this.name+t.hash},e}();function ze(t){for(var n="",i=0;i<t.length;i++){var r=t[i];if(1===i&&"-"===r&&"-"===t[0])return t;r>="A"&&r<="Z"?n+="-"+r.toLowerCase():n+=r}return n.startsWith("ms-")?"-"+n:n}var Be=function(t){return null==t||!1===t||""===t},Le=function(t){var n=[];for(var i in t){var r=t[i];t.hasOwnProperty(i)&&!Be(r)&&(Array.isArray(r)&&r.isCss||Q(r)?n.push("".concat(ze(i),":"),r,";"):oe(r)?n.push.apply(n,__spreadArray(__spreadArray(["".concat(i," {")],Le(r),!1),["}"],!1)):n.push("".concat(ze(i),": ").concat(null==r||"boolean"==typeof r||""===r?"":"number"!=typeof r||0===r||i in L.Z||i.startsWith("--")?String(r).trim():"".concat(r,"px"),";")))}return n};function Ge(t,n,i,r){return Be(t)?[]:ee(t)?[".".concat(t.styledComponentId)]:Q(t)?!Q(t)||t.prototype&&t.prototype.isReactComponent||!n?[t]:Ge(t(n),n,i,r):t instanceof eT?i?(t.inject(i,r),[t.getName(r)]):[t]:oe(t)?Le(t):Array.isArray(t)?Array.prototype.concat.apply(z,t.map(function(t){return Ge(t,n,i,r)})):[t.toString()]}function Ye(t){for(var n=0;n<t.length;n+=1){var i=t[n];if(Q(i)&&!ee(i))return!1}return!0}var eR=j("6.0.8"),eF=function(){function e(t,n,i){this.rules=t,this.staticRulesId="",this.isStatic=(void 0===i||i.isStatic)&&Ye(t),this.componentId=n,this.baseHash=k(eR,n),this.baseStyle=i,eC.registerId(n)}return e.prototype.generateAndInjectStyles=function(t,n,i){var r=this.baseStyle?this.baseStyle.generateAndInjectStyles(t,n,i):"";if(this.isStatic&&!i.hash){if(this.staticRulesId&&n.hasNameForId(this.componentId,this.staticRulesId))r=te(r,this.staticRulesId);else{var o=ne(Ge(this.rules,t,n,i)),a=R(k(this.baseHash,o)>>>0);if(!n.hasNameForId(this.componentId,a)){var c=i(o,".".concat(a),void 0,this.componentId);n.insertRules(this.componentId,a,c)}r=te(r,a),this.staticRulesId=a}}else{for(var d=k(this.baseHash,i.hash),g="",f=0;f<this.rules.length;f++){var h=this.rules[f];if("string"==typeof h)g+=h;else if(h){var _=ne(Ge(h,t,n,i));d=k(d,_+f),g+=_}}if(g){var m=R(d>>>0);n.hasNameForId(this.componentId,m)||n.insertRules(this.componentId,m,i(g,".".concat(m),void 0,this.componentId)),r=te(r,m)}}return r},e}(),eO=r.createContext(void 0);function Xe(t){var n=r.useContext(eO),i=(0,r.useMemo)(function(){return function(t,n){if(!t)throw ce(14);if(Q(t))return t(n);if(Array.isArray(t)||"object"!=typeof t)throw ce(8);return n?__assign(__assign({},n),t):t}(t.theme,n)},[t.theme,n]);return t.children?r.createElement(eO.Provider,{value:i},t.children):null}eO.Consumer;var eL={};function Qe(t,n,i){var o,a,c,d,g=ee(t),f=!F(t),h=n.attrs,_=void 0===h?z:h,m=n.componentId,v=void 0===m?(o=n.displayName,a=n.parentComponentId,eL[c="string"!=typeof o?"sc":A(o)]=(eL[c]||0)+1,d="".concat(c,"-").concat(x("6.0.8"+c+eL[c])),a?"".concat(a,"-").concat(d):d):m,y=(void 0===n.displayName&&(F(t)||t.displayName||t.name),n.displayName&&n.componentId?"".concat(A(n.displayName),"-").concat(n.componentId):n.componentId||v),b=g&&t.attrs?t.attrs.concat(_).filter(
1Boolean):_,S=n.shouldForwardProp;if(g&&t.shouldForwardProp){var C=t.shouldForwardProp;if(n.shouldForwardProp){var w=n.shouldForwardProp;S=function(t,n){return C(t,n)&&w(t,n)}}else S=C}var I=new eF(i,y,g?t.componentStyle:void 0),E=r.forwardRef(function(t,n){return function(t,n,i){var o,a=t.attrs,c=t.componentStyle,d=t.defaultProps,g=t.foldedComponentIds,f=t.styledComponentId,h=t.target,_=r.useContext(eO),m=Ve(),v=t.shouldForwardProp||m.shouldForwardProp,y=function(t,n,i){for(var r,o=__assign(__assign({},n),{className:void 0,theme:i}),a=0;a<t.length;a+=1){var c=Q(r=t[a])?r(o):r;for(var d in c)o[d]="className"===d?te(o[d],c[d]):"style"===d?__assign(__assign({},o[d]),c[d]):c[d]}return n.className&&(o.className=te(o.className,n.className)),o}(a,n,P(n,_,d)||q),b=y.as||h,S={};for(var C in y)void 0===y[C]||"$"===C[0]||"as"===C||"theme"===C||("forwardedAs"===C?S.as=y.forwardedAs:v&&!v(C,b)||(S[C]=y[C]));var w=(o=Ve(),c.generateAndInjectStyles(y,o.styleSheet,o.stylis)),I=te(g,f);return w&&(I+=" "+w),y.className&&(I+=" "+y.className),S[F(b)&&!$.has(b)?"class":"className"]=I,S.ref=i,(0,r.createElement)(b,S)}(E,t,n)});return E.attrs=b,E.componentStyle=I,E.shouldForwardProp=S,E.foldedComponentIds=g?te(t.foldedComponentIds,t.styledComponentId):"",E.styledComponentId=y,E.target=g?t.target:t,Object.defineProperty(E,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(n){this._foldedDefaultProps=g?function(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];for(var r=0;r<n.length;r++)(function re(t,n,i){if(void 0===i&&(i=!1),!i&&!oe(t)&&!Array.isArray(t))return n;if(Array.isArray(n))for(var r=0;r<n.length;r++)t[r]=re(t[r],n[r]);else if(oe(n))for(var r in n)t[r]=re(t[r],n[r]);return t})(t,n[r],!0);return t}({},t.defaultProps,n):n}}),se(E,function(){return".".concat(E.styledComponentId)}),f&&function K(t,n,i){if("string"!=typeof n){if(ep){var r=ed(n);r&&r!==ep&&K(t,r,i)}var o=ec(n);el&&(o=o.concat(el(n)));for(var a=W(t),c=W(n),d=0;d<o.length;++d){var g=o[d];if(!(g in er||i&&i[g]||c&&g in c||a&&g in a)){var f=eu(n,g);try{es(t,g,f)}catch(t){}}}}return t}(E,t,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),E}function et(t,n){for(var i=[t[0]],r=0,o=n.length;r<o;r+=1)i.push(n[r],t[r+1]);return i}var tt=function(t){return Object.assign(t,{isCss:!0})};function nt(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];return Q(t)||oe(t)?tt(Ge(et(z,__spreadArray([t],n,!0)))):0===n.length&&1===t.length&&"string"==typeof t[0]?Ge(t):tt(Ge(et(t,n)))}var rt=function(t){return function ot(t,n,i){if(void 0===i&&(i=q),!n)throw ce(1,n);var s=function(r){for(var o=[],a=1;a<arguments.length;a++)o[a-1]=arguments[a];return t(n,i,nt.apply(void 0,__spreadArray([r],o,!1)))};return s.attrs=function(r){return ot(t,n,__assign(__assign({},i),{attrs:Array.prototype.concat(i.attrs,r).filter(Boolean)}))},s.withConfig=function(r){return ot(t,n,__assign(__assign({},i),r))},s}(Qe,t)},eD=rt;$.forEach(function(t){eD[t]=rt(t)});var eN=function(){function e(t,n){this.rules=t,this.componentId=n,this.isStatic=Ye(t),eC.registerId(this.componentId+1)}return e.prototype.createStyles=function(t,n,i,r){var o=r(ne(Ge(this.rules,n,i,r)),""),a=this.componentId+t;i.insertRules(a,a,o)},e.prototype.removeStyles=function(t,n){n.clearRules(this.componentId+t)},e.prototype.renderStyles=function(t,n,i,r){t>2&&eC.registerId(this.componentId+t),this.removeStyles(t,i),this.createStyles(t,n,i,r)},e}();function at(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];var o=nt.apply(void 0,__spreadArray([t],n,!1)),a="sc-global-".concat(x(JSON.stringify(o))),c=new eN(o,a),l=function(t){var n=Ve(),i=r.useContext(eO),o=r.useRef(n.styleSheet.allocateGSInstance(a)).current;return n.styleSheet.server&&u(o,t,n.styleSheet,i,n.stylis),r.useLayoutEffect(function(){if(!n.styleSheet.server)return u(o,t,n.styleSheet,i,n.stylis),function(){return c.removeStyles(o,n.styleSheet)}},[o,t,n.styleSheet,i,n.stylis]),null};function u(t,n,i,r,o){if(c.isStatic)c.renderStyles(t,B,i,o);else{var a=__assign(__assign({},n),{theme:P(n,r,l.defaultProps)});c.renderStyles(t,a,i,o)}}return r.memo(l)}function ct(t){for(var n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];var r=ne(nt.apply(void 0,__spreadArray([t],n,!1))),o=x(r);return new eT(o,r)}!function(){function e(){var t=this;this._emitSheetCSS=function(){var n=t.instance.toString(),r=i.nc,o=ne([r&&'nonce="'.concat(r,'"'),"".concat(U,'="true"'),"".concat("data-styled-version",'="').concat("6.0.8",'"')].filter(
1Boolean)," ");return"<style ".concat(o,">").concat(n,"</style>")},this.getStyleTags=function(){if(t.sealed)throw ce(2);return t._emitSheetCSS()},this.getStyleElement=function(){if(t.sealed)throw ce(2);var n,o=((n={})[U]="",n["data-styled-version"]="6.0.8",n.dangerouslySetInnerHTML={__html:t.instance.toString()},n),a=i.nc;return a&&(o.nonce=a),[r.createElement("style",__assign({},o,{key:"sc-0-0"}))]},this.seal=function(){t.sealed=!0},this.instance=new eC({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(t){if(this.sealed)throw ce(2);return r.createElement(Fe,{sheet:this.instance},t)},e.prototype.interleaveWithNodeStream=function(t){throw ce(3)}}()},2729:function(t,n,i){"use strict";function _tagged_template_literal(t,n){return n||(n=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(n)}}))}i.d(n,{_:function(){return _tagged_template_literal}})}},function(t){var __webpack_exec__=function(n){return t(t.s=n)};t.O(0,[774,179],function(){return __webpack_exec__(6840),__webpack_exec__(8355)}),_N_E=t.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.