feat(org-chart): add core cards and fixed-layout integration

This commit is contained in:
shkim4 committed 2026-10-12 17:58:30 +09:00
1 parent d18e3c3380
commit 61c6f8d1f1
161 files changed
+13044 -1

No files matched your search

@@ -0,0 +1,21 @@
# 관계사 로고 출처
사용자가 공식 접근 가능한 Figma Asset 재사용을 명시적으로 요청하여, 2026-10-12에 아래 Figma 파일의 관계사별 집계 Footer에서 가져온 PNG를 보존했습니다. 원본 로고를 그대로 사용하며 OrgChart 공통 카드·Footer는 같은 로컬 Asset을 참조합니다.
- Figma file key: `Plr6RRLi5XnLIn60x9aG1s`
- Footer 원본: [관계사별 집계 Footer, node 22:179](https://www.figma.com/design/Plr6RRLi5XnLIn60x9aG1s/?node-id=22-179)
- 확인일: `2026-10-12` (KST)
- 사용 범위: OrgChart 내부 관계사 표시. 실제 인물 프로필 사진은 다운로드하지 않았습니다.
- 배포 경로: 로컬 PNG를 `?inline` import하여 번들에 포함합니다. Figma 임시 원격 다운로드 URL은 배포하지 않습니다.
- 로고 필드·Employee JSON 데이터 계약은 추가하지 않습니다. 기존 관계사 ID와 내부 Asset 매핑을 사용하며, 매핑이 없는 ID나 이미지 오류는 관계사명 모노그램으로 대체합니다.
- 접근 가능한 원본 Footer의 시각적 확인 결과를 근거로 합니다. 통합 카드·Footer의 최종 브라우저 검증은 별도 통합 검증 기록을 따릅니다.
원본 Node 및 저장 파일 SHA-256 (모두 0바이트 초과 확인):
- `hanmac.png` — node `22:181`; 11,828 bytes; `db154af30d5ef875d097006c92dc5bdd70962ed2538cfdd385c87b39cecb3cfa`
- `saman.png` — node `22:187`; 20,584 bytes; `5167420984ef7b0603f8203f35a99ffcfcbc7981186beb785ce38a1665fda60c`
- `jangheon.png` — node `22:193`; 56,063 bytes; `6b4047ae6ecc451121470885d1f382b3f499c838968a02120d6d3dd643503e63`
- `jangheon-industry.png` — node `22:199`; 16,683 bytes; `6d12832bfe067414889d6db2ec4ee4910f5d2e61dbd86b9edd1516ca2a51733d`
- `ptc.png` — node `22:205`; 7,613 bytes; `12c22132e83be1f4feb23e5f761b73a85366ae399387cd6b40782d501dd7cadb`
- `halla.png` — node `22:211`; 9,606 bytes; `f92408ae7f129e3427c1456de0d9da855bbd652e72b97728e3cdc6b11fa6d12b`
- `baron.png` — node `22:217`; 13,175 bytes; `089014f781d6b741397388eb87c70b9817e848eb5960fc5b7933033b724ca351`
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,13 @@
# OrgChart 1단계 카드 자산
- `대표자.svg`: 사용자가 본문으로 전달한 SVG. 최상단 독립 `topLeader` 전용, 146×74. 부서 자산 매핑에 넣지 않는다.
- `사업관리팀.svg`, `사업관리팀-sm.svg`: 사용자 PNG에서 색상·알파·내측 그라데이션 방향을 추출한 벡터. 조직장 146×68 / 일반 직원 108×52. PNG를 SVG에 삽입하지 않는다.
- 경영기획팀 / 디자인기획팀 / 솔루션통합팀 / 인재성장팀 / 통합시스템 디비전의 큰·작은 SVG 10개: `D:\디자인시스템\카드 이미지`에서 원본 바이트를 그대로 복사했다. SHA-256 일치는 `test-results/org-chart-card-design/browser.json`에서 확인한다.
부서 매핑은 `src/core/department-card-assets.ts`, 대표자 전용 매핑은 `src/core/representative-card-asset.ts`에 있다. `solution-sales`에 솔루션통합팀 자산을 쓰는 것은 이번 작업에서 사용자가 명시 승인했다. 하위 조직은 실제 `parentId`로 상위 부서 자산을 찾으며 데이터 JSON을 수정하지 않는다.
사업관리 PNG 원본은 확장자가 없는 `D:\디자인시스템\카드 이미지\사업관리`(PNG, 408×191)다. 추출 색은 외곽 `#DEE6F0 → #A8BBD1 → #577BA5`(마지막 opacity 0.6), 내측 `#FFFFFF → #E0E6F4`다. 경영기획과 색상 끝점은 같지만 사업관리 PNG의 투명도와 내측 그라데이션 방향을 별도로 유지했다.
재생성: `examples/org-chart/create-business-card-assets.py <원본 PNG 경로>`. Pillow/numpy가 필요하다. 추출 근거는 `business-management-colors.json`, Chrome 실제 래스터 비교는 `business-management-comparison.json`에 보존한다. 신규 벡터의 외곽·곡선 path는 같은 크기의 경영기획 SVG를 재사용한다.
SVG는 `?inline`으로 번들에 포함되고 별도 장식 이미지 레이어로 렌더링된다. 직원 이름·직위·직책·상태·프로필·관계사 로고는 기존 데이터 레이어다. 파견/휴직 보조 영역에는 새 자산을 전달하지 않는다. 고정 카드 크기의 소비자 override는 이 원본 비율 variant에 적용하지 않는다.
@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 0 104.494 0H3.50602C1.5697 0 0 1.5697 0 3.50602V48.494Z" fill="url(#paint0_linear_69_2371)"/>
<path d="M1.47852 48.1332C1.47852 49.4241 2.52498 50.4706 3.81587 50.4706H104.334C105.541 50.4706 106.52 49.492 106.52 48.2849C106.52 22.4626 85.5865 1.5294 59.7641 1.5294H3.81587C2.52499 1.5294 1.47852 2.57587 1.47852 3.86675V48.1332Z" fill="url(#paint1_linear_69_2371)"/>
<defs>
<linearGradient id="paint0_linear_69_2371" x1="92.1155" y1="10.1048" x2="66.3798" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#DEE6F0"/>
<stop offset="0.72" stop-color="#A8BBD1"/>
<stop offset="1" stop-color="#577BA5"/>
</linearGradient>
<linearGradient id="paint1_linear_69_2371" x1="57.7525" y1="19.8874" x2="43.9106" y2="50.2297" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="0.97" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50603C146 1.5697 144.43 0 142.494 0H3.50602C1.5697 0 0 1.5697 0 3.50603V64.494Z" fill="url(#paint0_linear_67_1090)"/>
<path d="M2 63.6627C2 64.9535 3.04647 66 4.33735 66H141.663C142.954 66 144 64.9535 144 63.6627V52C144 24.3858 121.614 2 94 2H4.33735C3.04647 2 2 3.04647 2 4.33735V63.6627Z" fill="url(#paint1_linear_67_1090)"/>
<defs>
<linearGradient id="paint0_linear_67_1090" x1="124.527" y1="13.2139" x2="91.4091" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#DEE6F0"/>
<stop offset="0.72" stop-color="#A8BBD1"/>
<stop offset="1" stop-color="#577BA5"/>
</linearGradient>
<linearGradient id="paint1_linear_67_1090" x1="78.0741" y1="26.0067" x2="60.3685" y2="66.1292" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="0.97" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1013 B

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="74" viewBox="0 0 146 74" fill="none">
<path d="M0 70C0 72.2091 1.79086 74 4 74H142C144.209 74 146 72.2091 146 70V4.00001C146 1.79086 144.209 0 142 0H4C1.79086 0 0 1.79086 0 4V70Z" fill="url(#paint0_linear_22_271)"/>
<path d="M2 69.6627C2 70.9535 3.04647 72 4.33735 72H142.013C143.11 72 144 71.1103 144 70.0129C144 32.4504 113.55 2 75.9871 2H4.33735C3.04647 2 2 3.04647 2 4.33735V69.6627Z" fill="url(#paint1_linear_22_271)"/>
<defs>
<linearGradient id="paint0_linear_22_271" x1="123.344" y1="9.12442" x2="104.553" y2="74.0869" gradientUnits="userSpaceOnUse">
<stop stop-color="#A7B9DF"/>
<stop offset="0.6" stop-color="#A7B9DF"/>
<stop offset="1" stop-color="#0135A1" stop-opacity="0.5"/>
</linearGradient>
<linearGradient id="paint1_linear_22_271" x1="77.3365" y1="18.8479" x2="77.3365" y2="72" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 3.73075e-09 104.494 3.73075e-09H3.50602C1.5697 3.73075e-09 0 1.5697 0 3.50602V48.494Z" fill="url(#paint0_linear_69_2374)"/>
<path d="M1.48047 48.1332C1.48047 49.4241 2.52694 50.4706 3.81782 50.4706H104.336C105.543 50.4706 106.522 49.492 106.522 48.2849C106.522 22.4626 85.5884 1.5294 59.7661 1.5294H3.81782C2.52694 1.5294 1.48047 2.57587 1.48047 3.86675V48.1332Z" fill="url(#paint1_linear_69_2374)"/>
<defs>
<linearGradient id="paint0_linear_69_2374" x1="92.1156" y1="10.1048" x2="66.3799" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#DDEEEF"/>
<stop offset="0.72" stop-color="#A2D1D1"/>
<stop offset="1" stop-color="#319D99" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="paint1_linear_69_2374" x1="58.7484" y1="16.1449" x2="54.0638" y2="50.215" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50605C146 1.56973 144.43 3.05176e-05 142.494 3.05176e-05H3.50603C1.5697 3.05176e-05 0 1.56973 0 3.50605V64.494Z" fill="url(#paint0_linear_67_59)"/>
<path d="M2 63.6627C2 64.9535 3.04647 66 4.33735 66H141.663C142.954 66 144 64.9535 144 63.6627V52C144 24.3858 121.614 2 94 2H4.33735C3.04647 2 2 3.04647 2 4.33735V63.6627Z" fill="url(#paint1_linear_67_59)"/>
<defs>
<linearGradient id="paint0_linear_67_59" x1="124.527" y1="13.214" x2="91.4092" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#DDEEEF"/>
<stop offset="0.72" stop-color="#A2D1D1"/>
<stop offset="1" stop-color="#319D99" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="paint1_linear_67_59" x1="79.4178" y1="21.1125" x2="73.4847" y2="65.7189" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 0 104.494 0H3.50602C1.5697 0 0 1.5697 0 3.50602V48.494Z" fill="url(#business_management_outer_69_2371)"/>
<path d="M1.47852 48.1332C1.47852 49.4241 2.52498 50.4706 3.81587 50.4706H104.334C105.541 50.4706 106.52 49.492 106.52 48.2849C106.52 22.4626 85.5865 1.5294 59.7641 1.5294H3.81587C2.52499 1.5294 1.47852 2.57587 1.47852 3.86675V48.1332Z" fill="url(#business_management_inner_69_2371)"/>
<defs>
<linearGradient id="business_management_outer_69_2371" x1="92.1155" y1="10.1048" x2="66.3798" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#DEE6F0"/>
<stop offset="0.72" stop-color="#A8BBD1"/>
<stop offset="1" stop-color="#577BA5" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="business_management_inner_69_2371" x1="57.7534" y1="15.6726" x2="53.1643" y2="49.8431" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFFFFF"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50603C146 1.5697 144.43 0 142.494 0H3.50602C1.5697 0 0 1.5697 0 3.50603V64.494Z" fill="url(#business_management_outer_67_1090)"/>
<path d="M2 63.6627C2 64.9535 3.04647 66 4.33735 66H141.663C142.954 66 144 64.9535 144 63.6627V52C144 24.3858 121.614 2 94 2H4.33735C3.04647 2 2 3.04647 2 4.33735V63.6627Z" fill="url(#business_management_inner_67_1090)"/>
<defs>
<linearGradient id="business_management_outer_67_1090" x1="124.527" y1="13.2139" x2="91.4091" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#DEE6F0"/>
<stop offset="0.72" stop-color="#A8BBD1"/>
<stop offset="1" stop-color="#577BA5" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="business_management_inner_67_1090" x1="78.0741" y1="20.4949" x2="71.8702" y2="65.1795" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFFFFF"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 3.73075e-09 104.494 3.73075e-09H3.50602C1.5697 3.73075e-09 0 1.5697 0 3.50602V48.494Z" fill="url(#paint0_linear_69_2375)"/>
<path d="M1.48047 48.1332C1.48047 49.4241 2.52694 50.4706 3.81782 50.4706H104.336C105.543 50.4706 106.522 49.492 106.522 48.2849C106.522 22.4626 85.5884 1.5294 59.7661 1.5294H3.81782C2.52694 1.5294 1.48047 2.57587 1.48047 3.86675V48.1332Z" fill="url(#paint1_linear_69_2375)"/>
<defs>
<linearGradient id="paint0_linear_69_2375" x1="92.1156" y1="10.1048" x2="66.3799" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#E0EAE1"/>
<stop offset="0.72" stop-color="#B8CDB3"/>
<stop offset="1" stop-color="#B8CDB3"/>
</linearGradient>
<linearGradient id="paint1_linear_69_2375" x1="58.8193" y1="16.2688" x2="54.1615" y2="50.2168" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50602C146 1.5697 144.43 0 142.494 0H3.50603C1.5697 0 0 1.56969 0 3.50602V64.494Z" fill="url(#paint0_linear_67_67)"/>
<path d="M2 63.6627C2 64.9535 3.04647 66 4.33735 66H141.663C142.954 66 144 64.9535 144 63.6627V52C144 24.3858 121.614 2.00002 94 2.00002H4.33735C3.04647 2.00002 2 3.04648 2 4.33736V63.6627Z" fill="url(#paint1_linear_67_67)"/>
<defs>
<linearGradient id="paint0_linear_67_67" x1="124.527" y1="13.2139" x2="91.4092" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#E0EAE1"/>
<stop offset="0.72" stop-color="#B8CDB3"/>
<stop offset="1" stop-color="#B8CDB3"/>
</linearGradient>
<linearGradient id="paint1_linear_67_67" x1="79.5136" y1="21.2746" x2="73.6145" y2="65.721" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1020 B

@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 3.73075e-09 104.494 3.73075e-09H3.50602C1.5697 3.73075e-09 0 1.5697 0 3.50602V48.494Z" fill="url(#paint0_linear_69_2372)"/>
<path d="M1.47726 48.1939C1.47795 49.4848 2.52498 50.5306 3.81586 50.5299L104.36 50.4718C105.567 50.4711 106.545 49.492 106.545 48.2849V48.2849C106.531 22.4625 85.5865 1.54149 59.7641 1.5564L3.78958 1.58873C2.4987 1.58948 1.45279 2.63655 1.45349 3.92743L1.47726 48.1939Z" fill="url(#paint1_linear_69_2372)"/>
<defs>
<linearGradient id="paint0_linear_69_2372" x1="92.1156" y1="10.1048" x2="66.3799" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#B8CFEA"/>
<stop offset="0.72" stop-color="#BFD6F0"/>
<stop offset="1" stop-color="#3D86D4" stop-opacity="0.7"/>
</linearGradient>
<linearGradient id="paint1_linear_69_2372" x1="58.5614" y1="15.8664" x2="53.7835" y2="50.4693" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50602C146 1.5697 144.43 0 142.494 0H3.50603C1.5697 0 0 1.56969 0 3.50602V64.494Z" fill="url(#paint0_linear_67_1091)"/>
<path d="M1.9987 63.742C1.99942 65.0329 3.04647 66.0788 4.33735 66.078L141.698 66.0013C142.989 66.0006 144.035 64.9535 144.034 63.6626L144.028 52C144.012 24.3858 121.614 2.0125 94 2.02793L4.30182 2.07805C3.01094 2.07877 1.96505 3.12582 1.96576 4.4167L1.9987 63.742Z" fill="url(#paint1_linear_67_1091)"/>
<defs>
<linearGradient id="paint0_linear_67_1091" x1="124.527" y1="13.2139" x2="91.4092" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#B8CFEA"/>
<stop offset="0.72" stop-color="#BFD6F0"/>
<stop offset="1" stop-color="#3D86D4" stop-opacity="0.7"/>
</linearGradient>
<linearGradient id="paint1_linear_67_1091" x1="79.1676" y1="20.7484" x2="73.1165" y2="66.0528" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="108" height="52" viewBox="0 0 108 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 48.494C0 50.4303 1.5697 52 3.50602 52H104.494C106.43 52 108 50.4303 108 48.494V3.50602C108 1.5697 106.43 0 104.494 0H3.50602C1.5697 0 0 1.5697 0 3.50602V48.494Z" fill="url(#paint0_linear_69_2373)"/>
<path d="M1.47852 48.1332C1.47852 49.4241 2.52498 50.4706 3.81587 50.4706H104.334C105.541 50.4706 106.52 49.492 106.52 48.2849C106.52 22.4626 85.5865 1.52939 59.7641 1.52939H3.81587C2.52499 1.52939 1.47852 2.57586 1.47852 3.86674V48.1332Z" fill="url(#paint1_linear_69_2373)"/>
<defs>
<linearGradient id="paint0_linear_69_2373" x1="92.1156" y1="10.1048" x2="66.3799" y2="53.0473" gradientUnits="userSpaceOnUse">
<stop stop-color="#DFDEE9"/>
<stop offset="0.72" stop-color="#AFA4C3"/>
<stop offset="1" stop-color="#7F6B9D" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="paint1_linear_69_2373" x1="58.4371" y1="16.1449" x2="53.7525" y2="50.215" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,15 @@
<svg width="146" height="68" viewBox="0 0 146 68" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 64.494C0 66.4303 1.5697 68 3.50602 68H142.494C144.43 68 146 66.4303 146 64.494V3.50603C146 1.5697 144.43 0 142.494 0H3.50603C1.5697 0 0 1.5697 0 3.50603V64.494Z" fill="url(#paint0_linear_67_51)"/>
<path d="M2 63.6627C2 64.9536 3.04647 66 4.33735 66H141.663C142.954 66 144 64.9536 144 63.6627V52C144 24.3858 121.614 2.00002 94 2.00002H4.33735C3.04647 2.00002 2 3.04648 2 4.33736V63.6627Z" fill="url(#paint1_linear_67_51)"/>
<defs>
<linearGradient id="paint0_linear_67_51" x1="124.527" y1="13.2139" x2="91.4092" y2="70.3397" gradientUnits="userSpaceOnUse">
<stop stop-color="#DFDEE9"/>
<stop offset="0.72" stop-color="#AFA4C3"/>
<stop offset="1" stop-color="#7F6B9D" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="paint1_linear_67_51" x1="78.9996" y1="21.1126" x2="73.0666" y2="65.719" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#E0E6F4"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<rect width="64" height="64" fill="#f1f5f8"/>
<circle cx="32" cy="23" r="10" fill="#8c9ead"/>
<path d="M14 54v-3c0-10 8-16 18-16s18 6 18 16v3H14Z" fill="#8c9ead"/>
</svg>

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@@ -0,0 +1,32 @@
<svg width="1758" height="901" viewBox="0 0 1758 901" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1334.26 434.607C1325.83 686.168 1115.1 883.287 863.544 874.862C611.983 866.436 414.864 655.706 423.289 404.145C431.715 152.584 642.444 -44.535 894.005 -36.2021C1145.57 -27.7766 1342.69 182.953 1334.26 434.514V434.607Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1317.01 434.028C1308.91 676.065 1106.16 865.721 864.121 857.614C622.084 849.508 432.428 646.757 440.535 404.72C448.641 162.684 651.392 -26.9719 893.429 -18.9545C1135.46 -10.848 1325.12 191.903 1317.01 433.939V434.028Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1300.56 433.477C1292.76 666.428 1097.62 848.965 864.671 841.163C631.72 833.361 449.183 638.22 456.985 405.269C464.787 172.318 659.927 -10.2191 892.879 -2.50268C1125.83 5.29951 1308.37 200.44 1300.56 433.391V433.477Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1281.35 432.833C1273.91 655.173 1087.65 829.395 865.313 821.948C642.973 814.501 468.751 628.25 476.197 405.91C483.644 183.569 669.896 9.34707 892.236 16.712C1114.58 24.1588 1288.8 210.411 1281.35 432.751V432.833Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1260.18 432.123C1253.13 642.771 1076.67 807.832 866.021 800.776C655.373 793.721 490.312 617.264 497.367 406.615C504.423 195.967 680.88 30.9065 891.528 37.8842C1102.18 44.9394 1267.24 221.397 1260.18 432.045V432.123Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1233.13 431.215C1226.57 626.922 1062.63 780.274 866.926 773.72C671.219 767.165 517.867 603.224 524.422 407.517C530.976 211.811 694.917 58.4586 890.624 64.9413C1086.33 71.4961 1239.68 235.437 1233.13 431.143V431.215Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1200.59 430.124C1194.64 607.86 1045.75 747.131 868.014 741.178C690.278 735.225 551.007 586.338 556.96 408.602C562.913 230.867 711.8 91.5959 889.535 97.4834C1067.27 103.436 1206.54 252.323 1200.59 430.059V430.124Z" stroke="#CFE3F6" stroke-width="0.663562"/>
<path d="M1350.93 435.148C1342.22 695.968 1123.72 900.309 862.989 891.606C602.169 882.903 397.828 664.488 406.531 403.668C415.235 142.849 633.742 -61.4927 894.469 -52.7895C1155.29 -44.0862 1359.63 174.421 1350.93 435.148Z" stroke="#D6E9F8" stroke-width="0.663562"/>
<path d="M1367.59 435.713C1358.61 705.699 1132.42 917.262 862.341 908.281C592.355 899.3 380.792 673.108 389.773 403.03C398.754 133.044 624.946 -78.6117 895.025 -69.5381C1165.01 -60.5571 1376.67 165.727 1367.59 435.713Z" stroke="#D6E9F8" stroke-opacity="0.9" stroke-width="0.663562"/>
<path d="M1384.35 436.269C1375 715.514 1141.12 934.299 861.878 924.947C582.633 915.596 363.848 681.719 373.199 402.474C382.551 123.23 616.428 -95.5552 895.672 -86.2964C1174.92 -76.9451 1393.7 156.932 1384.35 436.176V436.269Z" stroke="#D6E9F8" stroke-opacity="0.9" stroke-width="0.663562"/>
<path d="M1401.02 436.829C1391.39 725.332 1149.73 951.339 861.323 941.71C572.912 932.081 346.812 690.427 356.441 402.016C366.071 113.512 607.725 -112.494 896.136 -102.865C1184.55 -93.2361 1410.65 148.418 1401.02 436.829Z" stroke="#D6E9F8" stroke-opacity="0.8" stroke-width="0.663562"/>
<path d="M1417.68 437.366C1407.78 735.036 1158.34 968.357 860.674 958.358C563.004 948.451 329.776 699.019 339.683 401.35C349.59 103.68 599.021 -129.641 896.691 -119.642C1194.36 -109.735 1427.68 139.697 1417.68 437.366Z" stroke="#D6E9F8" stroke-opacity="0.8" stroke-width="0.663562"/>
<path d="M1434.44 437.94C1424.16 744.869 1167.14 985.319 860.211 975.042C553.283 964.765 312.832 707.741 323.11 400.813C333.387 93.8843 590.503 -146.566 897.339 -136.381C1204.27 -126.104 1444.72 131.012 1434.44 437.848V437.94Z" stroke="#D6E9F8" stroke-opacity="0.7" stroke-width="0.663562"/>
<path d="M1451.11 438.489C1440.55 754.584 1175.75 1002.35 859.563 991.793C543.469 981.238 295.704 716.437 306.259 400.25C316.814 84.1555 581.615 -163.609 897.802 -153.054C1213.9 -142.499 1461.66 122.302 1451.11 438.489Z" stroke="#D6E9F8" stroke-opacity="0.7" stroke-width="0.663562"/>
<path d="M1467.87 439.047C1457.03 764.4 1184.45 1019.39 859.101 1008.46C533.747 997.629 278.853 725.05 289.686 399.697C300.519 74.3436 573.097 -180.643 898.451 -169.718C1223.8 -158.885 1478.79 113.693 1467.87 439.047Z" stroke="#D6E9F8" stroke-opacity="0.6" stroke-width="0.663562"/>
<path d="M1484.53 439.6C1473.33 774.212 1193.06 1036.33 858.544 1025.22C524.024 1014.01 261.816 733.751 272.926 399.232C284.129 64.6196 564.393 -197.589 898.912 -186.386C1233.43 -175.183 1495.64 105.08 1484.44 439.6H1484.53Z" stroke="#D6E9F8" stroke-opacity="0.6" stroke-width="0.663562"/>
<path d="M1501.2 440.162C1489.72 783.941 1201.68 1053.37 857.898 1041.89C514.119 1030.41 244.689 742.462 256.17 398.591C267.743 54.8121 555.691 -214.526 899.562 -203.045C1243.34 -191.564 1512.77 96.4766 1501.29 440.255L1501.2 440.162Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1517.95 440.713C1506.2 793.751 1210.47 1070.4 857.433 1058.55C504.396 1046.79 227.837 751.068 239.595 398.03C251.354 45.0858 547.079 -231.566 900.116 -219.808C1253.15 -208.049 1529.81 87.6762 1517.95 440.713Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1534.62 441.355C1522.49 803.651 1219.08 1087.43 856.878 1075.4C494.674 1063.27 210.8 759.857 222.837 397.653C234.966 35.2646 538.376 -248.61 900.672 -236.481C1262.88 -224.352 1546.75 79.0587 1534.62 441.355Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1551.29 441.908C1538.88 813.37 1227.69 1104.47 856.23 1092.06C484.768 1079.65 193.672 768.465 206.079 397.003C218.578 25.4479 529.766 -265.555 901.228 -253.149C1272.69 -240.742 1563.79 70.4455 1551.38 441.908H1551.29Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1568.04 442.467C1555.36 823.188 1236.4 1121.51 855.767 1108.73C475.046 1096.04 176.728 777.079 189.413 396.451C202.097 15.7302 521.062 -282.588 901.783 -269.903C1282.41 -257.219 1580.82 61.7463 1568.04 442.375V442.467Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1584.71 443.026C1571.66 832.913 1245.1 1138.45 855.12 1125.49C465.233 1112.44 159.694 785.786 172.748 395.899C185.711 5.91949 512.453 -299.62 902.34 -286.565C1292.23 -273.51 1597.77 53.1393 1584.71 443.026Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1601.38 443.581C1588.04 842.727 1253.71 1155.49 854.564 1142.16C455.511 1128.82 142.749 794.396 155.989 395.343C169.322 -3.80306 503.749 -316.565 902.895 -303.324C1302.04 -289.992 1614.8 44.3425 1601.47 443.488L1601.38 443.581Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1619.26 444.179C1605.6 853.201 1262.99 1173.7 853.966 1160.04C445.038 1146.38 124.538 803.675 138.105 394.747C151.768 -14.2755 494.47 -334.776 903.493 -321.208C1312.52 -307.546 1633.02 35.0614 1619.35 444.084L1619.26 444.179Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1638.07 444.808C1624.06 864.223 1272.75 1192.87 853.337 1178.86C434.019 1164.85 105.375 813.438 119.287 394.12C133.297 -25.2949 484.707 -353.939 904.122 -340.027C1323.54 -326.017 1652.18 25.2956 1638.17 444.711L1638.07 444.808Z" stroke="#D6E9F8" stroke-opacity="0.5" stroke-width="0.663562"/>
<path d="M1659.66 445.53C1645.26 876.87 1283.95 1214.86 852.615 1200.45C421.374 1186.04 83.3858 824.641 97.6938 393.401C112.102 -37.9395 473.503 -375.928 904.844 -361.62C1336.18 -347.212 1674.17 14.0895 1659.76 445.43L1659.66 445.53Z" stroke="#D6E9F8" stroke-opacity="0.4" stroke-width="0.663562"/>
<path d="M1682.94 446.308C1668.1 890.503 1296.03 1238.56 851.836 1223.73C407.744 1208.89 59.6834 836.717 74.4177 392.626C89.2552 -51.5694 461.427 -399.63 905.622 -384.896C1349.82 -370.059 1697.88 2.0101 1683.04 446.205L1682.94 446.308Z" stroke="#D6E9F8" stroke-opacity="0.4" stroke-width="0.663562"/>
<path d="M1708.4 447.16C1693.09 905.419 1309.24 1264.5 850.985 1249.19C392.832 1233.89 33.7502 849.93 48.9511 391.777C64.2583 -66.482 448.214 -425.563 906.473 -410.362C1364.73 -395.055 1723.81 -11.206 1708.51 447.053L1708.4 447.16Z" stroke="#D6E9F8" stroke-opacity="0.3" stroke-width="0.663562"/>
<path d="M1731.81 447.942C1716.07 919.134 1321.39 1288.35 850.201 1272.61C379.119 1256.87 9.90427 862.08 25.5341 390.997C41.2733 -80.1944 436.064 -449.409 907.256 -433.779C1378.45 -418.04 1747.66 -23.3586 1731.92 447.833L1731.81 447.942Z" stroke="#D6E9F8" stroke-opacity="0.3" stroke-width="0.663562"/>
<path d="M1756.52 448.769C1740.33 933.607 1334.21 1313.51 849.375 1297.32C364.65 1281.12 -15.2584 874.9 0.824129 390.174C17.0191 -94.664 423.244 -474.572 908.082 -458.489C1392.92 -442.294 1772.83 -36.182 1756.63 448.656L1756.52 448.769Z" stroke="#D6E9F8" stroke-opacity="0.3" stroke-width="0.663562"/>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

@@ -0,0 +1,11 @@
# Workdesk Full Composition artwork
These nine files are copied byte-for-byte from the read-only source
`D:\디자인시스템\gpd-workdesk\sample\조직도_v1.3\public`.
They are embedded by `?inline` imports in the shared Core ESM/IIFE bundles, so
HTML and React need no external Workdesk server or asset URL.
The compact `screenD` hub paths and original arrow placements are implemented
in `core/workdesk-artwork.ts`. Lower organization relationships retain the
existing engine routes because the source lower SVG block is hidden.
Approved card SVGs and company logo files are untouched.
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB