1"use strict";(self.webpackChunkswissborg_website_main=self.webpackChunkswissborg_website_main||[]).push([[6492],{16492:function(e,a,t){t.r(a),t.d(a,{IconGenSlice:function(){return K}});var n=t(30758),o=t(81363),l=t(55005),r=t(98781);const i=o.default.div.withConfig({displayName:"actionButtons__SContainer",componentId:"sc-1mx3l2k-0"})(["display:flex;flex-direction:column;gap:",";@media ","{flex-direction:row;align-items:center;gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),s=o.default.div.withConfig({displayName:"actionButtons__SButtonGroup",componentId:"sc-1mx3l2k-1"})(["display:flex;flex-direction:column;gap:",";@media ","{flex-direction:row;gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.mobile.spacerXS)),c=({className:e,textPrimary:a,textSecondary:t,canDownload:o=!1,onDownload:l,onReset:c})=>n.createElement(i,{className:e},n.createElement(s,null,n.createElement(r.$,{variant:"action-primary-large",disabled:!o,onClick:l},a),n.createElement(r.$,{variant:"action-secondary-large",onClick:c},t)));var d=t(1506);const m={WIDTH:1080,HEIGHT:1080,CIRCLE_DIAMETER:760,CIRCLE_CX:540,CIRCLE_CY:480},p=async e=>{try{const a=await fetch(e);if(!a.ok)throw new Error(`Failed to fetch image: ${a.statusText}`);const t=await a.blob();return new Promise(((e,a)=>{const n=new FileReader;n.onload=()=>e(n.result),n.onerror=()=>a(new Error("Failed to convert blob to data URL")),n.readAsDataURL(t)}))}catch(a){throw console.error("Failed to convert image URL to data URL:",e,a),a}},u=e=>new Promise(((a,t)=>{const n=new Image;n.onload=()=>a(n),n.onerror=e=>{console.error("Failed to load image from data URL:",e),t(e)},n.src=e})),g=o.default.div.withConfig({displayName:"canvasPreview__SContainer",componentId:"sc-1n4le6d-0"})(["display:flex;flex-direction:column;align-items:center;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),h=o.default.div.withConfig({displayName:"canvasPreview__SStage",componentId:"sc-1n4le6d-1"})(["border:1px solid ",";border-radius:0.5rem;overflow:hidden;background-color:",";box-shadow:",";"],(({theme:e})=>e.neutral.base),(({theme:e})=>e.components.card.background),(({theme:e})=>e.components.card.shadow)),f=o.default.canvas.withConfig({displayName:"canvasPreview__SCanvas",componentId:"sc-1n4le6d-2"})(["display:block;max-width:100%;height:auto;"]),b=(0,n.forwardRef)((({className:e,defaultRankFrame:a},t)=>{const o=(0,n.useRef)(null),l=(0,n.useCallback)((()=>{const e=o.current;if(!e)return null;const a=e.getContext("2d");if(!a)return null;const{WIDTH:t,HEIGHT:n}=m;return a.clearRect(0,0,t,n),{ctx:a,canvas:e,WIDTH:t,HEIGHT:n}}),[]),r=(0,n.useCallback)((async(e,a)=>{const t=l();if(!t)return;const{ctx:n,WIDTH:o,HEIGHT:r}=t;try{const a=await u(e);n.drawImage(a,0,0,o,r)}catch(i){console.error(a,i)}}),[l]),i=(0,n.useCallback)((async()=>{try{const e=(0,d.d)(a.image).url(),t=await p(e);await r(t,"Failed to load default rank frame:")}catch(e){console.error("Failed to process default rank frame:",e)}}),[a.image,r]),s=(0,n.useCallback)((async e=>{await r(e,"Failed to load overlay image:")}),[r]),c=(0,n.useCallback)((async(e,a,t,n)=>{const o=l();if(!o)return;const{ctx:r,WIDTH:i,HEIGHT:s}=o,{CIRCLE_DIAMETER:c,CIRCLE_CX:d,CIRCLE_CY:p}=m;try{const o=await u(e),{x:l,y:m,scaledW:g,scaledH:h}=((e,a,t,n,o)=>{const l=e/100*(a/Math.max(t.w,t.h)),r=t.w*l,i=t.h*l;return{x:n-r/2,y:o-i/2,scaledW:r,scaledH:i}})(t,c,n,d,p);((e,a,t,n)=>{e.save(),e.beginPath(),e.arc(a,t,n,0,2*Math.PI),e.clip()})(r,d,p,c/2),r.drawImage(o,l,m,g,h),r.restore();const f=await u(a);r.drawImage(f,0,0,i,s)}catch(g){console.error("Failed to load images for composite:",g)}}),[l]);return(0,n.useImperativeHandle)(t,(()=>({drawPlaceholder:i,drawOverlay:s,drawComposite:c,getCanvas:()=>o.current})),[s,i,c]),(0,n.useEffect)((()=>{i()}),[i]),n.createElement(g,{className:e},n.createElement(h,null,n.createElement(f,{ref:o,width:m.WIDTH,height:m.HEIGHT,"aria-label":"Preview"})))}));
1b.displayName="CanvasPreview";var w=t(58730);const v=o.default.div.withConfig({displayName:"imageUpload__SContainer",componentId:"sc-1nrl4nd-0"})(["display:flex;flex-direction:column;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),k=o.default.div.withConfig({displayName:"imageUpload__SLabel",componentId:"sc-1nrl4nd-1"})([""," color:",";"],w.tQ,(({theme:e})=>e.components.text)),y=o.default.div.withConfig({displayName:"imageUpload__SUploadArea",componentId:"sc-1nrl4nd-2"})(["display:flex;flex-direction:column;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),C=o.default.input.withConfig({displayName:"imageUpload__SFileInput",componentId:"sc-1nrl4nd-3"})(["display:none;"]),S=o.default.div.withConfig({displayName:"imageUpload__SDropzone",componentId:"sc-1nrl4nd-4"})(["border:2px dashed ",";border-radius:0.5rem;padding:",";text-align:center;cursor:pointer;transition:all 0.2s ease;background-color:",";&:hover{border-color:",";background-color:",";}@media ","{padding:",";}"],(({theme:e,$active:a})=>a?e.primary.base:e.neutral.base),(({theme:e})=>e.spacing.mobile.spacerS),(({theme:e,$active:a})=>a?e.alphas.primary10:"transparent"),(({theme:e})=>e.primary.base),(({theme:e})=>e.alphas.primary10),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerS)),I=o.default.div.withConfig({displayName:"imageUpload__SNote",componentId:"sc-1nrl4nd-5"})([""," color:",";text-align:center;font-style:italic;"],w.c_,(({theme:e})=>e.neutral.base)),_=({className:e,title:a,description:t,note:o,onImageUpload:l})=>{const r=(0,n.useRef)(null),{0:i,1:s}=(0,n.useState)(!1),c=(0,n.useCallback)((e=>{if(!e.type.startsWith("image/"))return void console.error("Please select an image file");const a=new FileReader;a.onload=e=>{var a;const t=new Image;t.onload=()=>{var a;null==l||l(null===(a=e.target)||void 0===a?void 0:a.result,{width:t.width,height:t.height})},t.src=null===(a=e.target)||void 0===a?void 0:a.result},a.readAsDataURL(e)}),[l]);return n.createElement(v,{className:e},n.createElement(k,null,a),n.createElement(y,null,n.createElement(C,{ref:r,type:"file",accept:"image/*",onChange:e=>{var a;const t=null===(a=e.target.files)||void 0===a?void 0:a[0];t&&c(t)}}),n.createElement(S,{$active:i,onClick:()=>{var e;null===(e=r.current)||void 0===e||e.click()},onDragOver:e=>{e.preventDefault(),s(!0)},onDragLeave:e=>{e.preventDefault(),s(!1)},onDrop:e=>{var a;e.preventDefault(),s(!1);const t=null===(a=e.dataTransfer.files)||void 0===a?void 0:a[0];t&&c(t)}},t),n.createElement(I,null,o)))};var E=t(76742),x=t(20250);const N=o.default.div.withConfig({displayName:"rankSelector__SContainer",componentId:"sc-1bv4ec-0"})(["display:flex;flex-direction:column;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),R=o.default.div.withConfig({displayName:"rankSelector__SLabel",componentId:"sc-1bv4ec-1"})(["",""],w.tQ),D=o.default.div.withConfig({displayName:"rankSelector__SChipsContainer",componentId:"sc-1bv4ec-2"})(["display:flex;flex-wrap:wrap;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),T=({title:e,className:a,selectedRank:t="PLATINUM",onRankChange:o,ranks:l})=>{const{0:r,1:i}=(0,n.useState)(t);(0,n.useEffect)((()=>{i(t)}),[t]);return n.createElement(N,{className:a},n.createElement(R,null,e),n.createElement(D,null,l.map((e=>n.createElement(E.K,{key:e,active:r===e,size:"small",onClick:()=>{return i(a=e),void(null==o||o(a));var a}},x.G2[e])))))};var L=t(31936);const U=o.default.div.withConfig({displayName:"zoomControl__SContainer",componentId:"sc-1pi3k9g-0"})(["display:flex;flex-direction:column;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),X=o.default.div.withConfig({displayName:"zoomControl__SLabel",componentId:"sc-1pi3k9g-1"})([""," color:",";"],w.tQ,(({theme:e})=>e.components.text)),H=o.default.div.withConfig({displayName:"zoomControl__SSliderContainer",componentId:"sc-1pi3k9g-2"})(["display:flex;align-items:center;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),P=o.default.div.withConfig({displayName:"zoomControl__SSliderWrapper",componentId:"sc-1pi3k9g-3"})(["flex:1;"]),F=o.default.div.withConfig({displayName:"zoomControl__SZoomValue",componentId:"sc-1pi3k9g-4"})([""," color:",";min-width:4.4rem;text-align:right;"],w.c_,(({theme:e})=>e.neutral.base)),z=o.default.div.withConfig({displayName:"zoomControl__SNote",componentId:"sc-1pi3k9g-5"})([""," color:",";font-style:italic;"],w.c_,(({theme:e})=>e.neutral.base)),$=({className:e,title:a,note:t,zoom:o=100,onZoomChange:l})=>{const{0:r,1:i}
1=(0,n.useState)(o);return n.createElement(U,{className:e},n.createElement(X,null,a),n.createElement(H,null,n.createElement(P,null,n.createElement(L.g1,{value:[r],onValueChange:e=>{const a=e[0];i(a),null==l||l(a)},min:50,max:200,step:1,"aria-label":"Zoom level"},n.createElement(L.hB,null,n.createElement(L.tO,null)),n.createElement(L.OQ,null))),n.createElement(F,null,r,"%")),n.createElement(z,null,t))},j=e=>{const a=(0,n.useMemo)((()=>e.reduce(((e,a)=>(e[a.rankId]=(0,d.d)(a.image).url(),e)),{})),[e]),t=(0,n.useRef)(null),{0:o,1:l}=(0,n.useState)({}),{0:r,1:i}=(0,n.useState)(!0),{0:s,1:c}=(0,n.useState)("PLATINUM"),{0:m,1:u}=(0,n.useState)(100),{0:g,1:h}=(0,n.useState)(null),{0:f,1:b}=(0,n.useState)({width:0,height:0}),{0:w,1:v}=(0,n.useState)(!1);(0,n.useEffect)((()=>{const e=async()=>{i(!0);try{const e=await(async e=>{const a=Object.entries(e),t=await Promise.allSettled(a.map((async([e,a])=>[e,await p(a)]))),n={};return t.forEach(((e,t)=>{const[o]=a[t];if("fulfilled"===e.status){const[,a]=e.value;n[o]=a}else console.error(`Failed to preload image for ${o}:`,e.reason)})),n})(a);l(e)}catch(e){console.error("Failed to preload rank frame images:",e)}finally{i(!1)}};Object.keys(a).length>0&&e()}),[a]),(0,n.useEffect)((()=>{if(!t.current||r||0===Object.keys(o).length)return;if(!g){const e=o[s];return e&&t.current.drawOverlay(e),void v(!1)}const e=o[s];e&&(t.current.drawComposite(g,e,m,{w:f.width,h:f.height}),v(!0))}),[s,m,g,f,o,r]);return{canvasRef:t,selectedRank:s,zoom:m,userImageDataUrl:g,userImageMeta:f,canDownload:w,isLoadingImages:r,handleRankChange:e=>{c(e)},handleImageUpload:(e,a)=>{h(e),b(a)},handleZoomChange:e=>{u(e)},handleDownload:()=>{var e;const a=null===(e=t.current)||void 0===e?void 0:e.getCanvas();if(a)try{const e=document.createElement("a");e.download=`swissborg-${s.toLowerCase()}-profile.png`,e.href=a.toDataURL("image/png"),e.click()}catch(n){console.error("Failed to download canvas:",n)}},handleReset:()=>{h(null),b({width:0,height:0}),u(100),v(!1),c("PLATINUM")}}},G=o.default.div.withConfig({displayName:"rankGenerator__SContainer",componentId:"sc-91jtye-0"})(["max-width:80rem;margin:0 auto;padding:2rem;display:flex;flex-direction:column;gap:2rem;@media ","{padding:4rem 2rem;}"],(({theme:e})=>e.breakpoints.tablet)),O=o.default.div.withConfig({displayName:"rankGenerator__SContent",componentId:"sc-91jtye-1"})(["display:grid;gap:2rem;@media ","{grid-template-columns:1fr 1fr;gap:4rem;}"],(({theme:e})=>e.breakpoints.tablet)),W=o.default.div.withConfig({displayName:"rankGenerator__SControl
1s",componentId:"sc-91jtye-2"})(["display:flex;flex-direction:column;gap:2rem;"]),M=o.default.div.withConfig({displayName:"rankGenerator__SPreviewSection",componentId:"sc-91jtye-3"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:",";@media ","{gap:",";}"],(({theme:e})=>e.spacing.mobile.spacerS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerS)),A=o.default.div.withConfig({displayName:"rankGenerator__SLoadingState",componentId:"sc-91jtye-4"})(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:",";gap:",";@media ","{gap:",";}"],(({theme:e})=>e.neutral.gray),(({theme:e})=>e.spacing.mobile.spacerXS),(({theme:e})=>e.breakpoints.tablet),(({theme:e})=>e.spacing.desktop.spacerXS)),B=o.default.div.withConfig({displayName:"rankGenerator__SSpinner",componentId:"sc-91jtye-5"})(["width:2rem;height:2rem;border:2px solid ",";border-top:2px solid ",";border-radius:50%;animation:spin 1s linear infinite;@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}"],(({theme:e})=>e.neutral.light.base),(({theme:e})=>e.primary.base)),Z=({className:e,rankSelectTitle:a,imageUpload:t,zoomText:o,cta:l,rankFrames:r})=>{const{canvasRef:i,selectedRank:s,zoom:d,canDownload:m,isLoadingImages:p,handleRankChange:u,handleImageUpload:g,handleZoomChange:h,handleDownload:f,handleReset:w}=j(r),v=r.find((e=>"PLATINUM"===e.rankId));return p?n.createElement(G,{className:e},n.createElement(A,null,n.createElement(B,null),n.createElement("p",null,"Loading rank frames..."))):n.createElement(G,{className:e},n.createElement(O,null,n.createElement(W,null,n.createElement(T,{title:a,selectedRank:s,onRankChange:u,ranks:r.map((e=>e.rankId))}),n.createElement(_,Object.assign({onImageUpload:g},t)),n.createElement($,Object.assign({zoom:d,onZoomChange:h},o)),n.createElement(c,Object.assign({canDownload:m,onDownload:f,onReset:w},l))),v&&n.createElement(M,null,n.createElement(b,{ref:i,defaultRankFrame:v}))))},Q=(0,o.default)(l.JI).withConfig({displayName:"iconGenSlice__SContainer",componentId:"sc-wah2y3-0"})([""]),K=({containerProps:{align:e,maxWidth:a},sectionProps:t,rankSelectTitle:o,imageUpload:r,zoomText:i,cta:s,rankFrames:c})=>n.createElement(l.M3,t,n.createElement(Q,{$maxWidth:a,$align:e},n.createElement(Z,{rankSelectTitle:o,imageUpload:r,zoomText:i,cta:s,rankFrames:c})))},76742:function(e,a,t){t.d(a,{K:function(){return i}});var n=t(30758),o=t(81363),l=t(58730);const r=o.default.button.withConfig({displayName:"tabButton__STabButton",componentId:"sc-kdetjj-0"})([""," display:flex;padding:",";color:",";border:1px solid ",";border-radius:8px;cursor:pointer;background-color:",";&:hover{border-color:",";}&:disabled{opacity:0.5;cursor:not-allowed;}"],l.c_,(({$size:e})=>"small"===e?"0.4rem 0.8rem":"0.8rem 1.6rem"),(({$active:e,theme:a})=>e?a.components.text:a.neutral.base),(({$active:e,theme:a})=>e?a.primary.base:a.neutral.base),(({$active:e,theme:a})=>e?a.alphas.primary20:"transparent"),(({theme:e})=>e.primary.base)),i=({active:e=!1,size:a="small",children:t,className:o,onClick:l,...i})=>n.createElement(r,Object.assign({$active:e,$size:a,className:o,onClick:l},i),t)},98781:function(e,a,t){t.d(a,{$:function(){return n.$}});var n=t(63799)}}]);
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.