@wordpress/block-editor 12.3.11 → 12.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/block-list/index.js +2 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +4 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/copy-handler/index.js +2 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +6 -2
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter-list-item/index.js +1 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +11 -18
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +8 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build-module/components/block-list/index.js +2 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +4 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/copy-handler/index.js +2 -0
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +7 -3
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +1 -1
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +13 -18
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +8 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-style/style-rtl.css +9 -1
- package/build-style/style.css +9 -1
- package/package.json +3 -3
- package/src/components/block-list/index.js +3 -6
- package/src/components/block-tools/block-contextual-toolbar.js +43 -35
- package/src/components/block-tools/style.scss +12 -3
- package/src/components/copy-handler/index.js +1 -0
- package/src/components/inserter/hooks/use-block-types-state.js +15 -6
- package/src/components/inserter-list-item/index.js +3 -1
- package/src/components/rich-text/get-rich-text-values.js +22 -28
- package/src/components/rich-text/index.js +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","children","childrenSource","useInstanceId","useMergeRefs","__unstableUseRichText","useRichText","__unstableCreateElement","removeFormat","deprecated","Popover","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getMultilineTag","getAllowedFormats","Content","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","forwardedRef","since","version","alternative","link","instanceId","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","getBlockRootClientId","selectionChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableMultilineTag","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","className","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,MADD,EAECC,WAFD,EAGCC,UAHD,EAICC,aAJD,QAKO,oBALP;AAMA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,QAAQ,IAAIC,cAArB,QAA2C,mBAA3C;AACA,SAASC,aAAT,EAAwBC,YAAxB,QAA4C,oBAA5C;AACA,SACCC,qBAAqB,IAAIC,WAD1B,EAECC,uBAFD,EAGCC,YAHD,QAIO,sBAJP;AAKA,OAAOC,UAAP,MAAuB,uBAAvB;AACA,SAASC,OAAT,QAAwB,uBAAxB;AAEA;AACA;AACA;;AACA,SAASC,+BAAT,QAAgD,iBAAhD;AACA,SAASC,mBAAT,QAAoC,eAApC;AACA,OAAOC,sBAAP,MAAmC,4BAAnC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,sBAAT,QAAuC,6BAAvC;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,SAASC,aAAT,QAA8B,mBAA9B;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,SAASC,yBAAT,QAA0C,gCAA1C;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,SAASC,eAAT,EAA0BC,iBAA1B,QAAmD,SAAnD;AACA,SAASC,OAAT,QAAwB,WAAxB;AAEA,OAAO,MAAMC,uBAAuB,GAAGnC,aAAa,EAA7C;AACP,OAAO,MAAMoC,iBAAiB,GAAGpC,aAAa,EAAvC;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASqC,iBAAT,CAA4BC,KAA5B,EAAoC;AACnC,QAAM;AACLC,IAAAA,8BADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA,SAJK;AAKLC,IAAAA,cALK;AAMLC,IAAAA,eANK;AAOLC,IAAAA,kBAPK;AAQLC,IAAAA,QARK;AASLC,IAAAA,UATK;AAULC,IAAAA,UAVK;AAWLC,IAAAA,SAXK;AAYLC,IAAAA,QAZK;AAaLC,IAAAA,QAbK;AAcLC,IAAAA,MAdK;AAeLC,IAAAA,kBAfK;AAgBLC,IAAAA,qBAhBK;AAiBL,OAAGC;AAjBE,MAkBFjB,KAlBJ;AAmBA,SAAOiB,SAAP;AACA;;AAED,SAASC,eAAT,CACC;AACCrD,EAAAA,QADD;AAECsD,EAAAA,OAAO,GAAG,KAFX;AAGCC,EAAAA,KAAK,EAAEC,aAAa,GAAG,EAHxB;AAICC,EAAAA,QAAQ,EAAEC,gBAJX;AAKCC,EAAAA,UAAU,EAAEC,kBALb;AAMCC,EAAAA,SAND;AAOCC,EAAAA,aAPD;AAQCC,EAAAA,gBARD;AASCC,EAAAA,cATD;AAUCC,EAAAA,SAVD;AAWCC,EAAAA,WAXD;AAYCC,EAAAA,cAZD;AAaCC,EAAAA,4BAbD;AAcCC,EAAAA,QAdD;AAeCC,EAAAA,OAfD;AAgBCC,EAAAA,OAhBD;AAiBCC,EAAAA,sBAAsB,EAAEC,YAjBzB;AAkBCC,EAAAA,uBAAuB,EAAEC,aAlB1B;AAmBCC,EAAAA,UAnBD;AAoBCC,EAAAA,kBApBD;AAqBCC,EAAAA,wBAAwB,EAAEC,cArB3B;AAsBCC,EAAAA,yBAtBD;AAuBCC,EAAAA,wBAAwB,EAAEC,cAvB3B;AAwBCC,EAAAA,iBAxBD;AAyBCC,EAAAA,oCAzBD;AA0BC,KAAGjD;AA1BJ,CADD,EA6BCkD,YA7BD,EA8BE;AACD,MAAKxB,SAAL,EAAiB;AAChBrD,IAAAA,UAAU,CAAE,wCAAF,EAA4C;AACrD8E,MAAAA,KAAK,EAAE,KAD8C;AAErDC,MAAAA,OAAO,EAAE,KAF4C;AAGrDC,MAAAA,WAAW,EAAE,6BAHwC;AAIrDC,MAAAA,IAAI,EAAE;AAJ+C,KAA5C,CAAV;AAMA;;AAED,QAAMC,UAAU,GAAGxF,aAAa,CAAEmD,eAAF,CAAhC;AAEAuB,EAAAA,UAAU,GAAGA,UAAU,IAAIc,UAA3B;AACAvD,EAAAA,KAAK,GAAGD,iBAAiB,CAAEC,KAAF,CAAzB;AAEA,QAAMwD,SAAS,GAAGjG,MAAM,EAAxB;AACA,QAAM;AAAEkG,IAAAA;AAAF,MAAejF,mBAAmB,EAAxC;;AACA,QAAMkF,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,QACLF,MAAM,CAAEhF,gBAAF,CADP;AAEA,UAAMmF,cAAc,GAAGF,iBAAiB,EAAxC;AACA,UAAMG,YAAY,GAAGF,eAAe,EAApC;AAEA,QAAIrC,UAAJ;;AAEA,QAAKC,kBAAkB,KAAKuC,SAA5B,EAAwC;AACvCxC,MAAAA,UAAU,GACTsC,cAAc,CAACL,QAAf,KAA4BA,QAA5B,IACAM,YAAY,CAACN,QAAb,KAA0BA,QAD1B,IAEAK,cAAc,CAACG,YAAf,KAAgCxB,UAHjC;AAIA,KALD,MAKO,IAAKhB,kBAAL,EAA0B;AAChCD,MAAAA,UAAU,GAAGsC,cAAc,CAACL,QAAf,KAA4BA,QAAzC;AACA;;AAED,WAAO;AACNK,MAAAA,cAAc,EAAEtC,UAAU,GAAGsC,cAAc,CAACI,MAAlB,GAA2BF,SAD/C;AAEND,MAAAA,YAAY,EAAEvC,UAAU,GAAGuC,YAAY,CAACG,MAAhB,GAAyBF,SAF3C;AAGNxC,MAAAA;AAHM,KAAP;AAKA,GAtBD,CAjBC,CAwCD;AACA;AACA;;;AACA,QAAM;AAAEsC,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCvC,IAAAA;AAAhC,MAA+C5D,SAAS,CAAE8F,QAAF,CAA9D;AACA,QAAM;AAAEE,IAAAA,iBAAF;AAAqBC,IAAAA,eAArB;AAAsCM,IAAAA;AAAtC,MACLvG,SAAS,CAAEe,gBAAF,CADV;AAEA,QAAM;AAAEyF,IAAAA;AAAF,MAAsBzG,WAAW,CAAEgB,gBAAF,CAAvC;AACA,QAAM0F,YAAY,GAAG3E,eAAe,CAAEgC,SAAF,CAApC;AACA,QAAM4C,sBAAsB,GAAG3E,iBAAiB,CAAE;AACjDqC,IAAAA,cADiD;AAEjDe,IAAAA;AAFiD,GAAF,CAAhD;AAIA,QAAMwB,UAAU,GACf,CAAED,sBAAF,IAA4BA,sBAAsB,CAACE,MAAvB,GAAgC,CAD7D;AAEA,MAAIC,aAAa,GAAGpD,aAApB;AACA,MAAIqD,gBAAgB,GAAGnD,gBAAvB,CAvDC,CAyDD;;AACA,MAAKoD,KAAK,CAACC,OAAN,CAAevD,aAAf,CAAL,EAAsC;AACrChD,IAAAA,UAAU,CAAE,qDAAF,EAAyD;AAClE8E,MAAAA,KAAK,EAAE,KAD2D;AAElEC,MAAAA,OAAO,EAAE,KAFyD;AAGlEC,MAAAA,WAAW,EAAE,sBAHqD;AAIlEC,MAAAA,IAAI,EAAE;AAJ4D,KAAzD,CAAV;AAOAmB,IAAAA,aAAa,GAAG3G,cAAc,CAAC+G,MAAf,CAAuBxD,aAAvB,CAAhB;;AACAqD,IAAAA,gBAAgB,GAAKI,QAAF,IAClBvD,gBAAgB,CACfzD,cAAc,CAACiH,OAAf,CACC5G,uBAAuB,CAAE6G,QAAF,EAAYF,QAAZ,CAAvB,CAA8CG,UAD/C,CADe,CADjB;AAMA;;AAED,QAAMC,iBAAiB,GAAG1H,WAAW,CACpC,CAAE2H,KAAF,EAASC,GAAT,KAAkB;AACjB,UAAMC,SAAS,GAAG,EAAlB;AACA,UAAMC,KAAK,GAAGH,KAAK,KAAKnB,SAAV,IAAuBoB,GAAG,KAAKpB,SAA7C;;AAEA,QAAK,OAAOmB,KAAP,KAAiB,QAAjB,IAA6BG,KAAlC,EAA0C;AACzC;AACA;AACA;AACA;AACA,UACCF,GAAG,KAAKpB,SAAR,IACAG,oBAAoB,CAAEV,QAAF,CAApB,KACCU,oBAAoB,CAAEN,eAAe,GAAGJ,QAApB,CAHtB,EAIE;AACD;AACA;;AAED4B,MAAAA,SAAS,CAACF,KAAV,GAAkB;AACjB1B,QAAAA,QADiB;AAEjBQ,QAAAA,YAAY,EAAExB,UAFG;AAGjByB,QAAAA,MAAM,EAAEiB;AAHS,OAAlB;AAKA;;AAED,QAAK,OAAOC,GAAP,KAAe,QAAf,IAA2BE,KAAhC,EAAwC;AACvC,UACCH,KAAK,KAAKnB,SAAV,IACAG,oBAAoB,CAAEV,QAAF,CAApB,KACCU,oBAAoB,CAAEP,iBAAiB,GAAGH,QAAtB,CAHtB,EAIE;AACD;AACA;;AAED4B,MAAAA,SAAS,CAACD,GAAV,GAAgB;AACf3B,QAAAA,QADe;AAEfQ,QAAAA,YAAY,EAAExB,UAFC;AAGfyB,QAAAA,MAAM,EAAEkB;AAHO,OAAhB;AAKA;;AAEDhB,IAAAA,eAAe,CAAEiB,SAAF,CAAf;AACA,GA1CmC,EA2CpC,CAAE5B,QAAF,EAAYhB,UAAZ,CA3CoC,CAArC;AA8CA,QAAM;AACL8C,IAAAA,WADK;AAELC,IAAAA,eAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,cAJK;AAKLC,IAAAA;AALK,MAMFxG,cAAc,CAAE;AACnBsE,IAAAA,QADmB;AAEnBhB,IAAAA,UAFmB;AAGnBR,IAAAA,4BAHmB;AAInBD,IAAAA,cAAc,EAAEsC;AAJG,GAAF,CANlB;;AAaA,WAASsB,oBAAT,CAA+BxE,KAA/B,EAAuC;AACtC,WAAOqE,aAAa,CAACI,MAAd,CACN,CAAEC,WAAF,EAAeC,EAAf,KAAuBA,EAAE,CAAED,WAAF,EAAe1E,KAAK,CAAC4E,IAArB,CADnB,EAEN5E,KAAK,CAAC6E,OAFA,CAAP;AAIA;;AAED,WAASC,uBAAT,CAAkC9E,KAAlC,EAA0C;AACzCmE,IAAAA,WAAW,CAACY,OAAZ,CAAuBC,UAAF,IAAkB;AACtC;AACA,UAAKA,UAAU,CAACC,uCAAhB,EAA0D;AACzDjF,QAAAA,KAAK,GAAGhD,YAAY,CACnBgD,KADmB,EAEnBgF,UAAU,CAACE,IAFQ,EAGnB,CAHmB,EAInBlF,KAAK,CAAC4E,IAAN,CAAWxB,MAJQ,CAApB;AAMA;AACD,KAVD;AAYA,WAAOpD,KAAK,CAAC6E,OAAb;AACA;;AAED,WAASM,mBAAT,CAA8BnF,KAA9B,EAAsC;AACrC,WAAOoE,eAAe,CAACK,MAAhB,CACN,CAAEC,WAAF,EAAeC,EAAf,KAAuBA,EAAE,CAAED,WAAF,EAAe1E,KAAK,CAAC4E,IAArB,CADnB,EAEN5E,KAAK,CAAC6E,OAFA,CAAP;AAIA;;AAED,QAAM;AACL7E,IAAAA,KADK;AAELoF,IAAAA,QAFK;AAGLlF,IAAAA,QAHK;AAILmF,IAAAA,GAAG,EAAEC;AAJA,MAKFxI,WAAW,CAAE;AAChBkD,IAAAA,KAAK,EAAEqD,aADS;;AAEhBnD,IAAAA,QAAQ,CAAEqF,IAAF,EAAQ;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,KAAR,EAAgD;AACvDnC,MAAAA,gBAAgB,CAAEiC,IAAF,CAAhB;AACAG,MAAAA,MAAM,CAACC,MAAP,CAAerB,cAAf,EAAgCS,OAAhC,CAA2Ca,aAAF,IAAqB;AAC7DA,QAAAA,aAAa,CAAEJ,iBAAF,EAAqBC,cAArB,CAAb;AACA,OAFD;AAGA,KAPe;;AAQhB/C,IAAAA,cARgB;AAShBC,IAAAA,YATgB;AAUhBmB,IAAAA,iBAVgB;AAWhBnD,IAAAA,WAXgB;AAYhBkF,IAAAA,oBAAoB,EAAEzF,UAZN;AAahB0F,IAAAA,sBAAsB,EAAE7C,YAbR;AAchBvB,IAAAA,wBAAwB,EAAEC,cAdV;AAehBL,IAAAA,kBAfgB;AAgBhByE,IAAAA,sBAAsB,EAAE,CAAE,GAAGxB,YAAL,EAAmBxE,OAAnB,CAhBR;AAiBhBiG,IAAAA,oBAAoB,EAAExB,oBAjBN;AAkBhByB,IAAAA,yBAAyB,EAAEnB,uBAlBX;AAmBhBoB,IAAAA,6BAA6B,EAAEf;AAnBf,GAAF,CALf;AA0BA,QAAMgB,iBAAiB,GAAGhJ,+BAA+B,CAAE;AAC1DuD,IAAAA,SAD0D;AAE1D0F,IAAAA,UAAU,EAAE3F,cAF8C;AAG1D4F,IAAAA,MAAM,EAAErG,KAHkD;AAI1DE,IAAAA;AAJ0D,GAAF,CAAzD;AAOAzC,EAAAA,iBAAiB,CAAE;AAAE8H,IAAAA,IAAI,EAAElC,aAAR;AAAuBrD,IAAAA;AAAvB,GAAF,CAAjB;AAEA,QAAMsG,iBAAiB,GAAGnK,MAAM,CAAE,IAAIoK,GAAJ,EAAF,CAAhC;AACA,QAAMC,WAAW,GAAGrK,MAAM,CAAE,IAAIoK,GAAJ,EAAF,CAA1B;;AAEA,WAASE,OAAT,GAAmB;AAClBrE,IAAAA,SAAS,CAACsE,OAAV,EAAmBC,KAAnB;AACA;;AAED,QAAMC,OAAO,GAAG7G,OAAhB;AACA,SACC,8BACGK,UAAU,IACX,cAAC,uBAAD,CAAyB,QAAzB;AAAkC,IAAA,KAAK,EAAGkG;AAA1C,KACC,cAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAGE;AAApC,KACC,cAAC,OAAD,CAAS,0BAAT;AAAoC,IAAA,KAAK,EAAC;AAA1C,KACG/J,QAAQ,IACTA,QAAQ,CAAE;AAAEuD,IAAAA,KAAF;AAASE,IAAAA,QAAT;AAAmBuG,IAAAA;AAAnB,GAAF,CAFV,EAIC,cAAC,UAAD;AACC,IAAA,KAAK,EAAGzG,KADT;AAEC,IAAA,QAAQ,EAAGE,QAFZ;AAGC,IAAA,OAAO,EAAGuG,OAHX;AAIC,IAAA,WAAW,EAAGtC,WAJf;AAKC,IAAA,YAAY,EAAG/B;AALhB,IAJD,CADD,CADD,CAFF,EAmBGhC,UAAU,IAAI+C,UAAd,IACD,cAAC,sBAAD;AACC,IAAA,MAAM,EAAG5C,aADV;AAEC,IAAA,sBAAsB,EAAG6B,SAAS,CAACsE,OAFpC;AAGC,IAAA,KAAK,EAAG1G;AAHT,IApBF,EA0BC,cAAC,OAAD,CACC;AADD;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,sBAAiB,CAAE4B,iBAHpB;AAIC,kBAAajB,WAJd;AAAA,OAKM/B,KALN;AAAA,OAMMuH,iBANN;AAOC,IAAA,GAAG,EAAGvJ,YAAY,CAAE,CACnBkF,YADmB,EAEnBqE,iBAAiB,CAACd,GAFC,EAGnBzG,KAAK,CAACyG,GAHa,EAInBC,WAJmB,EAKnB3H,mBAAmB,CAAE;AAAEqC,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF,CALA,EAMnBtC,aAAa,CAAE;AACdwH,MAAAA,QADc;AAEdlF,MAAAA,QAFc;AAGd2B,MAAAA,oCAHc;AAIdsC,MAAAA,WAJc;AAKdzD,MAAAA,SALc;AAMdsC,MAAAA;AANc,KAAF,CANM,EAcnB7E,wBAAwB,EAdL,EAenBH,yBAAyB,EAfN,EAgBnBC,YAAY,CAAEqI,iBAAF,CAhBO,EAiBnBpI,cAAc,CAAEsI,WAAF,CAjBK,EAkBnBhJ,sBAAsB,EAlBH,EAmBnBE,eAAe,CAAE;AAChB0C,MAAAA,UADgB;AAEhBuB,MAAAA,cAFgB;AAGhBzB,MAAAA,QAHgB;AAIhBF,MAAAA,KAJgB;AAKhBmE,MAAAA,WALgB;AAMhBpE,MAAAA,OANgB;AAOhBW,MAAAA,SAPgB;AAQhBM,MAAAA,OARgB;AAShBI,MAAAA,aATgB;AAUhBK,MAAAA,yBAVgB;AAWhBwB,MAAAA,YAXgB;AAYhB3B,MAAAA,kBAZgB;AAahBE,MAAAA;AAbgB,KAAF,CAnBI,EAkCnB3D,SAAS,CAAE;AACVmC,MAAAA,KADU;AAEVe,MAAAA,OAFU;AAGVD,MAAAA;AAHU,KAAF,CAlCU,EAuCnBhD,QAAQ,CAAE;AACTgH,MAAAA,uBADS;AAET9E,MAAAA,KAFS;AAGTU,MAAAA,SAHS;AAITM,MAAAA,OAJS;AAKTI,MAAAA,aALS;AAMT6B,MAAAA,YANS;AAOT/C,MAAAA,QAPS;AAQT0B,MAAAA,iBARS;AASTV,MAAAA;AATS,KAAF,CAvCW,EAkDnB9C,gBAAgB,CAAE;AAAE4B,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF,CAlDG,EAmDnBkC,SAnDmB,CAAF,CAPnB;AA4DC,IAAA,eAAe,EAAG,IA5DnB;AA6DC,IAAA,8BAA8B,EAAG,IA7DlC;AA8DC,IAAA,SAAS,EAAGlG,UAAU,CACrB,kCADqB,EAErB0C,KAAK,CAACiI,SAFe,EAGrB,WAHqB;AA9DvB,IA1BD,CADD;AAiGA;;AAED,MAAMC,0BAA0B,GAAGzK,UAAU,CAAEyD,eAAF,CAA7C;AAEAgH,0BAA0B,CAACtI,OAA3B,GAAqCA,OAArC;;AACAsI,0BAA0B,CAACC,OAA3B,GAAuC/G,KAAF,IAAa;AACjD,SAAO,CAAEA,KAAF,IAAWA,KAAK,CAACoD,MAAN,KAAiB,CAAnC;AACA,CAFD;AAIA;AACA;AACA;;;AACA,eAAe0D,0BAAf;AACA,SAASE,gBAAT,QAAiC,YAAjC;AACA,SAASC,qBAAT,QAAsC,kBAAtC;AACA,SAASC,4BAAT,QAA6C,eAA7C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getMultilineTag, getAllowedFormats } from './utils';\nimport { Content } from './content';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: originalValue = '',\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tif ( multiline ) {\n\t\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'nested blocks (InnerBlocks)',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tdeprecated( 'wp.blockEditor.RichText value prop as children type', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'value prop as string',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',\n\t\t} );\n\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableMultilineTag: multilineTag,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat( { value, onChange } ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","children","childrenSource","useInstanceId","useMergeRefs","__unstableUseRichText","useRichText","__unstableCreateElement","removeFormat","deprecated","Popover","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getMultilineTag","getAllowedFormats","Content","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","forwardedRef","since","version","alternative","link","instanceId","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","selectionStart","selectionEnd","undefined","attributeKey","offset","getBlockRootClientId","selectionChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableMultilineTag","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","className","tabIndex","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getMultilineTag, getAllowedFormats } from './utils';\nimport { Content } from './content';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tsetRef,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: originalValue = '',\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tif ( multiline ) {\n\t\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'nested blocks (InnerBlocks)',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tdeprecated( 'wp.blockEditor.RichText value prop as children type', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'value prop as string',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/introducing-attributes-and-editable-fields/',\n\t\t} );\n\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableMultilineTag: multilineTag,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat( { value, onChange } ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={ props.tabIndex === 0 ? null : props.tabIndex }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|
|
@@ -331,6 +331,14 @@ body.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
|
331
331
|
.block-editor-block-contextual-toolbar:has(.block-editor-block-toolbar:empty) {
|
|
332
332
|
display: none;
|
|
333
333
|
}
|
|
334
|
+
.block-editor-block-contextual-toolbar.is-collapsed::after {
|
|
335
|
+
content: "";
|
|
336
|
+
position: absolute;
|
|
337
|
+
right: 100%;
|
|
338
|
+
width: 48px;
|
|
339
|
+
height: 100%;
|
|
340
|
+
background: linear-gradient(to left, #fff, transparent);
|
|
341
|
+
}
|
|
334
342
|
@media (min-width: 782px) {
|
|
335
343
|
.block-editor-block-contextual-toolbar.is-fixed {
|
|
336
344
|
margin-right: 180px;
|
|
@@ -475,7 +483,7 @@ body.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
|
475
483
|
width: auto;
|
|
476
484
|
}
|
|
477
485
|
.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
478
|
-
width: calc(100% -
|
|
486
|
+
width: calc(100% - 280px - 256px);
|
|
479
487
|
}
|
|
480
488
|
}
|
|
481
489
|
|
package/build-style/style.css
CHANGED
|
@@ -331,6 +331,14 @@ body.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
|
331
331
|
.block-editor-block-contextual-toolbar:has(.block-editor-block-toolbar:empty) {
|
|
332
332
|
display: none;
|
|
333
333
|
}
|
|
334
|
+
.block-editor-block-contextual-toolbar.is-collapsed::after {
|
|
335
|
+
content: "";
|
|
336
|
+
position: absolute;
|
|
337
|
+
left: 100%;
|
|
338
|
+
width: 48px;
|
|
339
|
+
height: 100%;
|
|
340
|
+
background: linear-gradient(to right, #fff, transparent);
|
|
341
|
+
}
|
|
334
342
|
@media (min-width: 782px) {
|
|
335
343
|
.block-editor-block-contextual-toolbar.is-fixed {
|
|
336
344
|
margin-left: 180px;
|
|
@@ -475,7 +483,7 @@ body.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
|
475
483
|
width: auto;
|
|
476
484
|
}
|
|
477
485
|
.is-fullscreen-mode .block-editor-block-contextual-toolbar.is-fixed {
|
|
478
|
-
width: calc(100% -
|
|
486
|
+
width: calc(100% - 280px - 256px);
|
|
479
487
|
}
|
|
480
488
|
}
|
|
481
489
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-editor",
|
|
3
|
-
"version": "12.3.
|
|
3
|
+
"version": "12.3.13",
|
|
4
4
|
"description": "Generic block editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@wordpress/a11y": "^3.35.1",
|
|
38
38
|
"@wordpress/api-fetch": "^6.32.1",
|
|
39
39
|
"@wordpress/blob": "^3.35.1",
|
|
40
|
-
"@wordpress/blocks": "^12.12.
|
|
40
|
+
"@wordpress/blocks": "^12.12.7",
|
|
41
41
|
"@wordpress/components": "^25.1.10",
|
|
42
42
|
"@wordpress/compose": "^6.12.2",
|
|
43
43
|
"@wordpress/data": "^9.5.5",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "422f6fd382771134156919d2032765e57432be7e"
|
|
89
89
|
}
|
|
@@ -33,7 +33,6 @@ import { useInBetweenInserter } from './use-in-between-inserter';
|
|
|
33
33
|
import { store as blockEditorStore } from '../../store';
|
|
34
34
|
import { usePreParsePatterns } from '../../utils/pre-parse-patterns';
|
|
35
35
|
import { LayoutProvider, defaultLayout } from './layout';
|
|
36
|
-
import BlockToolsBackCompat from '../block-tools/back-compat';
|
|
37
36
|
import { useBlockSelectionClearer } from '../block-selection-clearer';
|
|
38
37
|
import { useInnerBlocksProps } from '../inner-blocks';
|
|
39
38
|
import {
|
|
@@ -127,11 +126,9 @@ function Root( { className, ...settings } ) {
|
|
|
127
126
|
export default function BlockList( settings ) {
|
|
128
127
|
usePreParsePatterns();
|
|
129
128
|
return (
|
|
130
|
-
<
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
</BlockEditContextProvider>
|
|
134
|
-
</BlockToolsBackCompat>
|
|
129
|
+
<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>
|
|
130
|
+
<Root { ...settings } />
|
|
131
|
+
</BlockEditContextProvider>
|
|
135
132
|
);
|
|
136
133
|
}
|
|
137
134
|
|
|
@@ -32,48 +32,56 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
|
|
|
32
32
|
const toolbarButtonRef = useRef();
|
|
33
33
|
|
|
34
34
|
const isLargeViewport = useViewportMatch( 'medium' );
|
|
35
|
-
const {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
const {
|
|
36
|
+
blockType,
|
|
37
|
+
hasParents,
|
|
38
|
+
showParentSelector,
|
|
39
|
+
selectedBlockClientId,
|
|
40
|
+
isContentOnly,
|
|
41
|
+
} = useSelect( ( select ) => {
|
|
42
|
+
const {
|
|
43
|
+
getBlockName,
|
|
44
|
+
getBlockParents,
|
|
45
|
+
getSelectedBlockClientIds,
|
|
46
|
+
getBlockEditingMode,
|
|
47
|
+
} = unlock( select( blockEditorStore ) );
|
|
48
|
+
const { getBlockType } = select( blocksStore );
|
|
49
|
+
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
50
|
+
const _selectedBlockClientId = selectedBlockClientIds[ 0 ];
|
|
51
|
+
const parents = getBlockParents( _selectedBlockClientId );
|
|
52
|
+
const firstParentClientId = parents[ parents.length - 1 ];
|
|
53
|
+
const parentBlockName = getBlockName( firstParentClientId );
|
|
54
|
+
const parentBlockType = getBlockType( parentBlockName );
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
return {
|
|
57
|
+
selectedBlockClientId: _selectedBlockClientId,
|
|
58
|
+
blockType:
|
|
59
|
+
_selectedBlockClientId &&
|
|
60
|
+
getBlockType( getBlockName( _selectedBlockClientId ) ),
|
|
61
|
+
hasParents: parents.length,
|
|
62
|
+
isContentOnly:
|
|
63
|
+
getBlockEditingMode( _selectedBlockClientId ) === 'contentOnly',
|
|
64
|
+
showParentSelector:
|
|
65
|
+
parentBlockType &&
|
|
66
|
+
getBlockEditingMode( firstParentClientId ) === 'default' &&
|
|
67
|
+
hasBlockSupport(
|
|
68
|
+
parentBlockType,
|
|
69
|
+
'__experimentalParentSelector',
|
|
70
|
+
true
|
|
71
|
+
) &&
|
|
72
|
+
selectedBlockClientIds.length <= 1 &&
|
|
73
|
+
getBlockEditingMode( _selectedBlockClientId ) === 'default',
|
|
74
|
+
};
|
|
75
|
+
}, [] );
|
|
69
76
|
|
|
70
77
|
useEffect( () => {
|
|
71
78
|
setIsCollapsed( false );
|
|
72
79
|
}, [ selectedBlockClientId ] );
|
|
73
80
|
|
|
74
81
|
if (
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
isContentOnly ||
|
|
83
|
+
( blockType &&
|
|
84
|
+
! hasBlockSupport( blockType, '__experimentalToolbar', true ) )
|
|
77
85
|
) {
|
|
78
86
|
return null;
|
|
79
87
|
}
|
|
@@ -125,9 +125,18 @@
|
|
|
125
125
|
display: none;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
// Add a scrim to the right of the collapsed button.
|
|
129
|
+
&.is-collapsed::after {
|
|
130
|
+
content: "";
|
|
131
|
+
position: absolute;
|
|
132
|
+
left: 100%;
|
|
133
|
+
width: $grid-unit-60;
|
|
134
|
+
height: 100%;
|
|
135
|
+
background: linear-gradient(to right, $white, transparent);
|
|
136
|
+
}
|
|
137
|
+
|
|
128
138
|
// on desktop and tablet viewports the toolbar is fixed
|
|
129
139
|
// on top of interface header
|
|
130
|
-
|
|
131
140
|
@include break-medium() {
|
|
132
141
|
&.is-fixed {
|
|
133
142
|
|
|
@@ -308,7 +317,7 @@
|
|
|
308
317
|
}
|
|
309
318
|
}
|
|
310
319
|
|
|
311
|
-
// on tablet
|
|
320
|
+
// on tablet viewports the toolbar is fixed
|
|
312
321
|
// on top of interface header and covers the whole header
|
|
313
322
|
// except for the inserter on the left
|
|
314
323
|
@include break-medium() {
|
|
@@ -328,7 +337,7 @@
|
|
|
328
337
|
// in full screen mode we need to account for
|
|
329
338
|
// the combined with of the tools at the right of the header and the margin left
|
|
330
339
|
// of the toolbar which includes four buttons
|
|
331
|
-
width: calc(100% -
|
|
340
|
+
width: calc(100% - 280px - #{4 * $grid-unit-80});
|
|
332
341
|
}
|
|
333
342
|
}
|
|
334
343
|
}
|
|
@@ -198,6 +198,7 @@ export function useClipboardHandler() {
|
|
|
198
198
|
if ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {
|
|
199
199
|
removeBlocks( selectedBlockClientIds );
|
|
200
200
|
} else {
|
|
201
|
+
event.target.ownerDocument.activeElement.contentEditable = false;
|
|
201
202
|
__unstableDeleteSelection();
|
|
202
203
|
}
|
|
203
204
|
} else if ( event.type === 'paste' ) {
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
createBlock,
|
|
6
6
|
createBlocksFromInnerBlocksTemplate,
|
|
7
7
|
store as blocksStore,
|
|
8
|
+
parse,
|
|
8
9
|
} from '@wordpress/blocks';
|
|
9
10
|
import { useSelect } from '@wordpress/data';
|
|
10
11
|
import { useCallback } from '@wordpress/element';
|
|
@@ -37,12 +38,20 @@ const useBlockTypesState = ( rootClientId, onInsert ) => {
|
|
|
37
38
|
);
|
|
38
39
|
|
|
39
40
|
const onSelectItem = useCallback(
|
|
40
|
-
(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
(
|
|
42
|
+
{ name, initialAttributes, innerBlocks, syncStatus, content },
|
|
43
|
+
shouldFocusBlock
|
|
44
|
+
) => {
|
|
45
|
+
const insertedBlock =
|
|
46
|
+
syncStatus === 'unsynced'
|
|
47
|
+
? parse( content, {
|
|
48
|
+
__unstableSkipMigrationLogs: true,
|
|
49
|
+
} )
|
|
50
|
+
: createBlock(
|
|
51
|
+
name,
|
|
52
|
+
initialAttributes,
|
|
53
|
+
createBlocksFromInnerBlocksTemplate( innerBlocks )
|
|
54
|
+
);
|
|
46
55
|
|
|
47
56
|
onInsert( insertedBlock, undefined, shouldFocusBlock );
|
|
48
57
|
},
|
|
@@ -49,7 +49,9 @@ function InserterListItem( {
|
|
|
49
49
|
];
|
|
50
50
|
}, [ item.name, item.initialAttributes, item.initialAttributes ] );
|
|
51
51
|
|
|
52
|
-
const isSynced =
|
|
52
|
+
const isSynced =
|
|
53
|
+
( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||
|
|
54
|
+
isTemplatePart( item );
|
|
53
55
|
|
|
54
56
|
return (
|
|
55
57
|
<InserterDraggableBlocks
|
|
@@ -18,13 +18,13 @@ import { Content } from './content';
|
|
|
18
18
|
* except that it does not render the elements to a string, but instead collects
|
|
19
19
|
* the values of all rich text `Content` elements.
|
|
20
20
|
*/
|
|
21
|
-
function addValuesForElement( element,
|
|
21
|
+
function addValuesForElement( element, values, innerBlocks ) {
|
|
22
22
|
if ( null === element || undefined === element || false === element ) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
if ( Array.isArray( element ) ) {
|
|
27
|
-
return addValuesForElements( element,
|
|
27
|
+
return addValuesForElements( element, values, innerBlocks );
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
switch ( typeof element ) {
|
|
@@ -38,13 +38,12 @@ function addValuesForElement( element, ...args ) {
|
|
|
38
38
|
switch ( type ) {
|
|
39
39
|
case StrictMode:
|
|
40
40
|
case Fragment:
|
|
41
|
-
return addValuesForElements( props.children,
|
|
41
|
+
return addValuesForElements( props.children, values, innerBlocks );
|
|
42
42
|
case RawHTML:
|
|
43
43
|
return;
|
|
44
44
|
case InnerBlocks.Content:
|
|
45
|
-
return addValuesForBlocks(
|
|
45
|
+
return addValuesForBlocks( values, innerBlocks );
|
|
46
46
|
case Content:
|
|
47
|
-
const [ values ] = args;
|
|
48
47
|
values.push( props.value );
|
|
49
48
|
return;
|
|
50
49
|
}
|
|
@@ -52,21 +51,19 @@ function addValuesForElement( element, ...args ) {
|
|
|
52
51
|
switch ( typeof type ) {
|
|
53
52
|
case 'string':
|
|
54
53
|
if ( typeof props.children !== 'undefined' ) {
|
|
55
|
-
return addValuesForElements(
|
|
54
|
+
return addValuesForElements(
|
|
55
|
+
props.children,
|
|
56
|
+
values,
|
|
57
|
+
innerBlocks
|
|
58
|
+
);
|
|
56
59
|
}
|
|
57
60
|
return;
|
|
58
61
|
case 'function':
|
|
59
|
-
|
|
60
|
-
type.prototype &&
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
new type( props ).render(),
|
|
65
|
-
...args
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return addValuesForElement( type( props ), ...args );
|
|
62
|
+
const el =
|
|
63
|
+
type.prototype && typeof type.prototype.render === 'function'
|
|
64
|
+
? new type( props ).render()
|
|
65
|
+
: type( props );
|
|
66
|
+
return addValuesForElement( el, values, innerBlocks );
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
69
|
|
|
@@ -78,20 +75,17 @@ function addValuesForElements( children, ...args ) {
|
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
function _getSaveElement( name, attributes, innerBlocks ) {
|
|
82
|
-
return getSaveElement(
|
|
83
|
-
name,
|
|
84
|
-
attributes,
|
|
85
|
-
innerBlocks.map( ( block ) =>
|
|
86
|
-
_getSaveElement( block.name, block.attributes, block.innerBlocks )
|
|
87
|
-
)
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
78
|
function addValuesForBlocks( values, blocks ) {
|
|
92
79
|
for ( let i = 0; i < blocks.length; i++ ) {
|
|
93
80
|
const { name, attributes, innerBlocks } = blocks[ i ];
|
|
94
|
-
const saveElement =
|
|
81
|
+
const saveElement = getSaveElement(
|
|
82
|
+
name,
|
|
83
|
+
attributes,
|
|
84
|
+
// Instead of letting save elements use `useInnerBlocksProps.save`,
|
|
85
|
+
// force them to use InnerBlocks.Content instead so we can intercept
|
|
86
|
+
// a single component.
|
|
87
|
+
<InnerBlocks.Content />
|
|
88
|
+
);
|
|
95
89
|
addValuesForElement( saveElement, values, innerBlocks );
|
|
96
90
|
}
|
|
97
91
|
}
|
|
@@ -412,6 +412,13 @@ function RichTextWrapper(
|
|
|
412
412
|
props.className,
|
|
413
413
|
'rich-text'
|
|
414
414
|
) }
|
|
415
|
+
// Setting tabIndex to 0 is unnecessary, the element is already
|
|
416
|
+
// focusable because it's contentEditable. This also fixes a
|
|
417
|
+
// Safari bug where it's not possible to Shift+Click multi
|
|
418
|
+
// select blocks when Shift Clicking into an element with
|
|
419
|
+
// tabIndex because Safari will focus the element. However,
|
|
420
|
+
// Safari will correctly ignore nested contentEditable elements.
|
|
421
|
+
tabIndex={ props.tabIndex === 0 ? null : props.tabIndex }
|
|
415
422
|
/>
|
|
416
423
|
</>
|
|
417
424
|
);
|