131131 .render-card .empty { cursor : pointer; color : var (--text-muted ); font-size : 12px ; }
132132 .render-card .empty : hover { border-color : var (--blue ); background : rgba (88 , 166 , 255 , 0.05 ); }
133133 .render-card .drop-over { border-color : var (--blue ); background : rgba (88 , 166 , 255 , 0.12 ); }
134- .render-card .filled { border-style : solid; border-color : var (--border ); }
134+ .render-card .filled { border-style : solid; border-color : var (--border ); cursor : pointer; }
135+ .render-card .filled : hover { border-color : rgba (88 , 166 , 255 , 0.4 ); background : rgba (88 , 166 , 255 , 0.04 ); }
135136 .render-card .filled .rendering { border-color : rgba (88 , 166 , 255 , 0.4 ); animation : bpulse 1.2s ease-in-out infinite; }
136137 .render-card .card-name { font-family : var (--mono ); font-size : 11px ; color : var (--text ); padding : 0 12px ; width : 100% ; overflow : hidden; text-overflow : ellipsis; white-space : nowrap; direction : rtl; text-align : center; }
137138 .render-card .card-x { position : absolute; top : 4px ; right : 8px ; background : none; border : none; color : var (--text-muted ); cursor : pointer; font-size : 14px ; padding : 0 3px ; line-height : 1 ; }
@@ -689,11 +690,13 @@ <h2>Activity Log</h2>
689690 card . addEventListener ( 'dragover' , e => { e . preventDefault ( ) ; card . classList . add ( 'drop-over' ) ; } ) ;
690691 card . addEventListener ( 'dragleave' , ( ) => card . classList . remove ( 'drop-over' ) ) ;
691692 card . addEventListener ( 'drop' , e => { e . preventDefault ( ) ; card . classList . remove ( 'drop-over' ) ; handleCardDrop ( card , e . dataTransfer . files ) ; } ) ;
692- card . addEventListener ( 'click' , ( ) => {
693+ const emptyClick = ( ) => {
693694 const inp = document . createElement ( 'input' ) ; inp . type = 'file' ; inp . multiple = true ; inp . accept = '.md' ;
694695 inp . addEventListener ( 'change' , ( ) => { if ( inp . files . length ) handleCardDrop ( card , inp . files ) ; } ) ;
695696 inp . click ( ) ;
696- } ) ;
697+ } ;
698+ card . _emptyClick = emptyClick ;
699+ card . addEventListener ( 'click' , emptyClick ) ;
697700 grid . appendChild ( card ) ;
698701}
699702function handleCardDrop ( card , fileList ) {
@@ -712,6 +715,7 @@ <h2>Activity Log</h2>
712715 ensureEmptyCard ( ) ;
713716}
714717function fillCard ( card , file , previewTab ) {
718+ if ( card . _emptyClick ) { card . removeEventListener ( 'click' , card . _emptyClick ) ; card . _emptyClick = null ; }
715719 card . className = 'render-card filled' ;
716720 card . textContent = '' ;
717721 card . _file = file ;
@@ -734,6 +738,14 @@ <h2>Activity Log</h2>
734738 } ;
735739 card . appendChild ( btn ) ;
736740 card . _actionBtn = btn ;
741+ card . addEventListener ( 'click' , e => {
742+ if ( e . target === x || x . contains ( e . target ) ) return ;
743+ if ( e . target === btn || btn . contains ( e . target ) ) return ;
744+ card . _pdfPath = null ;
745+ if ( btn ) { btn . textContent = 'RENDER' ; btn . className = 'btn btn-blue' ; btn . style . cssText = 'font-size:10px;padding:2px 8px;margin-top:6px' ; }
746+ if ( _previewOn ) card . _previewTab = window . open ( 'about:blank' , '_blank' ) ;
747+ renderCard ( card ) ;
748+ } ) ;
737749 renderCard ( card ) ;
738750}
739751async function renderCard ( card ) {
0 commit comments