@wordpress/format-library 4.11.0 → 4.12.1

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.
Files changed (100) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bold/index.js +6 -8
  3. package/build/bold/index.js.map +1 -1
  4. package/build/code/index.js +6 -8
  5. package/build/code/index.js.map +1 -1
  6. package/build/image/index.js +24 -28
  7. package/build/image/index.js.map +1 -1
  8. package/build/index.js +4 -7
  9. package/build/index.js.map +1 -1
  10. package/build/italic/index.js +6 -8
  11. package/build/italic/index.js.map +1 -1
  12. package/build/keyboard/index.js +6 -8
  13. package/build/keyboard/index.js.map +1 -1
  14. package/build/language/index.js +31 -20
  15. package/build/language/index.js.map +1 -1
  16. package/build/link/index.js +17 -17
  17. package/build/link/index.js.map +1 -1
  18. package/build/link/index.native.js +2 -6
  19. package/build/link/index.native.js.map +1 -1
  20. package/build/link/inline.js +11 -11
  21. package/build/link/inline.js.map +1 -1
  22. package/build/link/modal-screens/link-picker-screen.native.js +4 -6
  23. package/build/link/modal-screens/link-picker-screen.native.js.map +1 -1
  24. package/build/link/modal-screens/link-settings-screen.native.js +25 -33
  25. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  26. package/build/link/modal.native.js +8 -10
  27. package/build/link/modal.native.js.map +1 -1
  28. package/build/link/utils.js +18 -44
  29. package/build/link/utils.js.map +1 -1
  30. package/build/strikethrough/index.js +6 -8
  31. package/build/strikethrough/index.js.map +1 -1
  32. package/build/subscript/index.js +6 -8
  33. package/build/subscript/index.js.map +1 -1
  34. package/build/superscript/index.js +6 -8
  35. package/build/superscript/index.js.map +1 -1
  36. package/build/text-color/index.js +11 -14
  37. package/build/text-color/index.js.map +1 -1
  38. package/build/text-color/index.native.js +16 -23
  39. package/build/text-color/index.native.js.map +1 -1
  40. package/build/text-color/inline.js +15 -21
  41. package/build/text-color/inline.js.map +1 -1
  42. package/build/text-color/inline.native.js +16 -24
  43. package/build/text-color/inline.native.js.map +1 -1
  44. package/build/underline/index.js +4 -6
  45. package/build/underline/index.js.map +1 -1
  46. package/build/unknown/index.js +6 -8
  47. package/build/unknown/index.js.map +1 -1
  48. package/build-module/bold/index.js +6 -8
  49. package/build-module/bold/index.js.map +1 -1
  50. package/build-module/code/index.js +6 -8
  51. package/build-module/code/index.js.map +1 -1
  52. package/build-module/image/index.js +24 -28
  53. package/build-module/image/index.js.map +1 -1
  54. package/build-module/index.js +4 -7
  55. package/build-module/index.js.map +1 -1
  56. package/build-module/italic/index.js +6 -8
  57. package/build-module/italic/index.js.map +1 -1
  58. package/build-module/keyboard/index.js +6 -8
  59. package/build-module/keyboard/index.js.map +1 -1
  60. package/build-module/language/index.js +31 -20
  61. package/build-module/language/index.js.map +1 -1
  62. package/build-module/link/index.js +17 -17
  63. package/build-module/link/index.js.map +1 -1
  64. package/build-module/link/index.native.js +2 -6
  65. package/build-module/link/index.native.js.map +1 -1
  66. package/build-module/link/inline.js +11 -11
  67. package/build-module/link/inline.js.map +1 -1
  68. package/build-module/link/modal-screens/link-picker-screen.native.js +4 -5
  69. package/build-module/link/modal-screens/link-picker-screen.native.js.map +1 -1
  70. package/build-module/link/modal-screens/link-settings-screen.native.js +25 -33
  71. package/build-module/link/modal-screens/link-settings-screen.native.js.map +1 -1
  72. package/build-module/link/modal.native.js +8 -9
  73. package/build-module/link/modal.native.js.map +1 -1
  74. package/build-module/link/utils.js +18 -44
  75. package/build-module/link/utils.js.map +1 -1
  76. package/build-module/strikethrough/index.js +6 -8
  77. package/build-module/strikethrough/index.js.map +1 -1
  78. package/build-module/subscript/index.js +6 -8
  79. package/build-module/subscript/index.js.map +1 -1
  80. package/build-module/superscript/index.js +6 -8
  81. package/build-module/superscript/index.js.map +1 -1
  82. package/build-module/text-color/index.js +11 -14
  83. package/build-module/text-color/index.js.map +1 -1
  84. package/build-module/text-color/index.native.js +16 -23
  85. package/build-module/text-color/index.native.js.map +1 -1
  86. package/build-module/text-color/inline.js +15 -21
  87. package/build-module/text-color/inline.js.map +1 -1
  88. package/build-module/text-color/inline.native.js +16 -24
  89. package/build-module/text-color/inline.native.js.map +1 -1
  90. package/build-module/underline/index.js +4 -6
  91. package/build-module/underline/index.js.map +1 -1
  92. package/build-module/unknown/index.js +6 -8
  93. package/build-module/unknown/index.js.map +1 -1
  94. package/package.json +13 -13
  95. package/src/language/index.js +73 -66
  96. package/src/link/index.js +4 -2
  97. package/src/link/inline.js +1 -0
  98. package/src/link/test/__snapshots__/modal.native.js.snap +476 -0
  99. package/src/link/test/index.native.js +15 -15
  100. package/src/link/test/modal.native.js +5 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/code/index.js"],"names":["__","toggleFormat","remove","applyFormat","RichTextToolbarButton","RichTextShortcut","code","codeIcon","name","title","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","type","edit","onChange","onFocus","isActive","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,EAAuBC,MAAvB,EAA+BC,WAA/B,QAAkD,sBAAlD;AACA,SACCC,qBADD,EAECC,gBAFD,QAGO,yBAHP;AAIA,SAASC,IAAI,IAAIC,QAAjB,QAAiC,kBAAjC;AAEA,MAAMC,IAAI,GAAG,WAAb;;AACA,MAAMC,KAAK,GAAGT,EAAE,CAAE,aAAF,CAAhB;;AAEA,OAAO,MAAMM,IAAI,GAAG;AACnBE,EAAAA,IADmB;AAEnBC,EAAAA,KAFmB;AAGnBC,EAAAA,OAAO,EAAE,MAHU;AAInBC,EAAAA,SAAS,EAAE,IAJQ;;AAKnBC,EAAAA,mBAAmB,CAAEC,KAAF,EAAU;AAC5B,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAkBH,KAAxB;AACA,UAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAV,CAA5B,CAH4B,CAK5B;;AACA,QAAKE,eAAe,KAAKH,QAAzB,EAAoC;AACnC,aAAOD,KAAP;AACA;;AAED,QAAKE,KAAK,GAAG,CAAR,GAAY,CAAjB,EAAqB;AACpB,aAAOF,KAAP;AACA;;AAED,UAAMK,WAAW,GAAGF,IAAI,CAACG,WAAL,CAAkBL,QAAlB,EAA4BC,KAAK,GAAG,CAApC,CAApB;;AACA,QAAKG,WAAW,KAAK,CAAC,CAAtB,EAA0B;AACzB,aAAOL,KAAP;AACA;;AAED,UAAMO,UAAU,GAAGF,WAAnB;AACA,UAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAzB;;AAEA,QAAKK,UAAU,KAAKC,QAApB,EAA+B;AAC9B,aAAOR,KAAP;AACA;;AAEDA,IAAAA,KAAK,GAAGX,MAAM,CAAEW,KAAF,EAASO,UAAT,EAAqBA,UAAU,GAAG,CAAlC,CAAd;AACAP,IAAAA,KAAK,GAAGX,MAAM,CAAEW,KAAF,EAASQ,QAAT,EAAmBA,QAAQ,GAAG,CAA9B,CAAd;AACAR,IAAAA,KAAK,GAAGV,WAAW,CAAEU,KAAF,EAAS;AAAES,MAAAA,IAAI,EAAEd;AAAR,KAAT,EAAyBY,UAAzB,EAAqCC,QAArC,CAAnB;AAEA,WAAOR,KAAP;AACA,GApCkB;;AAqCnBU,EAAAA,IAAI,OAA2C;AAAA,QAAzC;AAAEV,MAAAA,KAAF;AAASW,MAAAA,QAAT;AAAmBC,MAAAA,OAAnB;AAA4BC,MAAAA;AAA5B,KAAyC;;AAC9C,aAASC,OAAT,GAAmB;AAClBH,MAAAA,QAAQ,CAAEvB,YAAY,CAAEY,KAAF,EAAS;AAAES,QAAAA,IAAI,EAAEd,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACAgB,MAAAA,OAAO;AACP;;AAED,WACC,8BACC,cAAC,gBAAD;AACC,MAAA,IAAI,EAAC,QADN;AAEC,MAAA,SAAS,EAAC,GAFX;AAGC,MAAA,KAAK,EAAGE;AAHT,MADD,EAMC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAGpB,QADR;AAEC,MAAA,KAAK,EAAGE,KAFT;AAGC,MAAA,OAAO,EAAGkB,OAHX;AAIC,MAAA,QAAQ,EAAGD,QAJZ;AAKC,MAAA,IAAI,EAAC;AALN,MAND,CADD;AAgBA;;AA3DkB,CAAb","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/code/index.js"],"names":["__","toggleFormat","remove","applyFormat","RichTextToolbarButton","RichTextShortcut","code","codeIcon","name","title","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","type","edit","onChange","onFocus","isActive","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,EAAuBC,MAAvB,EAA+BC,WAA/B,QAAkD,sBAAlD;AACA,SACCC,qBADD,EAECC,gBAFD,QAGO,yBAHP;AAIA,SAASC,IAAI,IAAIC,QAAjB,QAAiC,kBAAjC;AAEA,MAAMC,IAAI,GAAG,WAAb;;AACA,MAAMC,KAAK,GAAGT,EAAE,CAAE,aAAF,CAAhB;;AAEA,OAAO,MAAMM,IAAI,GAAG;AACnBE,EAAAA,IADmB;AAEnBC,EAAAA,KAFmB;AAGnBC,EAAAA,OAAO,EAAE,MAHU;AAInBC,EAAAA,SAAS,EAAE,IAJQ;;AAKnBC,EAAAA,mBAAmB,CAAEC,KAAF,EAAU;AAC5B,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAkBH,KAAxB;AACA,UAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAV,CAA5B,CAH4B,CAK5B;;AACA,QAAKE,eAAe,KAAKH,QAAzB,EAAoC;AACnC,aAAOD,KAAP;AACA;;AAED,QAAKE,KAAK,GAAG,CAAR,GAAY,CAAjB,EAAqB;AACpB,aAAOF,KAAP;AACA;;AAED,UAAMK,WAAW,GAAGF,IAAI,CAACG,WAAL,CAAkBL,QAAlB,EAA4BC,KAAK,GAAG,CAApC,CAApB;;AACA,QAAKG,WAAW,KAAK,CAAC,CAAtB,EAA0B;AACzB,aAAOL,KAAP;AACA;;AAED,UAAMO,UAAU,GAAGF,WAAnB;AACA,UAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAzB;;AAEA,QAAKK,UAAU,KAAKC,QAApB,EAA+B;AAC9B,aAAOR,KAAP;AACA;;AAEDA,IAAAA,KAAK,GAAGX,MAAM,CAAEW,KAAF,EAASO,UAAT,EAAqBA,UAAU,GAAG,CAAlC,CAAd;AACAP,IAAAA,KAAK,GAAGX,MAAM,CAAEW,KAAF,EAASQ,QAAT,EAAmBA,QAAQ,GAAG,CAA9B,CAAd;AACAR,IAAAA,KAAK,GAAGV,WAAW,CAAEU,KAAF,EAAS;AAAES,MAAAA,IAAI,EAAEd;AAAR,KAAT,EAAyBY,UAAzB,EAAqCC,QAArC,CAAnB;AAEA,WAAOR,KAAP;AACA,GApCkB;;AAqCnBU,EAAAA,IAAI,CAAE;AAAEV,IAAAA,KAAF;AAASW,IAAAA,QAAT;AAAmBC,IAAAA,OAAnB;AAA4BC,IAAAA;AAA5B,GAAF,EAA2C;AAC9C,aAASC,OAAT,GAAmB;AAClBH,MAAAA,QAAQ,CAAEvB,YAAY,CAAEY,KAAF,EAAS;AAAES,QAAAA,IAAI,EAAEd,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACAgB,MAAAA,OAAO;AACP;;AAED,WACC,8BACC,cAAC,gBAAD;AACC,MAAA,IAAI,EAAC,QADN;AAEC,MAAA,SAAS,EAAC,GAFX;AAGC,MAAA,KAAK,EAAGE;AAHT,MADD,EAMC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAGpB,QADR;AAEC,MAAA,KAAK,EAAGE,KAFT;AAGC,MAAA,OAAO,EAAGkB,OAHX;AAIC,MAAA,QAAQ,EAAGD,QAJZ;AAKC,MAAA,IAAI,EAAC;AALN,MAND,CADD;AAgBA;;AA3DkB,CAAb","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"]}
