- prose 클래스 대신 커스텀 CSS 적용 - @tailwindcss/typography 플러그인 의존성 제거 - 마크다운 렌더링 스타일 개선 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
212 lines
6.1 KiB
PHP
212 lines
6.1 KiB
PHP
{{-- 영업파트너 가이드북 도움말 모달 --}}
|
|
<div x-data="{ open: true }"
|
|
x-show="open"
|
|
x-transition:enter="transition ease-out duration-300"
|
|
x-transition:enter-start="opacity-0"
|
|
x-transition:enter-end="opacity-100"
|
|
x-transition:leave="transition ease-in duration-200"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0"
|
|
class="fixed inset-0 z-50 overflow-y-auto"
|
|
aria-labelledby="modal-title"
|
|
role="dialog"
|
|
aria-modal="true">
|
|
|
|
{{-- 배경 오버레이 --}}
|
|
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" @click="open = false; setTimeout(() => { document.getElementById('help-modal-container').innerHTML = '' }, 200)"></div>
|
|
|
|
{{-- 모달 컨테이너 --}}
|
|
<div class="flex min-h-full items-center justify-center p-4">
|
|
<div x-show="open"
|
|
x-transition:enter="transition ease-out duration-300"
|
|
x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
|
|
x-transition:leave="transition ease-in duration-200"
|
|
x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
|
|
x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
class="relative transform overflow-hidden rounded-xl bg-white shadow-2xl transition-all w-full max-w-6xl max-h-[90vh] flex flex-col">
|
|
|
|
{{-- 헤더 --}}
|
|
<div class="flex items-center justify-between px-6 py-4 border-b border-gray-200 bg-gradient-to-r from-blue-600 to-blue-700 flex-shrink-0">
|
|
<div class="flex items-center gap-3">
|
|
<div class="p-2 bg-white/20 rounded-lg">
|
|
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253" />
|
|
</svg>
|
|
</div>
|
|
<h3 class="text-xl font-bold text-white" id="modal-title">영업파트너 가이드북</h3>
|
|
</div>
|
|
<button type="button"
|
|
@click="open = false; setTimeout(() => { document.getElementById('help-modal-container').innerHTML = '' }, 200)"
|
|
class="p-2 text-white/80 hover:text-white hover:bg-white/20 rounded-lg transition-colors">
|
|
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
|
|
{{-- 콘텐츠 영역 --}}
|
|
<div class="flex-1 overflow-y-auto p-6">
|
|
<div class="help-content">
|
|
{!! $htmlContent !!}
|
|
</div>
|
|
</div>
|
|
|
|
{{-- 푸터 --}}
|
|
<div class="flex items-center justify-end px-6 py-4 border-t border-gray-200 bg-gray-50 flex-shrink-0">
|
|
<button type="button"
|
|
@click="open = false; setTimeout(() => { document.getElementById('help-modal-container').innerHTML = '' }, 200)"
|
|
class="px-6 py-2.5 bg-gray-600 hover:bg-gray-700 text-white font-medium rounded-lg transition-colors">
|
|
닫기
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.help-content {
|
|
color: #374151;
|
|
line-height: 1.75;
|
|
}
|
|
|
|
.help-content h1 {
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
color: #111827;
|
|
border-bottom: 2px solid #e5e7eb;
|
|
padding-bottom: 1rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.help-content h2 {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
color: #1d4ed8;
|
|
margin-top: 2.5rem;
|
|
margin-bottom: 1rem;
|
|
padding-left: 1rem;
|
|
border-left: 4px solid #3b82f6;
|
|
}
|
|
|
|
.help-content h3 {
|
|
font-size: 1.25rem;
|
|
font-weight: 600;
|
|
color: #1f2937;
|
|
margin-top: 1.5rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.help-content h4 {
|
|
font-size: 1.125rem;
|
|
font-weight: 500;
|
|
color: #374151;
|
|
margin-top: 1rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.help-content p {
|
|
margin-bottom: 1rem;
|
|
color: #4b5563;
|
|
}
|
|
|
|
.help-content a {
|
|
color: #2563eb;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.help-content a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.help-content strong {
|
|
font-weight: 600;
|
|
color: #111827;
|
|
}
|
|
|
|
.help-content code {
|
|
background-color: #f3f4f6;
|
|
color: #db2777;
|
|
padding: 0.125rem 0.375rem;
|
|
border-radius: 0.25rem;
|
|
font-size: 0.875rem;
|
|
font-family: ui-monospace, monospace;
|
|
}
|
|
|
|
.help-content pre {
|
|
background-color: #1f2937;
|
|
color: #f3f4f6;
|
|
padding: 1rem;
|
|
border-radius: 0.5rem;
|
|
overflow-x: auto;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.help-content pre code {
|
|
background: none;
|
|
color: inherit;
|
|
padding: 0;
|
|
}
|
|
|
|
.help-content blockquote {
|
|
border-left: 4px solid #60a5fa;
|
|
background-color: #eff6ff;
|
|
padding: 0.75rem 1rem;
|
|
margin: 1rem 0;
|
|
border-radius: 0 0.5rem 0.5rem 0;
|
|
color: #1f2937;
|
|
}
|
|
|
|
.help-content blockquote p {
|
|
margin: 0;
|
|
}
|
|
|
|
.help-content table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.help-content th {
|
|
background-color: #f3f4f6;
|
|
border: 1px solid #d1d5db;
|
|
padding: 0.75rem 1rem;
|
|
text-align: left;
|
|
font-weight: 600;
|
|
color: #374151;
|
|
}
|
|
|
|
.help-content td {
|
|
border: 1px solid #d1d5db;
|
|
padding: 0.75rem 1rem;
|
|
color: #4b5563;
|
|
}
|
|
|
|
.help-content tr:nth-child(even) {
|
|
background-color: #f9fafb;
|
|
}
|
|
|
|
.help-content ul {
|
|
list-style-type: disc;
|
|
padding-left: 1.5rem;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.help-content ol {
|
|
list-style-type: decimal;
|
|
padding-left: 1.5rem;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.help-content li {
|
|
margin-bottom: 0.5rem;
|
|
color: #4b5563;
|
|
}
|
|
|
|
.help-content hr {
|
|
border: none;
|
|
border-top: 1px solid #e5e7eb;
|
|
margin: 2rem 0;
|
|
}
|
|
</style>
|