generated from ttipo/project-base
f77179a508
메일 쓰기 화면은 입력칸마다 포커스 모양이 달랐고, 본문은 서식 없는 글만 쓸 수 있었다. - 글자 입력 행(받는 사람·참조·숨은참조·제목·본문)의 포커스를 아래 선 하나(.compose-field)로 통일했다 - 본문을 TipTap 서식 편집기로 바꿨다 — 글꼴·크기·굵게·색·목록·링크·정렬·들여쓰기·인용·표·가로줄, 단축키, 좁은 폭에서 묶음째 접는 툴바. 편집기는 쓰기 화면에서 따로 불러온다(지연 로딩) - 보낼 때는 기본 글꼴(맑은 고딕) div 와 인라인 style 의 HTML 에 텍스트 대체 본문을 함께 보낸다 (여러 칸 공백은 nbsp, 탭은 8칸 자리까지) - 붙여 넣은 글·원문 인용은 서버 정화와 같은 값 형식만 읽는다 — 편집기에서 숨은 글이 받는 사람에게 보이지 않게 - 답장·전달 인용은 "원본 메일" 머리와 함께 서식째 옮긴다. 초안은 내 글 몫 5%를 남기고, 보내기 직전에 다시 재서 인용을 줄인다 - 본문에 붙여 넣거나 끌어다 놓은 이미지·파일은 첨부로 올린다 — 화면 어디에 놓아도 (브라우저가 파일을 열어 쓰던 메일을 잃지 않게) 의존성: @tiptap/* 3.31.4 (MIT 무료 패키지만, 모두 같은 판으로 고정) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
1.5 KiB
JSON
56 lines
1.5 KiB
JSON
{
|
|
"name": "frontend",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "run-p type-check \"build-only {@}\" --",
|
|
"preview": "vite preview",
|
|
"test:unit": "vitest",
|
|
"build-only": "vite build",
|
|
"type-check": "vue-tsc --build",
|
|
"lint": "eslint . --max-warnings 0",
|
|
"lint:fix": "eslint . --fix",
|
|
"format": "oxfmt src/"
|
|
},
|
|
"dependencies": {
|
|
"@tiptap/core": "3.31.4",
|
|
"@tiptap/extension-table": "3.31.4",
|
|
"@tiptap/extension-text-align": "3.31.4",
|
|
"@tiptap/extension-text-style": "3.31.4",
|
|
"@tiptap/extensions": "3.31.4",
|
|
"@tiptap/pm": "3.31.4",
|
|
"@tiptap/starter-kit": "3.31.4",
|
|
"axios": "^1.14.0",
|
|
"dompurify": "^3.4.17",
|
|
"pinia": "^3.0.4",
|
|
"pretendard": "^1.3.9",
|
|
"vue": "^3.5.43",
|
|
"vue-router": "^4.4.5"
|
|
},
|
|
"devDependencies": {
|
|
"@tsconfig/node24": "^24.0.4",
|
|
"@types/jsdom": "^28.0.1",
|
|
"@types/node": "^24.12.0",
|
|
"@vitejs/plugin-vue": "^6.0.5",
|
|
"@vitejs/plugin-vue-jsx": "^5.1.5",
|
|
"@vue/eslint-config-typescript": "^14.2.0",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^9.18.0",
|
|
"eslint-plugin-vue": "^9.32.0",
|
|
"jsdom": "^29.0.1",
|
|
"npm-run-all2": "^8.0.4",
|
|
"oxfmt": "^0.72.0",
|
|
"typescript": "~6.0.0",
|
|
"vite": "^8.3.4",
|
|
"vite-plugin-vue-devtools": "^8.1.1",
|
|
"vitest": "^4.1.2",
|
|
"vue-tsc": "^3.2.6"
|
|
},
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
}
|
|
}
|