{"version":3,"file":"OrgChart.BSZ1H-Df.mjs","names":["useId","useMemo","useState","useRef","p"],"sources":["https:/framerusercontent.com/modules/GMjW4e83XXSMb1isubyx/mz5vdKc4dYCu1AB8vHTy/OrgChart.js"],"sourcesContent":["// [생성일] 2026-09-29\n// [경위] 달러벌기 01번 상품 — 조직도(Org Chart). \"Reports To\"에 상사 이름만 적으면 계층 트리·연결선을 자동 배치\n// [변경이력]\n//   - 2026-09-29: 최초 생성 (자동 트리 배치 + 접기/펼치기 + Scale to Fit + 세로/가로 + 직각/곡선 연결선 + 이니셜 아바타)\n//   - 2026-09-29: 캔버스 확인 후 수정 — 프레이머가 색을 rgb() 로 넘겨 이니셜이 안 보이던 문제, Overflow 에 확대(Fit)/축소만(Shrink) 분리, 카드 기본 폭 220\n//   - 2026-09-29: 무료 공개 전 홍보 링크 빈칸({{PROMO_URL}})을 링크 없는 제작자 문구로 교체 (도메인 확정 후 링크 복원)\n//   - 2026-10-09: 개정 심사 기준(p132)에 맞춰 속성 설명란 홍보 문구 제거 → \"Created by BrandingUp\"\n//   - 2026-10-09: 심사 선택 제안(접근성) 반영 — 접기 카드를 button + aria-expanded 로, 포커스 표시 추가\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useId,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// 설치 직후 보이는 샘플 조직 (사진 없이 이니셜 아바타)\nconst SAMPLE=[{name:\"Olivia Park\",role:\"CEO & Founder\",reportsTo:\"\",color:\"#2DE5A0\"},{name:\"Ethan Kim\",role:\"Head of Design\",reportsTo:\"Olivia Park\",color:\"#7C6CF2\"},{name:\"Sofia Lee\",role:\"Head of Engineering\",reportsTo:\"Olivia Park\",color:\"#3B82F6\"},{name:\"Noah Choi\",role:\"Head of Growth\",reportsTo:\"Olivia Park\",color:\"#F59E0B\"},{name:\"Mia Jung\",role:\"Product Designer\",reportsTo:\"Ethan Kim\",color:\"#7C6CF2\"},{name:\"Liam Han\",role:\"Brand Designer\",reportsTo:\"Ethan Kim\",color:\"#7C6CF2\"},{name:\"Ava Song\",role:\"Frontend Engineer\",reportsTo:\"Sofia Lee\",color:\"#3B82F6\"},{name:\"Lucas Yoon\",role:\"Backend Engineer\",reportsTo:\"Sofia Lee\",color:\"#3B82F6\"},{name:\"Emma Shin\",role:\"Marketing Lead\",reportsTo:\"Noah Choi\",color:\"#F59E0B\"}];// 이름에서 이니셜 2글자 추출 (사진이 없을 때 아바타에 표시)\nfunction initials(name=\"\"){const parts=name.trim().split(/\\s+/).filter(Boolean);if(parts.length===0)return\"?\";if(parts.length===1)return parts[0].slice(0,2).toUpperCase();return(parts[0][0]+parts[parts.length-1][0]).toUpperCase();}// 색상에 투명도를 입혀 rgba 로 변환 (아바타 배경 틴트용). 프레이머는 rgb()/rgba() 형식으로 넘기기도 함\nfunction withAlpha(color,alpha){const rgb=typeof color===\"string\"?color.match(/rgba?\\(\\s*([\\d.]+)[\\s,]+([\\d.]+)[\\s,]+([\\d.]+)/i):null;if(rgb)return\"rgba(\"+rgb[1]+\", \"+rgb[2]+\", \"+rgb[3]+\", \"+alpha+\")\";if(typeof color===\"string\"&&color.charAt(0)===\"#\"){let h=color.slice(1);if(h.length===3)h=h.split(\"\").map(c=>c+c).join(\"\");const r=parseInt(h.slice(0,2),16);const g=parseInt(h.slice(2,4),16);const b=parseInt(h.slice(4,6),16);return\"rgba(\"+r+\", \"+g+\", \"+b+\", \"+alpha+\")\";}return color;}// 평면 목록(People) → 트리 구조. \"Reports To\"가 비었거나 못 찾으면 최상위로 취급\nfunction buildForest(people){const nodes=people.map((p,i)=>({id:i,person:p,depth:0,children:[]}));const byName=new Map;nodes.forEach(n=>{const key=(n.person.name||\"\").trim().toLowerCase();if(key&&!byName.has(key))byName.set(key,n);});const roots=[];nodes.forEach(n=>{const bossKey=(n.person.reportsTo||\"\").trim().toLowerCase();const boss=bossKey?byName.get(bossKey):undefined;// 자기 자신을 상사로 적은 경우 등 순환은 최상위로 처리\nif(boss&&boss!==n&&!isAncestor(n,boss))boss.children.push(n);else roots.push(n);});// 깊이(단계) 계산\nconst setDepth=(n,d)=>{n.depth=d;n.children.forEach(c=>setDepth(c,d+1));};roots.forEach(r=>setDepth(r,0));return roots;}// a 가 b 의 조상인지 확인 (순환 연결 방지)\nfunction isAncestor(a,b){return a.children.some(c=>c===b||isAncestor(c,b));}// 하위 전체 인원 수 (접힌 카드의 \"+N\" 표시용)\nfunction countDescendants(n){return n.children.reduce((sum,c)=>sum+1+countDescendants(c),0);}/**\n * 조직도 (Org Chart) — 평면 인원 목록을 자동으로 계층 트리로 배치\n * 접기/펼치기, 컨테이너에 맞춰 자동 축소(Scale to Fit), 세로·가로 방향 지원\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 440\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function OrgChart(props){const{people,direction=\"vertical\",lineStyle=\"elbow\",expandedLevels=3,collapsible=true,overflow=\"shrink\",layout,appearance,nameFont,roleFont,style}=props;// 크기·간격 기본값\nconst cardW=layout?.cardWidth??220;const cardH=layout?.cardHeight??72;const siblingGap=layout?.siblingGap??24;const levelGap=layout?.levelGap??56;const avatar=layout?.avatarSize??40;// 색·모양 기본값\nconst theme={cardColor:appearance?.cardColor??\"#FFFFFF\",textColor:appearance?.textColor??\"#111114\",subColor:appearance?.subColor??\"#6B6B76\",borderColor:appearance?.borderColor??\"rgba(17, 17, 20, 0.08)\",lineColor:appearance?.lineColor??\"#C9CBD3\",lineWidth:appearance?.lineWidth??1.5,radius:appearance?.radius??14,shadow:appearance?.shadow??true};const list=people&&people.length?people:SAMPLE;const isStatic=useIsStaticRenderer()// 캔버스·정적 렌더에서는 애니메이션 정지\n;const horizontal=direction===\"horizontal\";const uid=\"oc\"+useId().replace(/[:]/g,\"\");// 트리 구조 (People 이 바뀔 때만 다시 계산)\nconst forest=useMemo(()=>buildForest(list),[list]);// 접힌 카드 id 목록. 처음엔 \"Expanded Levels\" 보다 깊은 단계를 접어 둔다\nconst initialCollapsed=useMemo(()=>{const set=new Set;const walk=n=>{if(n.children.length&&n.depth>=expandedLevels-1)set.add(n.id);n.children.forEach(walk);};forest.forEach(walk);return set;},[forest,expandedLevels]);const[collapsed,setCollapsed]=useState(initialCollapsed);useEffect(()=>{startTransition(()=>setCollapsed(initialCollapsed));},[initialCollapsed]);// 카드 클릭 시 접기/펼치기 토글\nconst toggle=id=>{if(!collapsible)return;startTransition(()=>{setCollapsed(prev=>{const next=new Set(prev);if(next.has(id))next.delete(id);else next.add(id);return next;});});};// ── 배치 계산: 각 서브트리의 폭(가로 모드는 높이)을 구한 뒤 가운데 정렬 ──\nconst breadthOf=horizontal?cardH:cardW// 형제끼리 나란히 놓이는 방향의 카드 크기\n;const depthStep=(horizontal?cardW:cardH)+levelGap// 단계 사이 거리\n;const{placed,edges,totalW,totalH}=useMemo(()=>{const isOpen=n=>!(collapsible&&collapsed.has(n.id));const extent=new Map;// 서브트리가 차지하는 폭(형제 방향) 계산\nconst measure=n=>{const kids=isOpen(n)?n.children:[];if(!kids.length){extent.set(n.id,breadthOf);return breadthOf;}const sum=kids.reduce((s,c)=>s+measure(c),0)+siblingGap*(kids.length-1);const w=Math.max(breadthOf,sum);extent.set(n.id,w);return w;};const out=[];const lines=[];// 위치 지정: offset 은 서브트리 시작점\nconst place=(n,offset)=>{const w=extent.get(n.id)||breadthOf;const along=offset+(w-breadthOf)/2;const across=n.depth*depthStep;const p={node:n,x:horizontal?across:along,y:horizontal?along:across,hiddenCount:isOpen(n)?0:countDescendants(n)};out.push(p);if(isOpen(n)&&n.children.length){const kidsTotal=n.children.reduce((s,c)=>s+(extent.get(c.id)||breadthOf),0)+siblingGap*(n.children.length-1);let cursor=offset+(w-kidsTotal)/2;n.children.forEach(c=>{const child=place(c,cursor);lines.push({from:p,to:child});cursor+=(extent.get(c.id)||breadthOf)+siblingGap;});}return p;};let cursor=0;forest.forEach((r,i)=>{measure(r);place(r,cursor);cursor+=(extent.get(r.id)||breadthOf)+(i<forest.length-1?siblingGap*2:0);});const maxX=out.reduce((m,p)=>Math.max(m,p.x+cardW),0);const maxY=out.reduce((m,p)=>Math.max(m,p.y+cardH),0);return{placed:out,edges:lines,totalW:maxX,totalH:maxY+16};},[forest,collapsed,collapsible,horizontal,cardW,cardH,siblingGap,depthStep,breadthOf]);// ── Scale to Fit: 컨테이너 크기를 재서 조직도를 축소 (브라우저에서만) ──\nconst boxRef=useRef(null);const[box,setBox]=useState({w:0,h:0});useEffect(()=>{const el=boxRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(entries=>{const r=entries[0].contentRect;startTransition(()=>setBox({w:r.width,h:r.height}));});ro.observe(el);return()=>ro.disconnect();},[]);const pad=24;// fit = 확대·축소 모두, shrink = 넘칠 때만 축소, scroll = 원래 크기 + 스크롤\nconst fitScale=box.w>0&&box.h>0?Math.min((box.w-pad*2)/Math.max(1,totalW),(box.h-pad*2)/Math.max(1,totalH)):1;const scale=overflow===\"fit\"?Math.max(.05,fitScale):overflow===\"shrink\"?Math.max(.05,Math.min(1,fitScale)):1;// 연결선 경로 (부모 카드 → 자식 카드)\nconst pathFor=(a,b)=>{if(horizontal){const x1=a.x+cardW;const y1=a.y+cardH/2;const x2=b.x;const y2=b.y+cardH/2;const xm=x1+levelGap/2;return lineStyle===\"curved\"?`M ${x1} ${y1} C ${xm} ${y1}, ${xm} ${y2}, ${x2} ${y2}`:`M ${x1} ${y1} H ${xm} V ${y2} H ${x2}`;}const x1=a.x+cardW/2;const y1=a.y+cardH;const x2=b.x+cardW/2;const y2=b.y;const ym=y1+levelGap/2;return lineStyle===\"curved\"?`M ${x1} ${y1} C ${x1} ${ym}, ${x2} ${ym}, ${x2} ${y2}`:`M ${x1} ${y1} V ${ym} H ${x2} V ${y2}`;};// 카드 등장·이동 애니메이션 (캔버스에서는 끔)\nconst css=isStatic?\"\":`\n.${uid}-card { transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); animation: ${uid}-in 0.4s ease both; }\n.${uid}-card:hover { box-shadow: 0 10px 28px -12px rgba(0,0,0,0.25) !important; }\n.${uid}-line { animation: ${uid}-fade 0.5s ease both; }\n@keyframes ${uid}-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes ${uid}-fade { from { opacity: 0; } to { opacity: 1; } }\n`;return /*#__PURE__*/_jsxs(\"div\",{ref:boxRef,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:overflow===\"scroll\"?\"auto\":\"hidden\",display:\"flex\",alignItems:overflow===\"scroll\"?\"flex-start\":\"center\",justifyContent:overflow===\"scroll\"?\"flex-start\":\"center\",boxSizing:\"border-box\"},children:[css&&/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsx(\"style\",{children:`.${uid}-btn:focus-visible { outline: 2px solid var(--oc-accent, #2DE5A0) !important; outline-offset: 2px; }`}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",flexShrink:0,width:totalW*scale,height:totalH*scale,margin:overflow===\"scroll\"?pad:0},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,top:0,width:totalW,height:totalH,transform:`scale(${scale})`,transformOrigin:\"0 0\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:totalW,height:totalH,style:{position:\"absolute\",left:0,top:0,overflow:\"visible\",pointerEvents:\"none\"},children:edges.map(e=>/*#__PURE__*/_jsx(\"path\",{className:uid+\"-line\",d:pathFor(e.from,e.to),fill:\"none\",stroke:theme.lineColor,strokeWidth:theme.lineWidth,strokeLinecap:\"round\",strokeLinejoin:\"round\"},e.from.node.id+\"-\"+e.to.node.id+\"-\"+direction+lineStyle))}),placed.map(p=>{const person=p.node.person;const accent=person.color||\"#2DE5A0\";const hasKids=p.node.children.length>0;const isCollapsed=p.hiddenCount>0;return /*#__PURE__*/_jsxs(\"div\",{className:uid+\"-card\",style:{position:\"absolute\",left:0,top:0,transform:`translate(${p.x}px, ${p.y}px)`,width:cardW,height:cardH,boxSizing:\"border-box\",display:\"flex\",alignItems:\"center\",gap:12,padding:\"0 14px\",background:theme.cardColor,border:`1px solid ${theme.borderColor}`,borderRadius:theme.radius,boxShadow:theme.shadow?\"0 6px 18px -10px rgba(0,0,0,0.22)\":\"none\",cursor:hasKids&&collapsible?\"pointer\":\"default\",userSelect:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:horizontal?0:14,right:horizontal?\"auto\":14,top:horizontal?14:0,bottom:horizontal?14:\"auto\",width:horizontal?3:\"auto\",height:horizontal?\"auto\":3,background:accent,borderRadius:3}}),person.photo?.src?/*#__PURE__*/_jsx(\"img\",{src:person.photo.src,srcSet:person.photo.srcSet,alt:person.photo.alt||person.name,style:{width:avatar,height:avatar,borderRadius:\"50%\",objectFit:\"cover\",flexShrink:0,display:\"block\"}}):/*#__PURE__*/_jsx(\"div\",{style:{width:avatar,height:avatar,borderRadius:\"50%\",flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:withAlpha(accent,.16),color:accent,fontSize:Math.round(avatar*.36),fontWeight:700,fontFamily:\"Inter, sans-serif\"},children:initials(person.name)}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:2,minWidth:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{...nameFont,color:theme.textColor,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"},children:person.name}),/*#__PURE__*/_jsx(\"span\",{style:{...roleFont,color:theme.subColor,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"},children:person.role})]}),hasKids&&collapsible&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:horizontal?\"auto\":\"50%\",right:horizontal?-11:\"auto\",top:horizontal?\"50%\":\"auto\",bottom:horizontal?\"auto\":-11,transform:horizontal?\"translateY(-50%)\":\"translateX(-50%)\",minWidth:22,height:22,padding:\"0 6px\",boxSizing:\"border-box\",borderRadius:11,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:isCollapsed?accent:theme.cardColor,color:isCollapsed?\"#FFFFFF\":theme.subColor,border:`1px solid ${isCollapsed?accent:theme.borderColor}`,fontSize:11,fontWeight:700,fontFamily:\"Inter, sans-serif\",lineHeight:1},children:isCollapsed?\"+\"+p.hiddenCount:\"−\"}),hasKids&&collapsible&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:uid+\"-btn\",\"aria-expanded\":!isCollapsed,\"aria-label\":(isCollapsed?\"Expand \":\"Collapse \")+(person.name||\"team\"),onClick:()=>toggle(p.node.id),style:{position:\"absolute\",left:0,top:0,width:\"100%\",height:\"100%\",appearance:\"none\",WebkitAppearance:\"none\",font:\"inherit\",color:\"inherit\",textAlign:\"left\",margin:0,padding:0,background:\"transparent\",border:\"none\",borderRadius:theme.radius,cursor:\"pointer\",outline:\"none\",\"--oc-accent\":accent}})]},p.node.id);})]})})]});}OrgChart.displayName=\"Org Chart\";addPropertyControls(OrgChart,{people:{type:ControlType.Array,title:\"People\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Full Name\"},role:{type:ControlType.String,title:\"Role\",defaultValue:\"Role\"},photo:{type:ControlType.ResponsiveImage,title:\"Photo\"},reportsTo:{type:ControlType.String,title:\"Reports To\",defaultValue:\"\",placeholder:\"Manager's name\",description:\"Type the exact name of this person's manager. Leave empty for the top.\"},color:{type:ControlType.Color,title:\"Team Color\",defaultValue:\"#2DE5A0\"}}},defaultValue:SAMPLE},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],defaultValue:\"vertical\",displaySegmentedControl:true},lineStyle:{type:ControlType.Enum,title:\"Lines\",options:[\"elbow\",\"curved\"],optionTitles:[\"Elbow\",\"Curved\"],defaultValue:\"elbow\",displaySegmentedControl:true},expandedLevels:{type:ControlType.Number,title:\"Expanded Levels\",defaultValue:3,min:1,max:8,step:1,displayStepper:true},collapsible:{type:ControlType.Boolean,title:\"Collapsible\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},overflow:{type:ControlType.Enum,title:\"Overflow\",options:[\"fit\",\"shrink\",\"scroll\"],optionTitles:[\"Fit\",\"Shrink\",\"Scroll\"],defaultValue:\"shrink\",description:\"Fit: scale up or down to fill. Shrink: only scale down when it overflows. Scroll: keep size and scroll.\",displaySegmentedControl:true},layout:{type:ControlType.Object,title:\"Layout\",controls:{cardWidth:{type:ControlType.Number,title:\"Card Width\",defaultValue:220,min:120,max:400,step:4,unit:\"px\"},cardHeight:{type:ControlType.Number,title:\"Card Height\",defaultValue:72,min:48,max:160,step:2,unit:\"px\"},siblingGap:{type:ControlType.Number,title:\"Sibling Gap\",defaultValue:24,min:0,max:120,step:2,unit:\"px\"},levelGap:{type:ControlType.Number,title:\"Level Gap\",defaultValue:56,min:16,max:200,step:2,unit:\"px\"},avatarSize:{type:ControlType.Number,title:\"Avatar\",defaultValue:40,min:0,max:96,step:2,unit:\"px\"}}},appearance:{type:ControlType.Object,title:\"Style\",icon:\"color\",controls:{cardColor:{type:ControlType.Color,title:\"Card\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111114\"},subColor:{type:ControlType.Color,title:\"Sub Text\",defaultValue:\"#6B6B76\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(17, 17, 20, 0.08)\"},lineColor:{type:ControlType.Color,title:\"Line\",defaultValue:\"#C9CBD3\"},lineWidth:{type:ControlType.Number,title:\"Line Width\",defaultValue:1.5,min:.5,max:6,step:.5,unit:\"px\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:14,min:0,max:40,step:1,unit:\"px\"},shadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"}}},nameFont:{type:ControlType.Font,title:\"Name Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Semibold\",lineHeight:\"1.3em\",letterSpacing:\"-0.01em\"}},roleFont:{type:ControlType.Font,title:\"Role Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"13px\",variant:\"Regular\",lineHeight:\"1.3em\"},description:\"Created by BrandingUp\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OrgChart\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 1200\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"440\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OrgChart.map"],"mappings":"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"}