@@ -5591,13 +5591,25 @@ MediumEditor.extensions = {};
55915591
55925592 showPlaceholder : function ( el ) {
55935593 if ( el ) {
5594- el . classList . add ( 'medium-editor-placeholder' ) ;
5594+ // https://github.com/yabwe/medium-editor/issues/234
5595+ // In firefox, styling the placeholder with an absolutely positioned
5596+ // pseudo element causes the cursor to appear in a bad location
5597+ // when the element is completely empty, so apply a different class to
5598+ // style it with a relatively positioned pseudo element
5599+ if ( MediumEditor . util . isFF && el . childNodes . length === 0 ) {
5600+ el . classList . add ( 'medium-editor-placeholder-relative' ) ;
5601+ el . classList . remove ( 'medium-editor-placeholder' ) ;
5602+ } else {
5603+ el . classList . add ( 'medium-editor-placeholder' ) ;
5604+ el . classList . remove ( 'medium-editor-placeholder-relative' ) ;
5605+ }
55955606 }
55965607 } ,
55975608
55985609 hidePlaceholder : function ( el ) {
55995610 if ( el ) {
56005611 el . classList . remove ( 'medium-editor-placeholder' ) ;
5612+ el . classList . remove ( 'medium-editor-placeholder-relative' ) ;
56015613 }
56025614 } ,
56035615
@@ -6776,6 +6788,7 @@ MediumEditor.extensions = {};
67766788 var elementId = MediumEditor . util . guid ( ) ;
67776789
67786790 element . setAttribute ( 'data-medium-editor-element' , true ) ;
6791+ element . classList . add ( 'medium-editor-element' ) ;
67796792 element . setAttribute ( 'role' , 'textbox' ) ;
67806793 element . setAttribute ( 'aria-multiline' , true ) ;
67816794 element . setAttribute ( 'data-medium-editor-editor-index' , editorId ) ;
@@ -7064,6 +7077,7 @@ MediumEditor.extensions = {};
70647077 element . removeAttribute ( 'contentEditable' ) ;
70657078 element . removeAttribute ( 'spellcheck' ) ;
70667079 element . removeAttribute ( 'data-medium-editor-element' ) ;
7080+ element . classList . remove ( 'medium-editor-element' ) ;
70677081 element . removeAttribute ( 'role' ) ;
70687082 element . removeAttribute ( 'aria-multiline' ) ;
70697083 element . removeAttribute ( 'medium-editor-index' ) ;
@@ -7650,7 +7664,7 @@ MediumEditor.parseVersionString = function (release) {
76507664
76517665MediumEditor . version = MediumEditor . parseVersionString . call ( this , ( {
76527666 // grunt-bump looks for this:
7653- 'version' : '5.20.0 '
7667+ 'version' : '5.20.2 '
76547668} ) . version ) ;
76557669
76567670 return MediumEditor ;
0 commit comments