constshell=(ctx,deps,o)=>deps.shell?deps.shell(ctx,o)/* [통합] 인증 영역 공통 틀 우선 */:deps.page({...o,user:ctx.user,group:ctx.group,groups:ctx.groups||[],unread:ctx.unread||0,csrf:ctx.session?ctx.session.csrf:'',scripts:['/ui/domains/domains.js']});
exportconstlistPage=(ctx,deps)=>shell(ctx,deps,{title:t('domains.title'),nav:'domains',crumbs:[{label:t('nav.dashboard'),href:'/'},{label:t('domains.title')}],actions:[{label:t('domains.connect'),href:'/domains/connect',kind:'primary'},{label:'도메인 구매·DNS 자동화(Webmaker)',href:'/sso/webmaker?path=/'}],body:`<div id="list" data-page="domains-list">${deps.statePanel('loading')}</div><p class="hint">도메인 등록·갱신·네임서버·레코드 자동화는 Webmaker 의 도메인 탭에서 기존 기능 그대로 제공됩니다. 도메인 등록 기능이 제공되지 않는 환경에서는 외부 등록기관에서 구매한 도메인을 여기서 연결하세요.</p>`});
exportconstconnectPage=(ctx,deps,{siteId=''}={})=>shell(ctx,deps,{title:t('domains.connect'),nav:'domains',crumbs:[{label:t('domains.title'),href:'/domains'},{label:t('domains.connect')}],body:`<form id="connect" class="card" data-page="domains-connect" data-site="${esc(siteId)}"><ol class="hint"><li>도메인 입력</li><li>웹·메일 용도 선택</li><li>소유 확인(TXT)</li><li>필요한 DNS 값 안내</li><li>DNS 반영 확인</li><li>HTTPS 인증서 발급</li><li>외부 접속 확인</li><li>대표 도메인 지정</li></ol>
<div class="f"><label for="name">도메인</label><input id="name" name="name" placeholder="example.com" required><span class="hint">외부 등록기관에서 구매한 도메인도 연결할 수 있습니다. www 없이 입력하세요</span><span class="err" data-err="name"></span></div>
<div class="f"><label for="siteId">연결할 사이트</label><select id="siteId" name="siteId"><option value="">선택 안 함</option></select><span class="hint">한 사이트에 여러 도메인을 연결해도 운영 사이트 수는 하나만 씁니다</span></div>
<div class="f"><label><input type="checkbox" name="makePrimary"> 확인이 끝나면 대표 웹 도메인으로 지정</label></div>