@@ -30,17 +30,16 @@ export const image = {
30
30
  edit: Edit
31
31
  };
32
32
 
33
- function InlineUI(_ref) {
34
- let {
35
- value,
36
- onChange,
37
- activeObjectAttributes,
38
- contentRef
39
- } = _ref;
33
+ function InlineUI({
34
+ value,
35
+ onChange,
36
+ activeObjectAttributes,
37
+ contentRef
38
+ }) {
40
39
  const {
41
40
  style
42
41
  } = activeObjectAttributes;
43
- const [width, setWidth] = useState(style === null || style === void 0 ? void 0 : style.replace(/\D/g, ''));
42
+ const [width, setWidth] = useState(style?.replace(/\D/g, ''));
44
43
  const popoverAnchor = useAnchor({
45
44
  editableContentElement: contentRef.current,
46
45
  settings: image
@@ -82,15 +81,14 @@ function InlineUI(_ref) {
82
81
  }))));
83
82
  }
84
83
 
85
- function Edit(_ref2) {
86
- let {
87
- value,
88
- onChange,
89
- onFocus,
90
- isObjectActive,
91
- activeObjectAttributes,
92
- contentRef
93
- } = _ref2;
84
+ function Edit({
85
+ value,
86
+ onChange,
87
+ onFocus,
88
+ isObjectActive,
89
+ activeObjectAttributes,
90
+ contentRef
91
+ }) {
94
92
  const [isModalOpen, setIsModalOpen] = useState(false);
95
93
 
96
94
  function openModal() {
@@ -113,13 +111,12 @@ function Edit(_ref2) {
113
111
  isActive: isObjectActive
114
112
  }), isModalOpen && createElement(MediaUpload, {
115
113
  allowedTypes: ALLOWED_MEDIA_TYPES,
116
- onSelect: _ref3 => {
117
- let {
118
- id,
119
- url,
120
- alt,
121
- width: imgWidth
122
- } = _ref3;
114
+ onSelect: ({
115
+ id,
116
+ url,
117
+ alt,
118
+ width: imgWidth
119
+ }) => {
123
120
  closeModal();
124
121
  onChange(insertObject(value, {
125
122
  type: name,
@@ -133,10 +130,9 @@ function Edit(_ref2) {
133
130
  onFocus();
134
131
  },
135
132
  onClose: closeModal,
136
- render: _ref4 => {
137
- let {
138
- open
139
- } = _ref4;
133
+ render: ({
134
+ open
135
+ }) => {
140
136
  open();
141
137
  return null;
142
138
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/image/index.js"],"names":["Path","SVG","Popover","Button","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","keyboardReturn","ALLOWED_MEDIA_TYPES","name","title","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","replace","popoverAnchor","editableContentElement","current","settings","event","newReplacements","replacements","slice","start","type","preventDefault","newWidth","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","id","imgWidth","Math","min","open"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/image/index.js"],"names":["Path","SVG","Popover","Button","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","keyboardReturn","ALLOWED_MEDIA_TYPES","name","title","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","replace","popoverAnchor","editableContentElement","current","settings","event","newReplacements","replacements","slice","start","type","preventDefault","newWidth","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","id","imgWidth","Math","min","open"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"]}
@@ -7,11 +7,8 @@ import { registerFormatType } from '@wordpress/rich-text';
7
7
  */
8
8
 
9
9
  import formats from './default-formats';
10
- formats.forEach(_ref => {
11
- let {
12
- name,
13
- ...settings
14
- } = _ref;
15
- return registerFormatType(name, settings);
16
- });
10
+ formats.forEach(({
11
+ name,
12
+ ...settings
13
+ }) => registerFormatType(name, settings));
17
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/index.js"],"names":["registerFormatType","formats","forEach","name","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,kBAAT,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,mBAApB;AAEAA,OAAO,CAACC,OAAR,CAAiB;AAAA,MAAE;AAAEC,IAAAA,IAAF;AAAQ,OAAGC;AAAX,GAAF;AAAA,SAChBJ,kBAAkB,CAAEG,IAAF,EAAQC,QAAR,CADF;AAAA,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport formats from './default-formats';\n\nformats.forEach( ( { name, ...settings } ) =>\n\tregisterFormatType( name, settings )\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/index.js"],"names":["registerFormatType","formats","forEach","name","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,kBAAT,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,mBAApB;AAEAA,OAAO,CAACC,OAAR,CAAiB,CAAE;AAAEC,EAAAA,IAAF;AAAQ,KAAGC;AAAX,CAAF,KAChBJ,kBAAkB,CAAEG,IAAF,EAAQC,QAAR,CADnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport formats from './default-formats';\n\nformats.forEach( ( { name, ...settings } ) =>\n\tregisterFormatType( name, settings )\n);\n"]}
@@ -17,14 +17,12 @@ export const italic = {
17
17
  tagName: 'em',
18
18
  className: null,
19
19
 
20
- edit(_ref) {
21
- let {
22
- isActive,
23
- value,
24
- onChange,
25
- onFocus
26
- } = _ref;
27
-
20
+ edit({
21
+ isActive,
22
+ value,
23
+ onChange,
24
+ onFocus
25
+ }) {
28
26
  function onToggle() {
29
27
  onChange(toggleFormat(value, {
30
28
  type: name,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/italic/index.js"],"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatItalic","name","title","italic","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SACCC,qBADD,EAECC,gBAFD,EAGCC,4BAHD,QAIO,yBAJP;AAKA,SAASC,YAAT,QAA6B,kBAA7B;AAEA,MAAMC,IAAI,GAAG,aAAb;;AACA,MAAMC,KAAK,GAAGP,EAAE,CAAE,QAAF,CAAhB;;AAEA,OAAO,MAAMQ,MAAM,GAAG;AACrBF,EAAAA,IADqB;AAErBC,EAAAA,KAFqB;AAGrBE,EAAAA,OAAO,EAAE,IAHY;AAIrBC,EAAAA,SAAS,EAAE,IAJU;;AAKrBC,EAAAA,IAAI,OAA2C;AAAA,QAAzC;AAAEC,MAAAA,QAAF;AAAYC,MAAAA,KAAZ;AAAmBC,MAAAA,QAAnB;AAA6BC,MAAAA;AAA7B,KAAyC;;AAC9C,aAASC,QAAT,GAAoB;AACnBF,MAAAA,QAAQ,CAAEb,YAAY,CAAEY,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACA;;AAED,aAASW,OAAT,GAAmB;AAClBJ,MAAAA,QAAQ,CAAEb,YAAY,CAAEY,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX;AAAR,OAAT,CAAd,CAAR;AACAS,MAAAA,OAAO;AACP;;AAED,WACC,8BACC,cAAC,gBAAD;AACC,MAAA,IAAI,EAAC,SADN;AAEC,MAAA,SAAS,EAAC,GAFX;AAGC,MAAA,KAAK,EAAGC;AAHT,MADD,EAMC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAC,QADN;AAEC,MAAA,IAAI,EAAGX,YAFR;AAGC,MAAA,KAAK,EAAGE,KAHT;AAIC,MAAA,OAAO,EAAGW,OAJX;AAKC,MAAA,QAAQ,EAAGN,QALZ;AAMC,MAAA,YAAY,EAAC,SANd;AAOC,MAAA,iBAAiB,EAAC;AAPnB,MAND,EAeC,cAAC,4BAAD;AACC,MAAA,SAAS,EAAC,cADX;AAEC,MAAA,OAAO,EAAGI;AAFX,MAfD,CADD;AAsBA;;AArCoB,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/italic/index.js"],"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatItalic","name","title","italic","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SACCC,qBADD,EAECC,gBAFD,EAGCC,4BAHD,QAIO,yBAJP;AAKA,SAASC,YAAT,QAA6B,kBAA7B;AAEA,MAAMC,IAAI,GAAG,aAAb;;AACA,MAAMC,KAAK,GAAGP,EAAE,CAAE,QAAF,CAAhB;;AAEA,OAAO,MAAMQ,MAAM,GAAG;AACrBF,EAAAA,IADqB;AAErBC,EAAAA,KAFqB;AAGrBE,EAAAA,OAAO,EAAE,IAHY;AAIrBC,EAAAA,SAAS,EAAE,IAJU;;AAKrBC,EAAAA,IAAI,CAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA,QAAnB;AAA6BC,IAAAA;AAA7B,GAAF,EAA2C;AAC9C,aAASC,QAAT,GAAoB;AACnBF,MAAAA,QAAQ,CAAEb,YAAY,CAAEY,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACA;;AAED,aAASW,OAAT,GAAmB;AAClBJ,MAAAA,QAAQ,CAAEb,YAAY,CAAEY,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX;AAAR,OAAT,CAAd,CAAR;AACAS,MAAAA,OAAO;AACP;;AAED,WACC,8BACC,cAAC,gBAAD;AACC,MAAA,IAAI,EAAC,SADN;AAEC,MAAA,SAAS,EAAC,GAFX;AAGC,MAAA,KAAK,EAAGC;AAHT,MADD,EAMC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAC,QADN;AAEC,MAAA,IAAI,EAAGX,YAFR;AAGC,MAAA,KAAK,EAAGE,KAHT;AAIC,MAAA,OAAO,EAAGW,OAJX;AAKC,MAAA,QAAQ,EAAGN,QALZ;AAMC,MAAA,YAAY,EAAC,SANd;AAOC,MAAA,iBAAiB,EAAC;AAPnB,MAND,EAeC,cAAC,4BAAD;AACC,MAAA,SAAS,EAAC,cADX;AAEC,MAAA,OAAO,EAAGI;AAFX,MAfD,CADD;AAsBA;;AArCoB,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"]}
@@ -17,14 +17,12 @@ export const keyboard = {
17
17
  tagName: 'kbd',
18
18
  className: null,
19
19
 
20
- edit(_ref) {
21
- let {
22
- isActive,
23
- value,
24
- onChange,
25
- onFocus
26
- } = _ref;
27
-
20
+ edit({
21
+ isActive,
22
+ value,
23
+ onChange,
24
+ onFocus
25
+ }) {
28
26
  function onToggle() {
29
27
  onChange(toggleFormat(value, {
30
28
  type: name,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/keyboard/index.js"],"names":["__","toggleFormat","RichTextToolbarButton","button","name","title","keyboard","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SAASC,qBAAT,QAAsC,yBAAtC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAEA,MAAMC,IAAI,GAAG,eAAb;;AACA,MAAMC,KAAK,GAAGL,EAAE,CAAE,gBAAF,CAAhB;;AAEA,OAAO,MAAMM,QAAQ,GAAG;AACvBF,EAAAA,IADuB;AAEvBC,EAAAA,KAFuB;AAGvBE,EAAAA,OAAO,EAAE,KAHc;AAIvBC,EAAAA,SAAS,EAAE,IAJY;;AAKvBC,EAAAA,IAAI,OAA2C;AAAA,QAAzC;AAAEC,MAAAA,QAAF;AAAYC,MAAAA,KAAZ;AAAmBC,MAAAA,QAAnB;AAA6BC,MAAAA;AAA7B,KAAyC;;AAC9C,aAASC,QAAT,GAAoB;AACnBF,MAAAA,QAAQ,CAAEX,YAAY,CAAEU,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACA;;AAED,aAASW,OAAT,GAAmB;AAClBF,MAAAA,QAAQ;AACRD,MAAAA,OAAO;AACP;;AAED,WACC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAGV,MADR;AAEC,MAAA,KAAK,EAAGE,KAFT;AAGC,MAAA,OAAO,EAAGW,OAHX;AAIC,MAAA,QAAQ,EAAGN,QAJZ;AAKC,MAAA,IAAI,EAAC;AALN,MADD;AASA;;AAxBsB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ button }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/keyboard/index.js"],"names":["__","toggleFormat","RichTextToolbarButton","button","name","title","keyboard","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,sBAA7B;AACA,SAASC,qBAAT,QAAsC,yBAAtC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAEA,MAAMC,IAAI,GAAG,eAAb;;AACA,MAAMC,KAAK,GAAGL,EAAE,CAAE,gBAAF,CAAhB;;AAEA,OAAO,MAAMM,QAAQ,GAAG;AACvBF,EAAAA,IADuB;AAEvBC,EAAAA,KAFuB;AAGvBE,EAAAA,OAAO,EAAE,KAHc;AAIvBC,EAAAA,SAAS,EAAE,IAJY;;AAKvBC,EAAAA,IAAI,CAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA,QAAnB;AAA6BC,IAAAA;AAA7B,GAAF,EAA2C;AAC9C,aAASC,QAAT,GAAoB;AACnBF,MAAAA,QAAQ,CAAEX,YAAY,CAAEU,KAAF,EAAS;AAAEI,QAAAA,IAAI,EAAEX,IAAR;AAAcC,QAAAA;AAAd,OAAT,CAAd,CAAR;AACA;;AAED,aAASW,OAAT,GAAmB;AAClBF,MAAAA,QAAQ;AACRD,MAAAA,OAAO;AACP;;AAED,WACC,cAAC,qBAAD;AACC,MAAA,IAAI,EAAGV,MADR;AAEC,MAAA,KAAK,EAAGE,KAFT;AAGC,MAAA,OAAO,EAAGW,OAHX;AAIC,MAAA,QAAQ,EAAGN,QAJZ;AAKC,MAAA,IAAI,EAAC;AALN,MADD;AASA;;AAxBsB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ button }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"]}
@@ -25,25 +25,16 @@ export const language = {
25
25
  title
26
26
  };
27
27
 
28
- function Edit(props) {
29
- const {
30
- contentRef,
31
- isActive,
32
- onChange,
33
- value
34
- } = props;
35
- const popoverAnchor = useAnchor({
36
- editableContentElement: contentRef.current,
37
- settings: language
38
- });
39
- const [lang, setLang] = useState('');
40
- const [dir, setDir] = useState('ltr');
28
+ function Edit({
29
+ isActive,
30
+ value,
31
+ onChange,
32
+ contentRef
33
+ }) {
41
34
  const [isPopoverVisible, setIsPopoverVisible] = useState(false);
42
35
 
43
36
  const togglePopover = () => {
44
37
  setIsPopoverVisible(state => !state);
45
- setLang('');
46
- setDir('ltr');
47
38
  };
48
39
 
49
40
  return createElement(Fragment, null, createElement(RichTextToolbarButton, {
@@ -59,14 +50,35 @@ function Edit(props) {
59
50
  },
60
51
  isActive: isActive,
61
52
  role: "menuitemcheckbox"
62
- }), isPopoverVisible && createElement(Popover, {
53
+ }), isPopoverVisible && createElement(InlineLanguageUI, {
54
+ value: value,
55
+ onChange: onChange,
56
+ onClose: togglePopover,
57
+ contentRef: contentRef
58
+ }));
59
+ }
60
+
61
+ function InlineLanguageUI({
62
+ value,
63
+ contentRef,
64
+ onChange,
65
+ onClose
66
+ }) {
67
+ const popoverAnchor = useAnchor({
68
+ editableContentElement: contentRef.current,
69
+ settings: language
70
+ });
71
+ const [lang, setLang] = useState('');
72
+ const [dir, setDir] = useState('ltr');
73
+ return createElement(Popover, {
63
74
  className: "block-editor-format-toolbar__language-popover",
64
75
  anchor: popoverAnchor,
65
76
  placement: "bottom",
66
- onClose: togglePopover
77
+ onClose: onClose
67
78
  }, createElement("form", {
68
79
  className: "block-editor-format-toolbar__language-container-content",
69
80
  onSubmit: event => {
81
+ event.preventDefault();
70
82
  onChange(applyFormat(value, {
71
83
  type: name,
72
84
  attributes: {
@@ -74,8 +86,7 @@ function Edit(props) {
74
86
  dir
75
87
  }
76
88
  }));
77
- togglePopover();
78
- event.preventDefault();
89
+ onClose();
79
90
  }
80
91
  }, createElement(TextControl, {
81
92
  label: title,
@@ -99,6 +110,6 @@ function Edit(props) {
99
110
  variant: "primary",
100
111
  type: "submit",
101
112
  text: __('Apply')
102
- })))));
113
+ }))));
103
114
  }
104
115
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/language/index.js"],"names":["__","RichTextToolbarButton","TextControl","SelectControl","Button","Popover","__experimentalHStack","HStack","useState","applyFormat","removeFormat","useAnchor","language","languageIcon","name","title","tagName","className","edit","Edit","props","contentRef","isActive","onChange","value","popoverAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","isPopoverVisible","setIsPopoverVisible","togglePopover","state","event","type","attributes","preventDefault","val","label"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( props ) {\n\tconst { contentRef, isActive, onChange, value } = props;\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t\tsetLang( '' );\n\t\tsetDir( 'ltr' );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tvalue={ lang }\n\t\t\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\t\t\tvalue={ dir }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/language/index.js"],"names":["__","RichTextToolbarButton","TextControl","SelectControl","Button","Popover","__experimentalHStack","HStack","useState","applyFormat","removeFormat","useAnchor","language","languageIcon","name","title","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","togglePopover","state","InlineLanguageUI","onClose","popoverAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","event","preventDefault","type","attributes","val","label"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( { isActive, value, onChange, contentRef } ) {\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<InlineLanguageUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction InlineLanguageUI( { value, contentRef, onChange, onClose } ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tvalue={ lang }\n\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\tvalue={ dir }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t/>\n\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n"]}
@@ -21,15 +21,14 @@ const name = 'core/link';
21
21
 
22
22
  const title = __('Link');
23
23
 
24
- function Edit(_ref) {
25
- let {
26
- isActive,
27
- activeAttributes,
28
- value,
29
- onChange,
30
- onFocus,
31
- contentRef
32
- } = _ref;
24
+ function Edit({
25
+ isActive,
26
+ activeAttributes,
27
+ value,
28
+ onChange,
29
+ onFocus,
30
+ contentRef
31
+ }) {
33
32
  const [addingLink, setAddingLink] = useState(false);
34
33
 
35
34
  function addLink() {
@@ -54,9 +53,12 @@ function Edit(_ref) {
54
53
  }
55
54
  }
56
55
 
57
- function stopAddingLink() {
56
+ function stopAddingLink(returnFocus = true) {
58
57
  setAddingLink(false);
59
- onFocus();
58
+
59
+ if (returnFocus) {
60
+ onFocus();
61
+ }
60
62
  }
61
63
 
62
64
  function onRemoveFormat() {
@@ -111,12 +113,10 @@ export const link = {
111
113
  target: 'target'
112
114
  },
113
115
 
114
- __unstablePasteRule(value, _ref2) {
115
- let {
116
- html,
117
- plainText
118
- } = _ref2;
119
-
116
+ __unstablePasteRule(value, {
117
+ html,
118
+ plainText
119
+ }) {
120
120
  if (isCollapsed(value)) {
121
121
  return value;
122
122
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/index.js"],"names":["__","useState","getTextContent","applyFormat","removeFormat","slice","isCollapsed","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","linkOff","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","addLink","text","type","attributes","url","stopAddingLink","onRemoveFormat","tagName","className","id","target","__unstablePasteRule","html","plainText","pastedText","replace","trim","window","console","log","edit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, linkOff } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\tfunction addLink() {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\tfunction stopAddingLink() {\n\t\tsetAddingLink( false );\n\t\tonFocus();\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t{ isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\tonClick={ onRemoveFormat }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primaryShift\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ addLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( addingLink || isActive ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\taddingLink={ addingLink }\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\ttarget: 'target',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\tif ( ! isURL( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\treturn applyFormat( value, {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t} );\n\t},\n\tedit: Edit,\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/link/index.js"],"names":["__","useState","getTextContent","applyFormat","removeFormat","slice","isCollapsed","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","linkOff","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","addLink","text","type","attributes","url","stopAddingLink","returnFocus","onRemoveFormat","tagName","className","id","target","__unstablePasteRule","html","plainText","pastedText","replace","trim","window","console","log","edit"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, linkOff } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\tfunction addLink() {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\tfunction stopAddingLink( returnFocus = true ) {\n\t\tsetAddingLink( false );\n\t\tif ( returnFocus ) {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t{ isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\tonClick={ onRemoveFormat }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primaryShift\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ addLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( addingLink || isActive ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\taddingLink={ addingLink }\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\ttarget: 'target',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\tif ( ! isURL( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\treturn applyFormat( value, {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t} );\n\t},\n\tedit: Edit,\n};\n"]}
@@ -90,17 +90,13 @@ export const link = {
90
90
  let startIndex = value.start;
91
91
  let endIndex = value.end;
92
92
 
93
- while ((_value$formats$startI = value.formats[startIndex]) !== null && _value$formats$startI !== void 0 && _value$formats$startI.find(format => (format === null || format === void 0 ? void 0 : format.type) === startFormat.type)) {
94
- var _value$formats$startI;
95
-
93
+ while (value.formats[startIndex]?.find(format => format?.type === startFormat.type)) {
96
94
  startIndex--;
97
95
  }
98
96
 
99
97
  endIndex++;
100
98
 
101
- while ((_value$formats$endInd = value.formats[endIndex]) !== null && _value$formats$endInd !== void 0 && _value$formats$endInd.find(format => (format === null || format === void 0 ? void 0 : format.type) === startFormat.type)) {
102
- var _value$formats$endInd;
103
-
99
+ while (value.formats[endIndex]?.find(format => format?.type === startFormat.type)) {
104
100
  endIndex++;
105
101
  }
106
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/format-library/src/link/index.native.js"],"names":["Clipboard","__","Component","withSpokenMessages","RichTextToolbarButton","applyFormat","getActiveFormat","getTextContent","isCollapsed","removeFormat","slice","isURL","link","linkIcon","ModalLinkUI","isValidHref","name","title","tagName","className","attributes","url","target","rel","edit","LinkEdit","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","newValue","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","startIndex","endIndex","formats","find","format","speak","linkSelection","clipboardText","getString","render","activeAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t),\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/format-library/src/link/index.native.js"],"names":["Clipboard","__","Component","withSpokenMessages","RichTextToolbarButton","applyFormat","getActiveFormat","getTextContent","isCollapsed","removeFormat","slice","isURL","link","linkIcon","ModalLinkUI","isValidHref","name","title","tagName","className","attributes","url","target","rel","edit","LinkEdit","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","newValue","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","startIndex","endIndex","formats","find","format","speak","linkSelection","clipboardText","getString","render","activeAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t),\n};\n"]}
@@ -18,17 +18,16 @@ import { createLinkFormat, isValidHref, getFormatBoundary } from './utils';
18
18
  import { link as settings } from './index';
19
19
  import useLinkInstanceKey from './use-link-instance-key';
20
20
 
21
- function InlineLinkUI(_ref) {
22
- let {
23
- isActive,
24
- activeAttributes,
25
- addingLink,
26
- value,
27
- onChange,
28
- speak,
29
- stopAddingLink,
30
- contentRef
31
- } = _ref;
21
+ function InlineLinkUI({
22
+ isActive,
23
+ activeAttributes,
24
+ addingLink,
25
+ value,
26
+ onChange,
27
+ speak,
28
+ stopAddingLink,
29
+ contentRef
30
+ }) {
32
31
  const richLinkTextValue = getRichTextValueFromSelection(value, isActive); // Get the text content minus any HTML tags.
33
32
 
34
33
  const richTextText = richLinkTextValue.text;
@@ -209,6 +208,7 @@ function InlineLinkUI(_ref) {
209
208
  anchor: popoverAnchor,
210
209
  focusOnMount: focusOnMount.current,
211
210
  onClose: stopAddingLink,
211
+ onFocusOutside: () => stopAddingLink(false),
212
212
  placement: "bottom",
213
213
  shift: true
214
214
  }, createElement(LinkControl, {