@@ -203,7 +203,7 @@ function LinkItem({
203203 return (
204204 < div
205205 ref = { itemRef }
206- className = { `group relative flex items-center p-3 rounded-xl transition-all cursor-pointer border ${ ( isBulkEditMode && isSelected ) || ( isTitleEditing || isNoteEditing || isTagEditing ) ? 'bg-purple-50/50 dark:bg-purple-900/10 border-purple-200 dark:border-purple-800' : 'border-transparent hover:border-purple-200/50 dark:hover:border-purple-800/50 hover:bg-purple-50/60 dark:hover:bg-purple-900/10 ' } ` }
206+ className = { `group relative z-0 hover:z-20 flex items-center p-3 rounded-xl transition-all duration-300 cursor-pointer border ${ ( isBulkEditMode && isSelected ) || ( isTitleEditing || isNoteEditing || isTagEditing ) ? 'bg-purple-50/40 dark:bg-purple-900/10 border-purple-200/60 dark:border-purple-800/60 ' : 'border-transparent hover:border-purple-200/30 dark:hover:border-purple-800/30 hover:bg-purple-50/40 dark:hover:bg-purple-900/5 ' } ` }
207207 onClick = { ( ) => {
208208 if ( isBulkEditMode && onToggleSelect ) {
209209 onToggleSelect ( data . bookmarkId ) ;
@@ -241,9 +241,9 @@ function LinkItem({
241241 ) }
242242 </ div >
243243 < div className = "ml-3 flex-1 flex flex-col min-w-0" >
244- < div className = "flex items-center gap-12 " >
244+ < div className = "flex items-center w-full " >
245245 { /* Title Area | 제목 영역 (호버 시 전체 제목 및 URL 표시) */ }
246- < div className = "w-[240px] shrink-0 flex items-center h-[28px]" >
246+ < div className = "flex-1 flex items-center min-w-0 h-[28px]" >
247247 { isTitleEditing ? (
248248 < input
249249 ref = { titleInputRef }
@@ -256,50 +256,11 @@ function LinkItem({
256256 onClick = { ( e ) => e . stopPropagation ( ) }
257257 />
258258 ) : (
259- < >
260- < h4
261- className = "text-[10.5px] font-semibold text-gray-900 dark:text-gray-100 truncate pr-2 group-hover:whitespace-normal group-hover:line-clamp-2 transition-colors cursor-pointer w-full border border-transparent flex items-center px-0 leading-tight"
262- onDoubleClick = { ( e ) => {
263- e . stopPropagation ( ) ;
264- setIsTitleEditing ( true ) ;
265- } }
266- title = "더블클릭으로 제목 수정"
267- > { titleContent } </ h4 >
268- </ >
259+ < h4
260+ className = "text-[10.5px] font-semibold text-gray-900 dark:text-gray-100 truncate pr-2 group-hover:whitespace-normal group-hover:line-clamp-2 transition-colors cursor-pointer w-full border border-transparent flex items-center px-0 leading-tight"
261+ > { titleContent } </ h4 >
269262 ) }
270263 </ div >
271-
272- { /* Note Area | 메모/설명 영역 */ }
273- < div className = "flex-1 flex items-center h-[28px] relative group/note overflow-hidden" >
274- < div className = { `w-full flex items-center gap-1.5 text-gray-400 dark:text-gray-500 pointer-events-auto h-full px-0.5
275- ${ isNoteEditing ? 'opacity-100' : 'opacity-0 group-hover:opacity-100' } ` }
276- onClick = { ( e ) => {
277- e . stopPropagation ( ) ;
278- if ( ! isNoteEditing ) setIsNoteEditing ( true ) ;
279- } }
280- >
281- < div className = "flex items-center justify-center h-full shrink-0 mr-1.5" >
282- < span
283- className = "material-symbols-outlined !text-[15px] hover:text-purple-500 transition-colors flex items-center justify-center"
284- style = { { fontVariationSettings : "'wght' 300" } }
285- > edit_note</ span >
286- </ div >
287- { isNoteEditing ? (
288- < input
289- ref = { noteInputRef }
290- type = "text"
291- className = "flex-1 text-[10.5px] font-medium bg-gray-50/80 dark:bg-gray-800/80 border border-gray-200 dark:border-gray-700/50 rounded-md outline-none text-gray-900 dark:text-gray-100 px-2 h-full py-0 leading-none focus:border-gray-300 dark:focus:border-gray-600"
292- value = { noteContent }
293- onChange = { ( e ) => setNoteContent ( e . target . value ) }
294- onBlur = { ( e ) => handleNoteEditComplete ( e ) }
295- onKeyDown = { handleNoteKeyDown }
296- onClick = { ( e ) => e . stopPropagation ( ) }
297- />
298- ) : (
299- < p className = "flex-1 text-[10.5px] font-medium truncate hover:text-gray-600 dark:hover:text-gray-300 border border-transparent h-full flex items-center px-0 py-0 leading-none" > { noteContent || 'Add description...' } </ p >
300- ) }
301- </ div >
302- </ div >
303264 </ div >
304265
305266 { /* Folder Info & Quick Move | 폴더 정보 및 빠른 이동 */ }
@@ -316,9 +277,9 @@ function LinkItem({
316277 } }
317278 title = "폴더 이동"
318279 >
319- < span className = "material-symbols-outlined !text-[11px] scale-90" > folder</ span >
280+ < span className = "material-symbols-outlined !text-[11px] scale-90 text-slate-400 " > folder</ span >
320281 < span > { folders ?. find ( f => f . memberFolderId === data . memberFolderId ) ?. folderName ?? 'Unordered' } </ span >
321- < span className = { `material-symbols-outlined !text-[10px] transition-transform ${ isFolderDropdownOpen ? 'rotate-180' : '' } ` } > expand_more</ span >
282+ < span className = { `material-symbols-outlined !text-[10px] text-slate-400 transition-transform ${ isFolderDropdownOpen ? 'rotate-180' : '' } ` } > expand_more</ span >
322283 </ button >
323284
324285 { isFolderDropdownOpen && (
@@ -387,6 +348,31 @@ function LinkItem({
387348 </ div >
388349 </ div >
389350
351+ { /* Note Edit Input | 메모 편집창 (편집 모드 시에만 나타남) */ }
352+ { isNoteEditing && (
353+ < div className = "flex-1 min-w-0 ml-4 h-[28px] z-10" >
354+ < input
355+ ref = { noteInputRef }
356+ type = "text"
357+ className = "w-full text-[10.5px] font-medium bg-gray-50/80 dark:bg-gray-800/80 border border-gray-200 dark:border-gray-700/50 rounded-md outline-none text-gray-900 dark:text-gray-100 px-2 h-full py-0 leading-none focus:border-gray-300 dark:focus:border-gray-600"
358+ value = { noteContent }
359+ onChange = { ( e ) => setNoteContent ( e . target . value ) }
360+ onBlur = { ( e ) => handleNoteEditComplete ( e ) }
361+ onKeyDown = { handleNoteKeyDown }
362+ onClick = { ( e ) => e . stopPropagation ( ) }
363+ autoFocus
364+ />
365+ </ div >
366+ ) }
367+
368+ { /* Tooltip for full note content (위치 우측 복구 & 꼬리만 왼쪽 유지) */ }
369+ { ! isNoteEditing && noteContent && ! isDropdownOpen && (
370+ < div className = "absolute right-12 top-1/2 -translate-y-1/2 mr-2 w-max max-w-[280px] z-[60] opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-300 bg-white/95 dark:bg-gray-800/90 backdrop-blur-md text-gray-700 dark:text-gray-200 text-[11px] font-medium p-3 rounded-xl shadow-xl border border-gray-100 dark:border-gray-700/50 whitespace-normal break-words leading-relaxed pointer-events-none translate-x-1 group-hover:translate-x-0 text-left" >
371+ < div className = "absolute top-1/2 -translate-y-1/2 -left-1.5 w-3 h-3 bg-white/95 dark:bg-gray-800/90 transform rotate-45 border-b border-l border-gray-100 dark:border-gray-700/50" > </ div >
372+ < div className = "relative z-10 break-all xl:break-words" > { noteContent } </ div >
373+ </ div >
374+ ) }
375+
390376 < div className = "shrink-0 ml-4 flex items-center justify-end w-8 relative" ref = { dropdownRef } >
391377 { ! isBulkEditMode && ! ( isNoteEditing || isTitleEditing ) && (
392378 < span className = { `text-[8px] text-gray-400 whitespace-nowrap transition-opacity duration-200 absolute right-0 pointer-events-none ${ isDropdownOpen ? 'opacity-0' : 'group-hover:opacity-0' } ` } >
@@ -630,7 +616,7 @@ export function RightPanel() {
630616 { /* Left: Title and Count | 좌측: 폴더명 및 링크 개수 */ }
631617 < div className = "flex flex-col" >
632618 < div className = "flex items-center gap-2" >
633- < div className = "p-1.5 bg-purple -50 dark:bg-purple -900/20 text-purple-500 rounded-md flex items-center justify-center w-8 h-8" >
619+ < div className = "p-1.5 bg-slate -50 dark:bg-slate -900/20 text-slate-400 rounded-md flex items-center justify-center w-8 h-8" >
634620 < span className = "material-symbols-outlined text-[16px] block" > folder_open</ span >
635621 </ div >
636622 < h2 className = "text-sm font-bold text-gray-900 dark:text-white" > { currentFolderName } </ h2 >
@@ -920,7 +906,7 @@ export function RightPanel() {
920906 { /* All Folders Section | 모든 폴더 목록 섹션 */ }
921907 < div className = "pt-1 pb-2" >
922908 < div className = "px-3 py-2 text-[11px] font-bold text-slate-500 flex items-center gap-1.5" >
923- < span className = "material-symbols-outlined !text-[14px] text-[#7c3aed] " > folder</ span >
909+ < span className = "material-symbols-outlined !text-[14px] text-slate-400 " > folder</ span >
924910 All Folders
925911 </ div >
926912
@@ -940,7 +926,7 @@ export function RightPanel() {
940926 } }
941927 className = "w-full flex items-center gap-3 p-2 rounded-xl hover:bg-slate-100 dark:hover:bg-gray-800 transition-all text-left group bg-white/50"
942928 >
943- < div className = "w-8 h-8 rounded-lg flex items-center justify-center text-slate-400 shrink-0 bg-slate-100 group-hover:bg-violet-50 group-hover:text-violet -500 transition-colors" >
929+ < div className = "w-8 h-8 rounded-lg flex items-center justify-center text-slate-400 shrink-0 bg-slate-100 group-hover:bg-slate-200 group-hover:text-slate -500 transition-colors" >
944930 < span className = "material-symbols-outlined !text-[18px]" > folder_open</ span >
945931 </ div >
946932 < div className = "flex-1 min-w-0" >
0 commit comments